diff options
Diffstat (limited to 'src/include/gpxe')
-rw-r--r-- | src/include/gpxe/iscsi.h | 10 | ||||
-rw-r--r-- | src/include/gpxe/scsi.h | 18 |
2 files changed, 17 insertions, 11 deletions
diff --git a/src/include/gpxe/iscsi.h b/src/include/gpxe/iscsi.h index 469911df..00717d2b 100644 --- a/src/include/gpxe/iscsi.h +++ b/src/include/gpxe/iscsi.h @@ -249,7 +249,7 @@ struct iscsi_bhs_scsi_command { /** Segment lengths */ union iscsi_segment_lengths lengths; /** SCSI Logical Unit Number */ - uint64_t lun; + struct scsi_lun lun; /** Initiator Task Tag */ uint32_t itt; /** Expected data transfer length */ @@ -344,7 +344,7 @@ struct iscsi_bhs_data_in { /** Segment lengths */ union iscsi_segment_lengths lengths; /** Logical Unit Number */ - uint64_t lun; + struct scsi_lun lun; /** Initiator Task Tag */ uint32_t itt; /** Target Transfer Tag */ @@ -392,7 +392,7 @@ struct iscsi_bhs_data_out { /** Segment lengths */ union iscsi_segment_lengths lengths; /** Logical Unit Number */ - uint64_t lun; + struct scsi_lun lun; /** Initiator Task Tag */ uint32_t itt; /** Target Transfer Tag */ @@ -428,7 +428,7 @@ struct iscsi_bhs_r2t { /** Segment lengths */ union iscsi_segment_lengths lengths; /** Logical Unit Number */ - uint64_t lun; + struct scsi_lun lun; /** Initiator Task Tag */ uint32_t itt; /** Target Transfer Tag */ @@ -507,7 +507,7 @@ struct iscsi_session { /** Target IQN */ char *target_iqn; /** Logical Unit Number (LUN) */ - uint64_t lun; + struct scsi_lun lun; /** Target socket address (recorded only for iBFT) */ struct sockaddr target_sockaddr; diff --git a/src/include/gpxe/scsi.h b/src/include/gpxe/scsi.h index b8866234..9131a29a 100644 --- a/src/include/gpxe/scsi.h +++ b/src/include/gpxe/scsi.h @@ -240,16 +240,21 @@ struct scsi_command { int rc; }; +/** A SCSI LUN + * + * This is a four-level LUN as specified by SAM-2, in big-endian + * order. + */ +struct scsi_lun { + uint16_t u16[4]; +} __attribute__ (( packed )); + /** A SCSI device */ struct scsi_device { /** Block device interface */ struct block_device blockdev; - /** Logical unit number (LUN) - * - * This is a four-level LUN as specified by SAM-2, in - * big-endian order. - */ - uint64_t lun; + /** Logical unit number (LUN) */ + struct scsi_lun lun; /** * Issue SCSI command * @@ -273,5 +278,6 @@ struct scsi_device { extern int scsi_detached_command ( struct scsi_device *scsi, struct scsi_command *command ); extern int init_scsidev ( struct scsi_device *scsi ); +extern int scsi_parse_lun ( const char *lun_string, struct scsi_lun *lun ); #endif /* _GPXE_SCSI_H */ |