#define SCSI_WRITE_BLOCKS_16 0x8a
#define SCSI_WRITE_BLOCKS_12 0xaa
+#define SCSI_CDB16 16
+#define SCSI_CDB12 12
+
struct scsi_cdb12
{
- uint8_t opcode;
- uint8_t misc1;
- uint32_t lba_be;
- uint32_t length;
- uint8_t misc2;
- uint8_t ctrl;
+ u8_t opcode;
+ u8_t misc1;
+ u32_t lba_be;
+ u32_t length;
+ u8_t misc2;
+ u8_t ctrl;
} __attribute__((packed));
struct scsi_cdb16
{
- uint8_t opcode;
- uint8_t misc1;
- uint32_t lba_be_hi;
- uint32_t lba_be_lo;
- uint32_t length;
- uint8_t misc2;
- uint8_t ctrl;
+ u8_t opcode;
+ u8_t misc1;
+ u32_t lba_be_hi;
+ u32_t lba_be_lo;
+ u32_t length;
+ u8_t misc2;
+ u8_t ctrl;
} __attribute__((packed));
void
scsi_create_packet12(struct scsi_cdb12* cdb,
- uint8_t opcode,
- uint32_t lba,
- uint32_t alloc_size);
+ u8_t opcode,
+ u32_t lba,
+ u32_t alloc_size);
void
scsi_create_packet16(struct scsi_cdb16* cdb,
- uint8_t opcode,
- uint64_t lba,
- uint32_t alloc_size);
+ u8_t opcode,
+ lba_t lba,
+ u32_t alloc_size);
void
-scsi_read_buffer(struct hba_port* port,
- uint64_t lba,
- void* buffer,
- uint32_t size);
+scsi_submit(struct hba_device* dev, struct blkio_req* io_req);
void
-scsi_write_buffer(struct hba_port* port,
- uint64_t lba,
- void* buffer,
- uint32_t size);
+scsi_parse_capacity(struct hba_device* device, u32_t* parameter);
#endif /* __LUNAIX_ATAPI_H */