Initial submission of the PCem-Experimental source code.
This commit is contained in:
90
src/scsi_cmds.h
Normal file
90
src/scsi_cmds.h
Normal file
@@ -0,0 +1,90 @@
|
||||
/* ATAPI/SCSI Commands */
|
||||
#define TEST_UNIT_READY 0x00
|
||||
#define REQUEST_SENSE 0x03
|
||||
#define READ_6 0x08
|
||||
#define INQUIRY 0x12
|
||||
#define MODE_SELECT 0x15
|
||||
#define MODE_SENSE 0x1a /*actually MODE_SENSE_6 but I want to match QEMU's scheme*/
|
||||
#define START_STOP 0x1b /*LOAD_UNLOAD is the same*/
|
||||
#define ALLOW_MEDIUM_REMOVAL 0x1e
|
||||
#define READ_CAPACITY_10 0x25
|
||||
#define READ_10 0x28
|
||||
#define SEEK_10 0x2b
|
||||
#define READ_SUBCHANNEL 0x42 /*unimplemented on QEMU, so I came up with this name for this command*/
|
||||
#define READ_TOC 0x43
|
||||
#define READ_HEADER 0x44 /*unimplemented on QEMU, so I came up with this name for this command*/
|
||||
#define PLAY_AUDIO_10 0x45
|
||||
#define GET_CONFIGURATION 0x46
|
||||
#define PLAY_AUDIO_MSF 0x47
|
||||
#define GET_EVENT_NOTIFICATION 0x4a
|
||||
#define PAUSE_RESUME 0x4b
|
||||
#define STOP_PLAY_SCAN 0x4e
|
||||
#define READ_DISC_INFORMATION 0x51
|
||||
#define MODE_SELECT_10 0x55
|
||||
#define MODE_SENSE_10 0x5a
|
||||
#define PLAY_AUDIO_12 0xa5 /*deprecated*/
|
||||
#define READ_12 0xa8
|
||||
#define READ_DVD_STRUCTURE 0xad
|
||||
#define SET_CD_SPEED 0xbb
|
||||
#define MECHANISM_STATUS 0xbd
|
||||
#define READ_CD 0xbe
|
||||
#define SEND_DVD_STRUCTURE 0xbf
|
||||
|
||||
/* SCSI Sense Keys */
|
||||
#define SENSE_NONE 0
|
||||
#define SENSE_NOT_READY 2
|
||||
#define SENSE_ILLEGAL_REQUEST 5
|
||||
#define SENSE_UNIT_ATTENTION 6
|
||||
|
||||
/* SCSI Additional Sense Codes */
|
||||
#define ASC_ILLEGAL_OPCODE 0x20
|
||||
#define ASC_INV_FIELD_IN_CMD_PACKET 0x24
|
||||
#define ASC_MEDIUM_MAY_HAVE_CHANGED 0x28
|
||||
#define ASC_MEDIUM_NOT_PRESENT 0x3a
|
||||
|
||||
/* Mode page codes for mode sense/set */
|
||||
#define GPMODE_R_W_ERROR_PAGE 0x01
|
||||
#define GPMODE_CDROM_PAGE 0x0d
|
||||
#define GPMODE_CDROM_AUDIO_PAGE 0x0e
|
||||
#define GPMODE_CAPABILITIES_PAGE 0x2a
|
||||
#define GPMODE_ALL_PAGES 0x3f
|
||||
|
||||
/*
|
||||
* SCSI Status codes
|
||||
*/
|
||||
#define GOOD 0x00
|
||||
#define CHECK_CONDITION 0x02
|
||||
#define CONDITION_GOOD 0x04
|
||||
#define BUSY 0x08
|
||||
#define INTERMEDIATE_GOOD 0x10
|
||||
#define INTERMEDIATE_C_GOOD 0x14
|
||||
#define RESERVATION_CONFLICT 0x18
|
||||
#define COMMAND_TERMINATED 0x22
|
||||
#define TASK_SET_FULL 0x28
|
||||
#define ACA_ACTIVE 0x30
|
||||
#define TASK_ABORTED 0x40
|
||||
|
||||
#define STATUS_MASK 0x3e
|
||||
|
||||
/* Event notification classes for GET EVENT STATUS NOTIFICATION */
|
||||
#define GESN_NO_EVENTS 0
|
||||
#define GESN_OPERATIONAL_CHANGE 1
|
||||
#define GESN_POWER_MANAGEMENT 2
|
||||
#define GESN_EXTERNAL_REQUEST 3
|
||||
#define GESN_MEDIA 4
|
||||
#define GESN_MULTIPLE_HOSTS 5
|
||||
#define GESN_DEVICE_BUSY 6
|
||||
|
||||
/* Event codes for MEDIA event status notification */
|
||||
#define MEC_NO_CHANGE 0
|
||||
#define MEC_EJECT_REQUESTED 1
|
||||
#define MEC_NEW_MEDIA 2
|
||||
#define MEC_MEDIA_REMOVAL 3 /* only for media changers */
|
||||
#define MEC_MEDIA_CHANGED 4 /* only for media changers */
|
||||
#define MEC_BG_FORMAT_COMPLETED 5 /* MRW or DVD+RW b/g format completed */
|
||||
#define MEC_BG_FORMAT_RESTARTED 6 /* MRW or DVD+RW b/g format restarted */
|
||||
#define MS_TRAY_OPEN 1
|
||||
#define MS_MEDIA_PRESENT 2
|
||||
|
||||
#define CHECK_READY 2
|
||||
#define ALLOW_UA 1
|
||||
Reference in New Issue
Block a user