@@ -319,4 +319,56 @@
#define IDENT_DESCR_TGT_DESCR_SIZE 32
#define XCOPY_BLK2BLK_SEG_DESC_SIZE 28
+typedef enum {
+ SCSI_PR_WRITE_EXCLUSIVE = 0x01,
+ SCSI_PR_EXCLUSIVE_ACCESS = 0x03,
+ SCSI_PR_WRITE_EXCLUSIVE_REGS_ONLY = 0x05,
+ SCSI_PR_EXCLUSIVE_ACCESS_REGS_ONLY = 0x06,
+ SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 0x07,
+ SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 0x08,
+} SCSIPrType;
+
+typedef enum {
+ SCSI_PR_LU_SCOPE = 0x00,
+} SCSIPrScope;
+
+typedef enum {
+ SCSI_PR_OUT_REGISTER = 0x0,
+ SCSI_PR_OUT_RESERVE = 0x1,
+ SCSI_PR_OUT_RELEASE = 0x2,
+ SCSI_PR_OUT_CLEAR = 0x3,
+ SCSI_PR_OUT_PREEMPT = 0x4,
+ SCSI_PR_OUT_PREEMPT_AND_ABORT = 0x5,
+ SCSI_PR_OUT_REG_AND_IGNORE_KEY = 0x6,
+ SCSI_PR_OUT_REG_AND_MOVE = 0x7,
+} SCSIPrOutAction;
+
+typedef enum {
+ SCSI_PR_IN_READ_KEYS = 0x0,
+ SCSI_PR_IN_READ_RESERVATION = 0x1,
+ SCSI_PR_IN_REPORT_CAPABILITIES = 0x2,
+} SCSIPrInAction;
+
+typedef enum {
+ /* Exclusive Access All Registrants reservation type */
+ SCSI_PR_CAP_EX_AC_AR = 1 << 0,
+ /* Write Exclusive reservation type */
+ SCSI_PR_CAP_WR_EX = 1 << 9,
+ /* Exclusive Access reservation type */
+ SCSI_PR_CAP_EX_AC = 1 << 11,
+ /* Write Exclusive Registrants Only reservation type */
+ SCSI_PR_CAP_WR_EX_RO = 1 << 13,
+ /* Exclusive Access Registrants Only reservation type */
+ SCSI_PR_CAP_EX_AC_RO = 1 << 14,
+ /* Write Exclusive All Registrants reservation type */
+ SCSI_PR_CAP_WR_EX_AR = 1 << 15,
+
+ SCSI_PR_CAP_ALL = (SCSI_PR_CAP_EX_AC_AR |
+ SCSI_PR_CAP_WR_EX |
+ SCSI_PR_CAP_EX_AC |
+ SCSI_PR_CAP_WR_EX_RO |
+ SCSI_PR_CAP_EX_AC_RO |
+ SCSI_PR_CAP_WR_EX_AR),
+} SCSIPrCap;
+
#endif