2006-04-24 15:42:49 +00:00
|
|
|
#ifndef _GPXE_SCSI_H
|
|
|
|
|
#define _GPXE_SCSI_H
|
2006-04-05 11:44:56 +00:00
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
|
|
struct scsi_cdb_read_10 {
|
|
|
|
|
/** Opcode */
|
|
|
|
|
uint8_t opcode;
|
|
|
|
|
/** Flags */
|
|
|
|
|
uint8_t flags;
|
|
|
|
|
/** Start address
|
|
|
|
|
*
|
|
|
|
|
* This is a logical block number, in big-endian order.
|
|
|
|
|
*/
|
|
|
|
|
uint32_t lba;
|
|
|
|
|
/** Group number */
|
|
|
|
|
uint8_t group;
|
|
|
|
|
/** Transfer length
|
|
|
|
|
*
|
|
|
|
|
* This is a logical block count.
|
|
|
|
|
*/
|
|
|
|
|
uint16_t len;
|
|
|
|
|
/** Control byte */
|
|
|
|
|
uint8_t control;
|
|
|
|
|
} __attribute__ (( packed ));
|
|
|
|
|
|
|
|
|
|
#define SCSI_OPCODE_READ_10 0x28
|
|
|
|
|
|
|
|
|
|
union scsi_cdb {
|
|
|
|
|
struct scsi_cdb_read_10 read_10;
|
|
|
|
|
char bytes[16];
|
|
|
|
|
};
|
|
|
|
|
|
2006-04-24 15:42:49 +00:00
|
|
|
#endif /* _GPXE_SCSI_H */
|