Add support for PERSISTENT_RESERVE_IN and add a simple test for READ_KEYS
This commit is contained in:
@@ -773,6 +773,11 @@ struct unmap_list {
|
||||
uint32_t num;
|
||||
};
|
||||
|
||||
EXTERN struct scsi_task *
|
||||
iscsi_persistent_reserve_in_task(struct iscsi_context *iscsi, int lun,
|
||||
int sa, uint16_t xferlen,
|
||||
iscsi_command_cb cb, void *private_data);
|
||||
|
||||
EXTERN struct scsi_task *
|
||||
iscsi_unmap_task(struct iscsi_context *iscsi, int lun, int anchor, int group,
|
||||
struct unmap_list *list, int list_len,
|
||||
@@ -946,6 +951,9 @@ iscsi_writesame16_sync(struct iscsi_context *iscsi, int lun,
|
||||
int wrprotect, int group);
|
||||
|
||||
EXTERN struct scsi_task *
|
||||
iscsi_persistent_reserve_in_sync(struct iscsi_context *iscsi, int lun,
|
||||
int sa, uint16_t xferlen);
|
||||
EXTERN struct scsi_task *
|
||||
iscsi_unmap_sync(struct iscsi_context *iscsi, int lun, int anchor, int group,
|
||||
struct unmap_list *list, int list_len);
|
||||
|
||||
|
||||
@@ -48,6 +48,7 @@ enum scsi_opcode {
|
||||
SCSI_OPCODE_WRITE_SAME10 = 0x41,
|
||||
SCSI_OPCODE_UNMAP = 0x42,
|
||||
SCSI_OPCODE_READTOC = 0x43,
|
||||
SCSI_OPCODE_PERSISTENT_RESERVE_IN = 0x5E,
|
||||
SCSI_OPCODE_READ16 = 0x88,
|
||||
SCSI_OPCODE_COMPARE_AND_WRITE = 0x89,
|
||||
SCSI_OPCODE_WRITE16 = 0x8A,
|
||||
@@ -66,6 +67,13 @@ enum scsi_opcode {
|
||||
SCSI_OPCODE_VERIFY12 = 0xAF
|
||||
};
|
||||
|
||||
enum scsi_persistent_in_sa {
|
||||
SCSI_PERSISTENT_RESERVE_READ_KEYS = 0,
|
||||
SCSI_PERSISTENT_RESERVE_READ_RESERVATION = 1,
|
||||
SCSI_PERSISTENT_RESERVE_REPORT_CAPABILITIES = 2,
|
||||
SCSI_PERSISTENT_RESERVE_READ_FULL_STATUS = 3
|
||||
};
|
||||
|
||||
enum scsi_service_action_in {
|
||||
SCSI_READCAPACITY16 = 0x10,
|
||||
SCSI_GET_LBA_STATUS = 0x12
|
||||
@@ -718,6 +726,7 @@ EXTERN struct scsi_task *scsi_cdb_serviceactionin16(enum scsi_service_action_in
|
||||
EXTERN struct scsi_task *scsi_cdb_readcapacity16(void);
|
||||
EXTERN struct scsi_task *scsi_cdb_get_lba_status(uint64_t starting_lba, uint32_t alloc_len);
|
||||
EXTERN struct scsi_task *scsi_cdb_unmap(int anchor, int group, uint16_t xferlen);
|
||||
EXTERN struct scsi_task *scsi_cdb_persistent_reserve_in(enum scsi_persistent_in_sa sa, uint16_t xferlen);
|
||||
EXTERN struct scsi_task *scsi_cdb_writesame10(int wrprotect, int anchor, int unmap, int pbdata, int lbdata, uint32_t lba, int group, uint16_t num_blocks);
|
||||
EXTERN struct scsi_task *scsi_cdb_writesame16(int wrprotect, int anchor, int unmap, int pbdata, int lbdata, uint64_t lba, int group, uint32_t num_blocks);
|
||||
EXTERN struct scsi_task *scsi_cdb_prefetch10(uint32_t lba, int num_blocks, int immed, int group);
|
||||
|
||||
Reference in New Issue
Block a user