symbian-qemu-0.9.1-12/qemu-symbian-svp/hw/scsi-disk.h
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     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