scsi-disk.h revision 8b23a6c7e1aee255004dd19098d4c2462b61b849
18b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef SCSI_DISK_H 28b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define SCSI_DISK_H 38b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* scsi-disk.c */ 58b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectenum scsi_reason { 68b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SCSI_REASON_DONE, /* Command complete. */ 78b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SCSI_REASON_DATA /* Transfer complete, more data required. */ 88b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 98b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct SCSIDeviceState SCSIDeviceState; 118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct SCSIDevice SCSIDevice; 128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef void (*scsi_completionfn)(void *opaque, int reason, uint32_t tag, 138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint32_t arg); 148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct SCSIDevice 168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SCSIDeviceState *state; 188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project void (*destroy)(SCSIDevice *s); 198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int32_t (*send_command)(SCSIDevice *s, uint32_t tag, uint8_t *buf, 208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int lun); 218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project void (*read_data)(SCSIDevice *s, uint32_t tag); 228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int (*write_data)(SCSIDevice *s, uint32_t tag); 238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project void (*cancel_io)(SCSIDevice *s, uint32_t tag); 248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uint8_t *(*get_buf)(SCSIDevice *s, uint32_t tag); 258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectSCSIDevice *scsi_disk_init(BlockDriverState *bdrv, int tcq, 288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project scsi_completionfn completion, void *opaque); 298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectSCSIDevice *scsi_generic_init(BlockDriverState *bdrv, int tcq, 308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project scsi_completionfn completion, void *opaque); 318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* cdrom.c */ 338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint cdrom_read_toc(int nb_sectors, uint8_t *buf, int msf, int start_track); 348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint cdrom_read_toc_raw(int nb_sectors, uint8_t *buf, int msf, int session_num); 358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 37