root / hw / scsi-disk.h @ ac47a60b
History | View | Annotate | Download (1.2 kB)
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 |
|
10 |
typedef struct SCSIDeviceState SCSIDeviceState; |
11 |
typedef struct SCSIDevice SCSIDevice; |
12 |
typedef void (*scsi_completionfn)(void *opaque, int reason, uint32_t tag, |
13 |
uint32_t arg); |
14 |
|
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 |
}; |
26 |
|
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);
|
31 |
|
32 |
/* cdrom.c */
|
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); |
35 |
|
36 |
#endif
|