]>
Commit | Line | Data |
---|---|---|
87ecb68b PB |
1 | #ifndef SCSI_DISK_H |
2 | #define SCSI_DISK_H | |
3 | ||
4 | /* scsi-disk.c */ | |
5 | enum scsi_reason { | |
6 | SCSI_REASON_DONE, /* Command complete. */ | |
7 | SCSI_REASON_DATA /* Transfer complete, more data required. */ | |
8 | }; | |
9 | ||
8ccc2ace | 10 | typedef struct SCSIDeviceState SCSIDeviceState; |
87ecb68b PB |
11 | typedef struct SCSIDevice SCSIDevice; |
12 | typedef void (*scsi_completionfn)(void *opaque, int reason, uint32_t tag, | |
13 | uint32_t arg); | |
14 | ||
8ccc2ace TS |
15 | struct SCSIDevice |
16 | { | |
17 | SCSIDeviceState *state; | |
18 | void (*destroy)(SCSIDevice *s); | |
19 | int32_t (*send_command)(SCSIDevice *s, uint32_t tag, uint8_t *buf, | |
20 | int lun); | |
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); | |
25 | }; | |
87ecb68b | 26 | |
8ccc2ace TS |
27 | SCSIDevice *scsi_disk_init(BlockDriverState *bdrv, int tcq, |
28 | scsi_completionfn completion, void *opaque); | |
87ecb68b PB |
29 | |
30 | /* cdrom.c */ | |
31 | int cdrom_read_toc(int nb_sectors, uint8_t *buf, int msf, int start_track); | |
32 | int cdrom_read_toc_raw(int nb_sectors, uint8_t *buf, int msf, int session_num); | |
33 | ||
34 | #endif |