6 SCSI_REASON_DONE
, /* Command complete. */
7 SCSI_REASON_DATA
/* Transfer complete, more data required. */
10 typedef struct SCSIDeviceState SCSIDeviceState
;
11 typedef struct SCSIDevice SCSIDevice
;
12 typedef void (*scsi_completionfn
)(void *opaque
, int reason
, uint32_t tag
,
17 SCSIDeviceState
*state
;
18 void (*destroy
)(SCSIDevice
*s
);
19 int32_t (*send_command
)(SCSIDevice
*s
, uint32_t tag
, uint8_t *buf
,
21 void (*read_data
)(SCSIDevice
*s
, uint32_t tag
);
22 int (*write_data
)(SCSIDevice
*s
, uint32_t tag
);
23 void (*cancel_io
)(SCSIDevice
*s
, uint32_t tag
);
24 uint8_t *(*get_buf
)(SCSIDevice
*s
, uint32_t tag
);
27 SCSIDevice
*scsi_disk_init(BlockDriverState
*bdrv
, int tcq
,
28 scsi_completionfn completion
, void *opaque
);
29 SCSIDevice
*scsi_generic_init(BlockDriverState
*bdrv
, int tcq
,
30 scsi_completionfn completion
, void *opaque
);
33 int cdrom_read_toc(int nb_sectors
, uint8_t *buf
, int msf
, int start_track
);
34 int cdrom_read_toc_raw(int nb_sectors
, uint8_t *buf
, int msf
, int session_num
);