1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*8d67ca89SAndroid Build Coastguard Worker * 4*8d67ca89SAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*8d67ca89SAndroid Build Coastguard Worker * for more information. 6*8d67ca89SAndroid Build Coastguard Worker */ 7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_CDROM_H 8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_LINUX_CDROM_H 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #include <asm/byteorder.h> 11*8d67ca89SAndroid Build Coastguard Worker #define EDRIVE_CANT_DO_THIS EOPNOTSUPP 12*8d67ca89SAndroid Build Coastguard Worker #define CDROMPAUSE 0x5301 13*8d67ca89SAndroid Build Coastguard Worker #define CDROMRESUME 0x5302 14*8d67ca89SAndroid Build Coastguard Worker #define CDROMPLAYMSF 0x5303 15*8d67ca89SAndroid Build Coastguard Worker #define CDROMPLAYTRKIND 0x5304 16*8d67ca89SAndroid Build Coastguard Worker #define CDROMREADTOCHDR 0x5305 17*8d67ca89SAndroid Build Coastguard Worker #define CDROMREADTOCENTRY 0x5306 18*8d67ca89SAndroid Build Coastguard Worker #define CDROMSTOP 0x5307 19*8d67ca89SAndroid Build Coastguard Worker #define CDROMSTART 0x5308 20*8d67ca89SAndroid Build Coastguard Worker #define CDROMEJECT 0x5309 21*8d67ca89SAndroid Build Coastguard Worker #define CDROMVOLCTRL 0x530a 22*8d67ca89SAndroid Build Coastguard Worker #define CDROMSUBCHNL 0x530b 23*8d67ca89SAndroid Build Coastguard Worker #define CDROMREADMODE2 0x530c 24*8d67ca89SAndroid Build Coastguard Worker #define CDROMREADMODE1 0x530d 25*8d67ca89SAndroid Build Coastguard Worker #define CDROMREADAUDIO 0x530e 26*8d67ca89SAndroid Build Coastguard Worker #define CDROMEJECT_SW 0x530f 27*8d67ca89SAndroid Build Coastguard Worker #define CDROMMULTISESSION 0x5310 28*8d67ca89SAndroid Build Coastguard Worker #define CDROM_GET_MCN 0x5311 29*8d67ca89SAndroid Build Coastguard Worker #define CDROM_GET_UPC CDROM_GET_MCN 30*8d67ca89SAndroid Build Coastguard Worker #define CDROMRESET 0x5312 31*8d67ca89SAndroid Build Coastguard Worker #define CDROMVOLREAD 0x5313 32*8d67ca89SAndroid Build Coastguard Worker #define CDROMREADRAW 0x5314 33*8d67ca89SAndroid Build Coastguard Worker #define CDROMREADCOOKED 0x5315 34*8d67ca89SAndroid Build Coastguard Worker #define CDROMSEEK 0x5316 35*8d67ca89SAndroid Build Coastguard Worker #define CDROMPLAYBLK 0x5317 36*8d67ca89SAndroid Build Coastguard Worker #define CDROMREADALL 0x5318 37*8d67ca89SAndroid Build Coastguard Worker #define CDROMGETSPINDOWN 0x531d 38*8d67ca89SAndroid Build Coastguard Worker #define CDROMSETSPINDOWN 0x531e 39*8d67ca89SAndroid Build Coastguard Worker #define CDROMCLOSETRAY 0x5319 40*8d67ca89SAndroid Build Coastguard Worker #define CDROM_SET_OPTIONS 0x5320 41*8d67ca89SAndroid Build Coastguard Worker #define CDROM_CLEAR_OPTIONS 0x5321 42*8d67ca89SAndroid Build Coastguard Worker #define CDROM_SELECT_SPEED 0x5322 43*8d67ca89SAndroid Build Coastguard Worker #define CDROM_SELECT_DISC 0x5323 44*8d67ca89SAndroid Build Coastguard Worker #define CDROM_MEDIA_CHANGED 0x5325 45*8d67ca89SAndroid Build Coastguard Worker #define CDROM_DRIVE_STATUS 0x5326 46*8d67ca89SAndroid Build Coastguard Worker #define CDROM_DISC_STATUS 0x5327 47*8d67ca89SAndroid Build Coastguard Worker #define CDROM_CHANGER_NSLOTS 0x5328 48*8d67ca89SAndroid Build Coastguard Worker #define CDROM_LOCKDOOR 0x5329 49*8d67ca89SAndroid Build Coastguard Worker #define CDROM_DEBUG 0x5330 50*8d67ca89SAndroid Build Coastguard Worker #define CDROM_GET_CAPABILITY 0x5331 51*8d67ca89SAndroid Build Coastguard Worker #define CDROMAUDIOBUFSIZ 0x5382 52*8d67ca89SAndroid Build Coastguard Worker #define DVD_READ_STRUCT 0x5390 53*8d67ca89SAndroid Build Coastguard Worker #define DVD_WRITE_STRUCT 0x5391 54*8d67ca89SAndroid Build Coastguard Worker #define DVD_AUTH 0x5392 55*8d67ca89SAndroid Build Coastguard Worker #define CDROM_SEND_PACKET 0x5393 56*8d67ca89SAndroid Build Coastguard Worker #define CDROM_NEXT_WRITABLE 0x5394 57*8d67ca89SAndroid Build Coastguard Worker #define CDROM_LAST_WRITTEN 0x5395 58*8d67ca89SAndroid Build Coastguard Worker #define CDROM_TIMED_MEDIA_CHANGE 0x5396 59*8d67ca89SAndroid Build Coastguard Worker struct cdrom_msf0 { 60*8d67ca89SAndroid Build Coastguard Worker __u8 minute; 61*8d67ca89SAndroid Build Coastguard Worker __u8 second; 62*8d67ca89SAndroid Build Coastguard Worker __u8 frame; 63*8d67ca89SAndroid Build Coastguard Worker }; 64*8d67ca89SAndroid Build Coastguard Worker union cdrom_addr { 65*8d67ca89SAndroid Build Coastguard Worker struct cdrom_msf0 msf; 66*8d67ca89SAndroid Build Coastguard Worker int lba; 67*8d67ca89SAndroid Build Coastguard Worker }; 68*8d67ca89SAndroid Build Coastguard Worker struct cdrom_msf { 69*8d67ca89SAndroid Build Coastguard Worker __u8 cdmsf_min0; 70*8d67ca89SAndroid Build Coastguard Worker __u8 cdmsf_sec0; 71*8d67ca89SAndroid Build Coastguard Worker __u8 cdmsf_frame0; 72*8d67ca89SAndroid Build Coastguard Worker __u8 cdmsf_min1; 73*8d67ca89SAndroid Build Coastguard Worker __u8 cdmsf_sec1; 74*8d67ca89SAndroid Build Coastguard Worker __u8 cdmsf_frame1; 75*8d67ca89SAndroid Build Coastguard Worker }; 76*8d67ca89SAndroid Build Coastguard Worker struct cdrom_ti { 77*8d67ca89SAndroid Build Coastguard Worker __u8 cdti_trk0; 78*8d67ca89SAndroid Build Coastguard Worker __u8 cdti_ind0; 79*8d67ca89SAndroid Build Coastguard Worker __u8 cdti_trk1; 80*8d67ca89SAndroid Build Coastguard Worker __u8 cdti_ind1; 81*8d67ca89SAndroid Build Coastguard Worker }; 82*8d67ca89SAndroid Build Coastguard Worker struct cdrom_tochdr { 83*8d67ca89SAndroid Build Coastguard Worker __u8 cdth_trk0; 84*8d67ca89SAndroid Build Coastguard Worker __u8 cdth_trk1; 85*8d67ca89SAndroid Build Coastguard Worker }; 86*8d67ca89SAndroid Build Coastguard Worker struct cdrom_volctrl { 87*8d67ca89SAndroid Build Coastguard Worker __u8 channel0; 88*8d67ca89SAndroid Build Coastguard Worker __u8 channel1; 89*8d67ca89SAndroid Build Coastguard Worker __u8 channel2; 90*8d67ca89SAndroid Build Coastguard Worker __u8 channel3; 91*8d67ca89SAndroid Build Coastguard Worker }; 92*8d67ca89SAndroid Build Coastguard Worker struct cdrom_subchnl { 93*8d67ca89SAndroid Build Coastguard Worker __u8 cdsc_format; 94*8d67ca89SAndroid Build Coastguard Worker __u8 cdsc_audiostatus; 95*8d67ca89SAndroid Build Coastguard Worker __u8 cdsc_adr : 4; 96*8d67ca89SAndroid Build Coastguard Worker __u8 cdsc_ctrl : 4; 97*8d67ca89SAndroid Build Coastguard Worker __u8 cdsc_trk; 98*8d67ca89SAndroid Build Coastguard Worker __u8 cdsc_ind; 99*8d67ca89SAndroid Build Coastguard Worker union cdrom_addr cdsc_absaddr; 100*8d67ca89SAndroid Build Coastguard Worker union cdrom_addr cdsc_reladdr; 101*8d67ca89SAndroid Build Coastguard Worker }; 102*8d67ca89SAndroid Build Coastguard Worker struct cdrom_tocentry { 103*8d67ca89SAndroid Build Coastguard Worker __u8 cdte_track; 104*8d67ca89SAndroid Build Coastguard Worker __u8 cdte_adr : 4; 105*8d67ca89SAndroid Build Coastguard Worker __u8 cdte_ctrl : 4; 106*8d67ca89SAndroid Build Coastguard Worker __u8 cdte_format; 107*8d67ca89SAndroid Build Coastguard Worker union cdrom_addr cdte_addr; 108*8d67ca89SAndroid Build Coastguard Worker __u8 cdte_datamode; 109*8d67ca89SAndroid Build Coastguard Worker }; 110*8d67ca89SAndroid Build Coastguard Worker struct cdrom_read { 111*8d67ca89SAndroid Build Coastguard Worker int cdread_lba; 112*8d67ca89SAndroid Build Coastguard Worker char * cdread_bufaddr; 113*8d67ca89SAndroid Build Coastguard Worker int cdread_buflen; 114*8d67ca89SAndroid Build Coastguard Worker }; 115*8d67ca89SAndroid Build Coastguard Worker struct cdrom_read_audio { 116*8d67ca89SAndroid Build Coastguard Worker union cdrom_addr addr; 117*8d67ca89SAndroid Build Coastguard Worker __u8 addr_format; 118*8d67ca89SAndroid Build Coastguard Worker int nframes; 119*8d67ca89SAndroid Build Coastguard Worker __u8 * buf; 120*8d67ca89SAndroid Build Coastguard Worker }; 121*8d67ca89SAndroid Build Coastguard Worker struct cdrom_multisession { 122*8d67ca89SAndroid Build Coastguard Worker union cdrom_addr addr; 123*8d67ca89SAndroid Build Coastguard Worker __u8 xa_flag; 124*8d67ca89SAndroid Build Coastguard Worker __u8 addr_format; 125*8d67ca89SAndroid Build Coastguard Worker }; 126*8d67ca89SAndroid Build Coastguard Worker struct cdrom_mcn { 127*8d67ca89SAndroid Build Coastguard Worker __u8 medium_catalog_number[14]; 128*8d67ca89SAndroid Build Coastguard Worker }; 129*8d67ca89SAndroid Build Coastguard Worker struct cdrom_blk { 130*8d67ca89SAndroid Build Coastguard Worker unsigned from; 131*8d67ca89SAndroid Build Coastguard Worker unsigned short len; 132*8d67ca89SAndroid Build Coastguard Worker }; 133*8d67ca89SAndroid Build Coastguard Worker #define CDROM_PACKET_SIZE 12 134*8d67ca89SAndroid Build Coastguard Worker #define CGC_DATA_UNKNOWN 0 135*8d67ca89SAndroid Build Coastguard Worker #define CGC_DATA_WRITE 1 136*8d67ca89SAndroid Build Coastguard Worker #define CGC_DATA_READ 2 137*8d67ca89SAndroid Build Coastguard Worker #define CGC_DATA_NONE 3 138*8d67ca89SAndroid Build Coastguard Worker struct cdrom_generic_command { 139*8d67ca89SAndroid Build Coastguard Worker unsigned char cmd[CDROM_PACKET_SIZE]; 140*8d67ca89SAndroid Build Coastguard Worker unsigned char * buffer; 141*8d67ca89SAndroid Build Coastguard Worker unsigned int buflen; 142*8d67ca89SAndroid Build Coastguard Worker int stat; 143*8d67ca89SAndroid Build Coastguard Worker struct request_sense * sense; 144*8d67ca89SAndroid Build Coastguard Worker unsigned char data_direction; 145*8d67ca89SAndroid Build Coastguard Worker int quiet; 146*8d67ca89SAndroid Build Coastguard Worker int timeout; 147*8d67ca89SAndroid Build Coastguard Worker union { 148*8d67ca89SAndroid Build Coastguard Worker void * reserved[1]; 149*8d67ca89SAndroid Build Coastguard Worker void * unused; 150*8d67ca89SAndroid Build Coastguard Worker }; 151*8d67ca89SAndroid Build Coastguard Worker }; 152*8d67ca89SAndroid Build Coastguard Worker struct cdrom_timed_media_change_info { 153*8d67ca89SAndroid Build Coastguard Worker __s64 last_media_change; 154*8d67ca89SAndroid Build Coastguard Worker __u64 media_flags; 155*8d67ca89SAndroid Build Coastguard Worker }; 156*8d67ca89SAndroid Build Coastguard Worker #define MEDIA_CHANGED_FLAG 0x1 157*8d67ca89SAndroid Build Coastguard Worker #define CD_MINS 74 158*8d67ca89SAndroid Build Coastguard Worker #define CD_SECS 60 159*8d67ca89SAndroid Build Coastguard Worker #define CD_FRAMES 75 160*8d67ca89SAndroid Build Coastguard Worker #define CD_SYNC_SIZE 12 161*8d67ca89SAndroid Build Coastguard Worker #define CD_MSF_OFFSET 150 162*8d67ca89SAndroid Build Coastguard Worker #define CD_CHUNK_SIZE 24 163*8d67ca89SAndroid Build Coastguard Worker #define CD_NUM_OF_CHUNKS 98 164*8d67ca89SAndroid Build Coastguard Worker #define CD_FRAMESIZE_SUB 96 165*8d67ca89SAndroid Build Coastguard Worker #define CD_HEAD_SIZE 4 166*8d67ca89SAndroid Build Coastguard Worker #define CD_SUBHEAD_SIZE 8 167*8d67ca89SAndroid Build Coastguard Worker #define CD_EDC_SIZE 4 168*8d67ca89SAndroid Build Coastguard Worker #define CD_ZERO_SIZE 8 169*8d67ca89SAndroid Build Coastguard Worker #define CD_ECC_SIZE 276 170*8d67ca89SAndroid Build Coastguard Worker #define CD_FRAMESIZE 2048 171*8d67ca89SAndroid Build Coastguard Worker #define CD_FRAMESIZE_RAW 2352 172*8d67ca89SAndroid Build Coastguard Worker #define CD_FRAMESIZE_RAWER 2646 173*8d67ca89SAndroid Build Coastguard Worker #define CD_FRAMESIZE_RAW1 (CD_FRAMESIZE_RAW - CD_SYNC_SIZE) 174*8d67ca89SAndroid Build Coastguard Worker #define CD_FRAMESIZE_RAW0 (CD_FRAMESIZE_RAW - CD_SYNC_SIZE - CD_HEAD_SIZE) 175*8d67ca89SAndroid Build Coastguard Worker #define CD_XA_HEAD (CD_HEAD_SIZE + CD_SUBHEAD_SIZE) 176*8d67ca89SAndroid Build Coastguard Worker #define CD_XA_TAIL (CD_EDC_SIZE + CD_ECC_SIZE) 177*8d67ca89SAndroid Build Coastguard Worker #define CD_XA_SYNC_HEAD (CD_SYNC_SIZE + CD_XA_HEAD) 178*8d67ca89SAndroid Build Coastguard Worker #define CDROM_LBA 0x01 179*8d67ca89SAndroid Build Coastguard Worker #define CDROM_MSF 0x02 180*8d67ca89SAndroid Build Coastguard Worker #define CDROM_DATA_TRACK 0x04 181*8d67ca89SAndroid Build Coastguard Worker #define CDROM_LEADOUT 0xAA 182*8d67ca89SAndroid Build Coastguard Worker #define CDROM_AUDIO_INVALID 0x00 183*8d67ca89SAndroid Build Coastguard Worker #define CDROM_AUDIO_PLAY 0x11 184*8d67ca89SAndroid Build Coastguard Worker #define CDROM_AUDIO_PAUSED 0x12 185*8d67ca89SAndroid Build Coastguard Worker #define CDROM_AUDIO_COMPLETED 0x13 186*8d67ca89SAndroid Build Coastguard Worker #define CDROM_AUDIO_ERROR 0x14 187*8d67ca89SAndroid Build Coastguard Worker #define CDROM_AUDIO_NO_STATUS 0x15 188*8d67ca89SAndroid Build Coastguard Worker #define CDC_CLOSE_TRAY 0x1 189*8d67ca89SAndroid Build Coastguard Worker #define CDC_OPEN_TRAY 0x2 190*8d67ca89SAndroid Build Coastguard Worker #define CDC_LOCK 0x4 191*8d67ca89SAndroid Build Coastguard Worker #define CDC_SELECT_SPEED 0x8 192*8d67ca89SAndroid Build Coastguard Worker #define CDC_SELECT_DISC 0x10 193*8d67ca89SAndroid Build Coastguard Worker #define CDC_MULTI_SESSION 0x20 194*8d67ca89SAndroid Build Coastguard Worker #define CDC_MCN 0x40 195*8d67ca89SAndroid Build Coastguard Worker #define CDC_MEDIA_CHANGED 0x80 196*8d67ca89SAndroid Build Coastguard Worker #define CDC_PLAY_AUDIO 0x100 197*8d67ca89SAndroid Build Coastguard Worker #define CDC_RESET 0x200 198*8d67ca89SAndroid Build Coastguard Worker #define CDC_DRIVE_STATUS 0x800 199*8d67ca89SAndroid Build Coastguard Worker #define CDC_GENERIC_PACKET 0x1000 200*8d67ca89SAndroid Build Coastguard Worker #define CDC_CD_R 0x2000 201*8d67ca89SAndroid Build Coastguard Worker #define CDC_CD_RW 0x4000 202*8d67ca89SAndroid Build Coastguard Worker #define CDC_DVD 0x8000 203*8d67ca89SAndroid Build Coastguard Worker #define CDC_DVD_R 0x10000 204*8d67ca89SAndroid Build Coastguard Worker #define CDC_DVD_RAM 0x20000 205*8d67ca89SAndroid Build Coastguard Worker #define CDC_MO_DRIVE 0x40000 206*8d67ca89SAndroid Build Coastguard Worker #define CDC_MRW 0x80000 207*8d67ca89SAndroid Build Coastguard Worker #define CDC_MRW_W 0x100000 208*8d67ca89SAndroid Build Coastguard Worker #define CDC_RAM 0x200000 209*8d67ca89SAndroid Build Coastguard Worker #define CDS_NO_INFO 0 210*8d67ca89SAndroid Build Coastguard Worker #define CDS_NO_DISC 1 211*8d67ca89SAndroid Build Coastguard Worker #define CDS_TRAY_OPEN 2 212*8d67ca89SAndroid Build Coastguard Worker #define CDS_DRIVE_NOT_READY 3 213*8d67ca89SAndroid Build Coastguard Worker #define CDS_DISC_OK 4 214*8d67ca89SAndroid Build Coastguard Worker #define CDS_AUDIO 100 215*8d67ca89SAndroid Build Coastguard Worker #define CDS_DATA_1 101 216*8d67ca89SAndroid Build Coastguard Worker #define CDS_DATA_2 102 217*8d67ca89SAndroid Build Coastguard Worker #define CDS_XA_2_1 103 218*8d67ca89SAndroid Build Coastguard Worker #define CDS_XA_2_2 104 219*8d67ca89SAndroid Build Coastguard Worker #define CDS_MIXED 105 220*8d67ca89SAndroid Build Coastguard Worker #define CDO_AUTO_CLOSE 0x1 221*8d67ca89SAndroid Build Coastguard Worker #define CDO_AUTO_EJECT 0x2 222*8d67ca89SAndroid Build Coastguard Worker #define CDO_USE_FFLAGS 0x4 223*8d67ca89SAndroid Build Coastguard Worker #define CDO_LOCK 0x8 224*8d67ca89SAndroid Build Coastguard Worker #define CDO_CHECK_TYPE 0x10 225*8d67ca89SAndroid Build Coastguard Worker #define CDSL_NONE (INT_MAX - 1) 226*8d67ca89SAndroid Build Coastguard Worker #define CDSL_CURRENT INT_MAX 227*8d67ca89SAndroid Build Coastguard Worker #define CD_PART_MAX 64 228*8d67ca89SAndroid Build Coastguard Worker #define CD_PART_MASK (CD_PART_MAX - 1) 229*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_BLANK 0xa1 230*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_CLOSE_TRACK 0x5b 231*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_FLUSH_CACHE 0x35 232*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_FORMAT_UNIT 0x04 233*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_GET_CONFIGURATION 0x46 234*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_GET_EVENT_STATUS_NOTIFICATION 0x4a 235*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_GET_PERFORMANCE 0xac 236*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_INQUIRY 0x12 237*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_LOAD_UNLOAD 0xa6 238*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_MECHANISM_STATUS 0xbd 239*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_MODE_SELECT_10 0x55 240*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_MODE_SENSE_10 0x5a 241*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_PAUSE_RESUME 0x4b 242*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_PLAY_AUDIO_10 0x45 243*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_PLAY_AUDIO_MSF 0x47 244*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_PLAY_AUDIO_TI 0x48 245*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_PLAY_CD 0xbc 246*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL 0x1e 247*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_10 0x28 248*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_12 0xa8 249*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_BUFFER 0x3c 250*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_BUFFER_CAPACITY 0x5c 251*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_CDVD_CAPACITY 0x25 252*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_CD 0xbe 253*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_CD_MSF 0xb9 254*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_DISC_INFO 0x51 255*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_DVD_STRUCTURE 0xad 256*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_FORMAT_CAPACITIES 0x23 257*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_HEADER 0x44 258*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_TRACK_RZONE_INFO 0x52 259*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_SUBCHANNEL 0x42 260*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_READ_TOC_PMA_ATIP 0x43 261*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_REPAIR_RZONE_TRACK 0x58 262*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_REPORT_KEY 0xa4 263*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_REQUEST_SENSE 0x03 264*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_RESERVE_RZONE_TRACK 0x53 265*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_SEND_CUE_SHEET 0x5d 266*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_SCAN 0xba 267*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_SEEK 0x2b 268*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_SEND_DVD_STRUCTURE 0xbf 269*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_SEND_EVENT 0xa2 270*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_SEND_KEY 0xa3 271*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_SEND_OPC 0x54 272*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_SET_READ_AHEAD 0xa7 273*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_SET_STREAMING 0xb6 274*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_START_STOP_UNIT 0x1b 275*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_STOP_PLAY_SCAN 0x4e 276*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_TEST_UNIT_READY 0x00 277*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_VERIFY_10 0x2f 278*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_WRITE_10 0x2a 279*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_WRITE_12 0xaa 280*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_WRITE_AND_VERIFY_10 0x2e 281*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_WRITE_BUFFER 0x3b 282*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_SET_SPEED 0xbb 283*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_PLAYAUDIO_TI 0x48 284*8d67ca89SAndroid Build Coastguard Worker #define GPCMD_GET_MEDIA_STATUS 0xda 285*8d67ca89SAndroid Build Coastguard Worker #define GPMODE_VENDOR_PAGE 0x00 286*8d67ca89SAndroid Build Coastguard Worker #define GPMODE_R_W_ERROR_PAGE 0x01 287*8d67ca89SAndroid Build Coastguard Worker #define GPMODE_WRITE_PARMS_PAGE 0x05 288*8d67ca89SAndroid Build Coastguard Worker #define GPMODE_WCACHING_PAGE 0x08 289*8d67ca89SAndroid Build Coastguard Worker #define GPMODE_AUDIO_CTL_PAGE 0x0e 290*8d67ca89SAndroid Build Coastguard Worker #define GPMODE_POWER_PAGE 0x1a 291*8d67ca89SAndroid Build Coastguard Worker #define GPMODE_FAULT_FAIL_PAGE 0x1c 292*8d67ca89SAndroid Build Coastguard Worker #define GPMODE_TO_PROTECT_PAGE 0x1d 293*8d67ca89SAndroid Build Coastguard Worker #define GPMODE_CAPABILITIES_PAGE 0x2a 294*8d67ca89SAndroid Build Coastguard Worker #define GPMODE_ALL_PAGES 0x3f 295*8d67ca89SAndroid Build Coastguard Worker #define GPMODE_CDROM_PAGE 0x0d 296*8d67ca89SAndroid Build Coastguard Worker #define DVD_STRUCT_PHYSICAL 0x00 297*8d67ca89SAndroid Build Coastguard Worker #define DVD_STRUCT_COPYRIGHT 0x01 298*8d67ca89SAndroid Build Coastguard Worker #define DVD_STRUCT_DISCKEY 0x02 299*8d67ca89SAndroid Build Coastguard Worker #define DVD_STRUCT_BCA 0x03 300*8d67ca89SAndroid Build Coastguard Worker #define DVD_STRUCT_MANUFACT 0x04 301*8d67ca89SAndroid Build Coastguard Worker struct dvd_layer { 302*8d67ca89SAndroid Build Coastguard Worker __u8 book_version : 4; 303*8d67ca89SAndroid Build Coastguard Worker __u8 book_type : 4; 304*8d67ca89SAndroid Build Coastguard Worker __u8 min_rate : 4; 305*8d67ca89SAndroid Build Coastguard Worker __u8 disc_size : 4; 306*8d67ca89SAndroid Build Coastguard Worker __u8 layer_type : 4; 307*8d67ca89SAndroid Build Coastguard Worker __u8 track_path : 1; 308*8d67ca89SAndroid Build Coastguard Worker __u8 nlayers : 2; 309*8d67ca89SAndroid Build Coastguard Worker __u8 track_density : 4; 310*8d67ca89SAndroid Build Coastguard Worker __u8 linear_density : 4; 311*8d67ca89SAndroid Build Coastguard Worker __u8 bca : 1; 312*8d67ca89SAndroid Build Coastguard Worker __u32 start_sector; 313*8d67ca89SAndroid Build Coastguard Worker __u32 end_sector; 314*8d67ca89SAndroid Build Coastguard Worker __u32 end_sector_l0; 315*8d67ca89SAndroid Build Coastguard Worker }; 316*8d67ca89SAndroid Build Coastguard Worker #define DVD_LAYERS 4 317*8d67ca89SAndroid Build Coastguard Worker struct dvd_physical { 318*8d67ca89SAndroid Build Coastguard Worker __u8 type; 319*8d67ca89SAndroid Build Coastguard Worker __u8 layer_num; 320*8d67ca89SAndroid Build Coastguard Worker struct dvd_layer layer[DVD_LAYERS]; 321*8d67ca89SAndroid Build Coastguard Worker }; 322*8d67ca89SAndroid Build Coastguard Worker struct dvd_copyright { 323*8d67ca89SAndroid Build Coastguard Worker __u8 type; 324*8d67ca89SAndroid Build Coastguard Worker __u8 layer_num; 325*8d67ca89SAndroid Build Coastguard Worker __u8 cpst; 326*8d67ca89SAndroid Build Coastguard Worker __u8 rmi; 327*8d67ca89SAndroid Build Coastguard Worker }; 328*8d67ca89SAndroid Build Coastguard Worker struct dvd_disckey { 329*8d67ca89SAndroid Build Coastguard Worker __u8 type; 330*8d67ca89SAndroid Build Coastguard Worker unsigned agid : 2; 331*8d67ca89SAndroid Build Coastguard Worker __u8 value[2048]; 332*8d67ca89SAndroid Build Coastguard Worker }; 333*8d67ca89SAndroid Build Coastguard Worker struct dvd_bca { 334*8d67ca89SAndroid Build Coastguard Worker __u8 type; 335*8d67ca89SAndroid Build Coastguard Worker int len; 336*8d67ca89SAndroid Build Coastguard Worker __u8 value[188]; 337*8d67ca89SAndroid Build Coastguard Worker }; 338*8d67ca89SAndroid Build Coastguard Worker struct dvd_manufact { 339*8d67ca89SAndroid Build Coastguard Worker __u8 type; 340*8d67ca89SAndroid Build Coastguard Worker __u8 layer_num; 341*8d67ca89SAndroid Build Coastguard Worker int len; 342*8d67ca89SAndroid Build Coastguard Worker __u8 value[2048]; 343*8d67ca89SAndroid Build Coastguard Worker }; 344*8d67ca89SAndroid Build Coastguard Worker typedef union { 345*8d67ca89SAndroid Build Coastguard Worker __u8 type; 346*8d67ca89SAndroid Build Coastguard Worker struct dvd_physical physical; 347*8d67ca89SAndroid Build Coastguard Worker struct dvd_copyright copyright; 348*8d67ca89SAndroid Build Coastguard Worker struct dvd_disckey disckey; 349*8d67ca89SAndroid Build Coastguard Worker struct dvd_bca bca; 350*8d67ca89SAndroid Build Coastguard Worker struct dvd_manufact manufact; 351*8d67ca89SAndroid Build Coastguard Worker } dvd_struct; 352*8d67ca89SAndroid Build Coastguard Worker #define DVD_LU_SEND_AGID 0 353*8d67ca89SAndroid Build Coastguard Worker #define DVD_HOST_SEND_CHALLENGE 1 354*8d67ca89SAndroid Build Coastguard Worker #define DVD_LU_SEND_KEY1 2 355*8d67ca89SAndroid Build Coastguard Worker #define DVD_LU_SEND_CHALLENGE 3 356*8d67ca89SAndroid Build Coastguard Worker #define DVD_HOST_SEND_KEY2 4 357*8d67ca89SAndroid Build Coastguard Worker #define DVD_AUTH_ESTABLISHED 5 358*8d67ca89SAndroid Build Coastguard Worker #define DVD_AUTH_FAILURE 6 359*8d67ca89SAndroid Build Coastguard Worker #define DVD_LU_SEND_TITLE_KEY 7 360*8d67ca89SAndroid Build Coastguard Worker #define DVD_LU_SEND_ASF 8 361*8d67ca89SAndroid Build Coastguard Worker #define DVD_INVALIDATE_AGID 9 362*8d67ca89SAndroid Build Coastguard Worker #define DVD_LU_SEND_RPC_STATE 10 363*8d67ca89SAndroid Build Coastguard Worker #define DVD_HOST_SEND_RPC_STATE 11 364*8d67ca89SAndroid Build Coastguard Worker typedef __u8 dvd_key[5]; 365*8d67ca89SAndroid Build Coastguard Worker typedef __u8 dvd_challenge[10]; 366*8d67ca89SAndroid Build Coastguard Worker struct dvd_lu_send_agid { 367*8d67ca89SAndroid Build Coastguard Worker __u8 type; 368*8d67ca89SAndroid Build Coastguard Worker unsigned agid : 2; 369*8d67ca89SAndroid Build Coastguard Worker }; 370*8d67ca89SAndroid Build Coastguard Worker struct dvd_host_send_challenge { 371*8d67ca89SAndroid Build Coastguard Worker __u8 type; 372*8d67ca89SAndroid Build Coastguard Worker unsigned agid : 2; 373*8d67ca89SAndroid Build Coastguard Worker dvd_challenge chal; 374*8d67ca89SAndroid Build Coastguard Worker }; 375*8d67ca89SAndroid Build Coastguard Worker struct dvd_send_key { 376*8d67ca89SAndroid Build Coastguard Worker __u8 type; 377*8d67ca89SAndroid Build Coastguard Worker unsigned agid : 2; 378*8d67ca89SAndroid Build Coastguard Worker dvd_key key; 379*8d67ca89SAndroid Build Coastguard Worker }; 380*8d67ca89SAndroid Build Coastguard Worker struct dvd_lu_send_challenge { 381*8d67ca89SAndroid Build Coastguard Worker __u8 type; 382*8d67ca89SAndroid Build Coastguard Worker unsigned agid : 2; 383*8d67ca89SAndroid Build Coastguard Worker dvd_challenge chal; 384*8d67ca89SAndroid Build Coastguard Worker }; 385*8d67ca89SAndroid Build Coastguard Worker #define DVD_CPM_NO_COPYRIGHT 0 386*8d67ca89SAndroid Build Coastguard Worker #define DVD_CPM_COPYRIGHTED 1 387*8d67ca89SAndroid Build Coastguard Worker #define DVD_CP_SEC_NONE 0 388*8d67ca89SAndroid Build Coastguard Worker #define DVD_CP_SEC_EXIST 1 389*8d67ca89SAndroid Build Coastguard Worker #define DVD_CGMS_UNRESTRICTED 0 390*8d67ca89SAndroid Build Coastguard Worker #define DVD_CGMS_SINGLE 2 391*8d67ca89SAndroid Build Coastguard Worker #define DVD_CGMS_RESTRICTED 3 392*8d67ca89SAndroid Build Coastguard Worker struct dvd_lu_send_title_key { 393*8d67ca89SAndroid Build Coastguard Worker __u8 type; 394*8d67ca89SAndroid Build Coastguard Worker unsigned agid : 2; 395*8d67ca89SAndroid Build Coastguard Worker dvd_key title_key; 396*8d67ca89SAndroid Build Coastguard Worker int lba; 397*8d67ca89SAndroid Build Coastguard Worker unsigned cpm : 1; 398*8d67ca89SAndroid Build Coastguard Worker unsigned cp_sec : 1; 399*8d67ca89SAndroid Build Coastguard Worker unsigned cgms : 2; 400*8d67ca89SAndroid Build Coastguard Worker }; 401*8d67ca89SAndroid Build Coastguard Worker struct dvd_lu_send_asf { 402*8d67ca89SAndroid Build Coastguard Worker __u8 type; 403*8d67ca89SAndroid Build Coastguard Worker unsigned agid : 2; 404*8d67ca89SAndroid Build Coastguard Worker unsigned asf : 1; 405*8d67ca89SAndroid Build Coastguard Worker }; 406*8d67ca89SAndroid Build Coastguard Worker struct dvd_host_send_rpcstate { 407*8d67ca89SAndroid Build Coastguard Worker __u8 type; 408*8d67ca89SAndroid Build Coastguard Worker __u8 pdrc; 409*8d67ca89SAndroid Build Coastguard Worker }; 410*8d67ca89SAndroid Build Coastguard Worker struct dvd_lu_send_rpcstate { 411*8d67ca89SAndroid Build Coastguard Worker __u8 type : 2; 412*8d67ca89SAndroid Build Coastguard Worker __u8 vra : 3; 413*8d67ca89SAndroid Build Coastguard Worker __u8 ucca : 3; 414*8d67ca89SAndroid Build Coastguard Worker __u8 region_mask; 415*8d67ca89SAndroid Build Coastguard Worker __u8 rpc_scheme; 416*8d67ca89SAndroid Build Coastguard Worker }; 417*8d67ca89SAndroid Build Coastguard Worker typedef union { 418*8d67ca89SAndroid Build Coastguard Worker __u8 type; 419*8d67ca89SAndroid Build Coastguard Worker struct dvd_lu_send_agid lsa; 420*8d67ca89SAndroid Build Coastguard Worker struct dvd_host_send_challenge hsc; 421*8d67ca89SAndroid Build Coastguard Worker struct dvd_send_key lsk; 422*8d67ca89SAndroid Build Coastguard Worker struct dvd_lu_send_challenge lsc; 423*8d67ca89SAndroid Build Coastguard Worker struct dvd_send_key hsk; 424*8d67ca89SAndroid Build Coastguard Worker struct dvd_lu_send_title_key lstk; 425*8d67ca89SAndroid Build Coastguard Worker struct dvd_lu_send_asf lsasf; 426*8d67ca89SAndroid Build Coastguard Worker struct dvd_host_send_rpcstate hrpcs; 427*8d67ca89SAndroid Build Coastguard Worker struct dvd_lu_send_rpcstate lrpcs; 428*8d67ca89SAndroid Build Coastguard Worker } dvd_authinfo; 429*8d67ca89SAndroid Build Coastguard Worker struct request_sense { 430*8d67ca89SAndroid Build Coastguard Worker #ifdef __BIG_ENDIAN_BITFIELD 431*8d67ca89SAndroid Build Coastguard Worker __u8 valid : 1; 432*8d67ca89SAndroid Build Coastguard Worker __u8 error_code : 7; 433*8d67ca89SAndroid Build Coastguard Worker #elif defined(__LITTLE_ENDIAN_BITFIELD) 434*8d67ca89SAndroid Build Coastguard Worker __u8 error_code : 7; 435*8d67ca89SAndroid Build Coastguard Worker __u8 valid : 1; 436*8d67ca89SAndroid Build Coastguard Worker #endif 437*8d67ca89SAndroid Build Coastguard Worker __u8 segment_number; 438*8d67ca89SAndroid Build Coastguard Worker #ifdef __BIG_ENDIAN_BITFIELD 439*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1 : 2; 440*8d67ca89SAndroid Build Coastguard Worker __u8 ili : 1; 441*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2 : 1; 442*8d67ca89SAndroid Build Coastguard Worker __u8 sense_key : 4; 443*8d67ca89SAndroid Build Coastguard Worker #elif defined(__LITTLE_ENDIAN_BITFIELD) 444*8d67ca89SAndroid Build Coastguard Worker __u8 sense_key : 4; 445*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2 : 1; 446*8d67ca89SAndroid Build Coastguard Worker __u8 ili : 1; 447*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1 : 2; 448*8d67ca89SAndroid Build Coastguard Worker #endif 449*8d67ca89SAndroid Build Coastguard Worker __u8 information[4]; 450*8d67ca89SAndroid Build Coastguard Worker __u8 add_sense_len; 451*8d67ca89SAndroid Build Coastguard Worker __u8 command_info[4]; 452*8d67ca89SAndroid Build Coastguard Worker __u8 asc; 453*8d67ca89SAndroid Build Coastguard Worker __u8 ascq; 454*8d67ca89SAndroid Build Coastguard Worker __u8 fruc; 455*8d67ca89SAndroid Build Coastguard Worker __u8 sks[3]; 456*8d67ca89SAndroid Build Coastguard Worker __u8 asb[46]; 457*8d67ca89SAndroid Build Coastguard Worker }; 458*8d67ca89SAndroid Build Coastguard Worker #define CDF_RWRT 0x0020 459*8d67ca89SAndroid Build Coastguard Worker #define CDF_HWDM 0x0024 460*8d67ca89SAndroid Build Coastguard Worker #define CDF_MRW 0x0028 461*8d67ca89SAndroid Build Coastguard Worker #define CDM_MRW_NOTMRW 0 462*8d67ca89SAndroid Build Coastguard Worker #define CDM_MRW_BGFORMAT_INACTIVE 1 463*8d67ca89SAndroid Build Coastguard Worker #define CDM_MRW_BGFORMAT_ACTIVE 2 464*8d67ca89SAndroid Build Coastguard Worker #define CDM_MRW_BGFORMAT_COMPLETE 3 465*8d67ca89SAndroid Build Coastguard Worker #define MRW_LBA_DMA 0 466*8d67ca89SAndroid Build Coastguard Worker #define MRW_LBA_GAA 1 467*8d67ca89SAndroid Build Coastguard Worker #define MRW_MODE_PC_PRE1 0x2c 468*8d67ca89SAndroid Build Coastguard Worker #define MRW_MODE_PC 0x03 469*8d67ca89SAndroid Build Coastguard Worker struct mrw_feature_desc { 470*8d67ca89SAndroid Build Coastguard Worker __be16 feature_code; 471*8d67ca89SAndroid Build Coastguard Worker #ifdef __BIG_ENDIAN_BITFIELD 472*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1 : 2; 473*8d67ca89SAndroid Build Coastguard Worker __u8 feature_version : 4; 474*8d67ca89SAndroid Build Coastguard Worker __u8 persistent : 1; 475*8d67ca89SAndroid Build Coastguard Worker __u8 curr : 1; 476*8d67ca89SAndroid Build Coastguard Worker #elif defined(__LITTLE_ENDIAN_BITFIELD) 477*8d67ca89SAndroid Build Coastguard Worker __u8 curr : 1; 478*8d67ca89SAndroid Build Coastguard Worker __u8 persistent : 1; 479*8d67ca89SAndroid Build Coastguard Worker __u8 feature_version : 4; 480*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1 : 2; 481*8d67ca89SAndroid Build Coastguard Worker #endif 482*8d67ca89SAndroid Build Coastguard Worker __u8 add_len; 483*8d67ca89SAndroid Build Coastguard Worker #ifdef __BIG_ENDIAN_BITFIELD 484*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2 : 7; 485*8d67ca89SAndroid Build Coastguard Worker __u8 write : 1; 486*8d67ca89SAndroid Build Coastguard Worker #elif defined(__LITTLE_ENDIAN_BITFIELD) 487*8d67ca89SAndroid Build Coastguard Worker __u8 write : 1; 488*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2 : 7; 489*8d67ca89SAndroid Build Coastguard Worker #endif 490*8d67ca89SAndroid Build Coastguard Worker __u8 reserved3; 491*8d67ca89SAndroid Build Coastguard Worker __u8 reserved4; 492*8d67ca89SAndroid Build Coastguard Worker __u8 reserved5; 493*8d67ca89SAndroid Build Coastguard Worker }; 494*8d67ca89SAndroid Build Coastguard Worker struct rwrt_feature_desc { 495*8d67ca89SAndroid Build Coastguard Worker __be16 feature_code; 496*8d67ca89SAndroid Build Coastguard Worker #ifdef __BIG_ENDIAN_BITFIELD 497*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1 : 2; 498*8d67ca89SAndroid Build Coastguard Worker __u8 feature_version : 4; 499*8d67ca89SAndroid Build Coastguard Worker __u8 persistent : 1; 500*8d67ca89SAndroid Build Coastguard Worker __u8 curr : 1; 501*8d67ca89SAndroid Build Coastguard Worker #elif defined(__LITTLE_ENDIAN_BITFIELD) 502*8d67ca89SAndroid Build Coastguard Worker __u8 curr : 1; 503*8d67ca89SAndroid Build Coastguard Worker __u8 persistent : 1; 504*8d67ca89SAndroid Build Coastguard Worker __u8 feature_version : 4; 505*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1 : 2; 506*8d67ca89SAndroid Build Coastguard Worker #endif 507*8d67ca89SAndroid Build Coastguard Worker __u8 add_len; 508*8d67ca89SAndroid Build Coastguard Worker __u32 last_lba; 509*8d67ca89SAndroid Build Coastguard Worker __u32 block_size; 510*8d67ca89SAndroid Build Coastguard Worker __u16 blocking; 511*8d67ca89SAndroid Build Coastguard Worker #ifdef __BIG_ENDIAN_BITFIELD 512*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2 : 7; 513*8d67ca89SAndroid Build Coastguard Worker __u8 page_present : 1; 514*8d67ca89SAndroid Build Coastguard Worker #elif defined(__LITTLE_ENDIAN_BITFIELD) 515*8d67ca89SAndroid Build Coastguard Worker __u8 page_present : 1; 516*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2 : 7; 517*8d67ca89SAndroid Build Coastguard Worker #endif 518*8d67ca89SAndroid Build Coastguard Worker __u8 reserved3; 519*8d67ca89SAndroid Build Coastguard Worker }; 520*8d67ca89SAndroid Build Coastguard Worker typedef struct { 521*8d67ca89SAndroid Build Coastguard Worker __be16 disc_information_length; 522*8d67ca89SAndroid Build Coastguard Worker #ifdef __BIG_ENDIAN_BITFIELD 523*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1 : 3; 524*8d67ca89SAndroid Build Coastguard Worker __u8 erasable : 1; 525*8d67ca89SAndroid Build Coastguard Worker __u8 border_status : 2; 526*8d67ca89SAndroid Build Coastguard Worker __u8 disc_status : 2; 527*8d67ca89SAndroid Build Coastguard Worker #elif defined(__LITTLE_ENDIAN_BITFIELD) 528*8d67ca89SAndroid Build Coastguard Worker __u8 disc_status : 2; 529*8d67ca89SAndroid Build Coastguard Worker __u8 border_status : 2; 530*8d67ca89SAndroid Build Coastguard Worker __u8 erasable : 1; 531*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1 : 3; 532*8d67ca89SAndroid Build Coastguard Worker #else 533*8d67ca89SAndroid Build Coastguard Worker #error "Please fix <asm/byteorder.h>" 534*8d67ca89SAndroid Build Coastguard Worker #endif 535*8d67ca89SAndroid Build Coastguard Worker __u8 n_first_track; 536*8d67ca89SAndroid Build Coastguard Worker __u8 n_sessions_lsb; 537*8d67ca89SAndroid Build Coastguard Worker __u8 first_track_lsb; 538*8d67ca89SAndroid Build Coastguard Worker __u8 last_track_lsb; 539*8d67ca89SAndroid Build Coastguard Worker #ifdef __BIG_ENDIAN_BITFIELD 540*8d67ca89SAndroid Build Coastguard Worker __u8 did_v : 1; 541*8d67ca89SAndroid Build Coastguard Worker __u8 dbc_v : 1; 542*8d67ca89SAndroid Build Coastguard Worker __u8 uru : 1; 543*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2 : 2; 544*8d67ca89SAndroid Build Coastguard Worker __u8 dbit : 1; 545*8d67ca89SAndroid Build Coastguard Worker __u8 mrw_status : 2; 546*8d67ca89SAndroid Build Coastguard Worker #elif defined(__LITTLE_ENDIAN_BITFIELD) 547*8d67ca89SAndroid Build Coastguard Worker __u8 mrw_status : 2; 548*8d67ca89SAndroid Build Coastguard Worker __u8 dbit : 1; 549*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2 : 2; 550*8d67ca89SAndroid Build Coastguard Worker __u8 uru : 1; 551*8d67ca89SAndroid Build Coastguard Worker __u8 dbc_v : 1; 552*8d67ca89SAndroid Build Coastguard Worker __u8 did_v : 1; 553*8d67ca89SAndroid Build Coastguard Worker #endif 554*8d67ca89SAndroid Build Coastguard Worker __u8 disc_type; 555*8d67ca89SAndroid Build Coastguard Worker __u8 n_sessions_msb; 556*8d67ca89SAndroid Build Coastguard Worker __u8 first_track_msb; 557*8d67ca89SAndroid Build Coastguard Worker __u8 last_track_msb; 558*8d67ca89SAndroid Build Coastguard Worker __u32 disc_id; 559*8d67ca89SAndroid Build Coastguard Worker __u32 lead_in; 560*8d67ca89SAndroid Build Coastguard Worker __u32 lead_out; 561*8d67ca89SAndroid Build Coastguard Worker __u8 disc_bar_code[8]; 562*8d67ca89SAndroid Build Coastguard Worker __u8 reserved3; 563*8d67ca89SAndroid Build Coastguard Worker __u8 n_opc; 564*8d67ca89SAndroid Build Coastguard Worker } disc_information; 565*8d67ca89SAndroid Build Coastguard Worker typedef struct { 566*8d67ca89SAndroid Build Coastguard Worker __be16 track_information_length; 567*8d67ca89SAndroid Build Coastguard Worker __u8 track_lsb; 568*8d67ca89SAndroid Build Coastguard Worker __u8 session_lsb; 569*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1; 570*8d67ca89SAndroid Build Coastguard Worker #ifdef __BIG_ENDIAN_BITFIELD 571*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2 : 2; 572*8d67ca89SAndroid Build Coastguard Worker __u8 damage : 1; 573*8d67ca89SAndroid Build Coastguard Worker __u8 copy : 1; 574*8d67ca89SAndroid Build Coastguard Worker __u8 track_mode : 4; 575*8d67ca89SAndroid Build Coastguard Worker __u8 rt : 1; 576*8d67ca89SAndroid Build Coastguard Worker __u8 blank : 1; 577*8d67ca89SAndroid Build Coastguard Worker __u8 packet : 1; 578*8d67ca89SAndroid Build Coastguard Worker __u8 fp : 1; 579*8d67ca89SAndroid Build Coastguard Worker __u8 data_mode : 4; 580*8d67ca89SAndroid Build Coastguard Worker __u8 reserved3 : 6; 581*8d67ca89SAndroid Build Coastguard Worker __u8 lra_v : 1; 582*8d67ca89SAndroid Build Coastguard Worker __u8 nwa_v : 1; 583*8d67ca89SAndroid Build Coastguard Worker #elif defined(__LITTLE_ENDIAN_BITFIELD) 584*8d67ca89SAndroid Build Coastguard Worker __u8 track_mode : 4; 585*8d67ca89SAndroid Build Coastguard Worker __u8 copy : 1; 586*8d67ca89SAndroid Build Coastguard Worker __u8 damage : 1; 587*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2 : 2; 588*8d67ca89SAndroid Build Coastguard Worker __u8 data_mode : 4; 589*8d67ca89SAndroid Build Coastguard Worker __u8 fp : 1; 590*8d67ca89SAndroid Build Coastguard Worker __u8 packet : 1; 591*8d67ca89SAndroid Build Coastguard Worker __u8 blank : 1; 592*8d67ca89SAndroid Build Coastguard Worker __u8 rt : 1; 593*8d67ca89SAndroid Build Coastguard Worker __u8 nwa_v : 1; 594*8d67ca89SAndroid Build Coastguard Worker __u8 lra_v : 1; 595*8d67ca89SAndroid Build Coastguard Worker __u8 reserved3 : 6; 596*8d67ca89SAndroid Build Coastguard Worker #endif 597*8d67ca89SAndroid Build Coastguard Worker __be32 track_start; 598*8d67ca89SAndroid Build Coastguard Worker __be32 next_writable; 599*8d67ca89SAndroid Build Coastguard Worker __be32 free_blocks; 600*8d67ca89SAndroid Build Coastguard Worker __be32 fixed_packet_size; 601*8d67ca89SAndroid Build Coastguard Worker __be32 track_size; 602*8d67ca89SAndroid Build Coastguard Worker __be32 last_rec_address; 603*8d67ca89SAndroid Build Coastguard Worker } track_information; 604*8d67ca89SAndroid Build Coastguard Worker struct feature_header { 605*8d67ca89SAndroid Build Coastguard Worker __u32 data_len; 606*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1; 607*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2; 608*8d67ca89SAndroid Build Coastguard Worker __u16 curr_profile; 609*8d67ca89SAndroid Build Coastguard Worker }; 610*8d67ca89SAndroid Build Coastguard Worker struct mode_page_header { 611*8d67ca89SAndroid Build Coastguard Worker __be16 mode_data_length; 612*8d67ca89SAndroid Build Coastguard Worker __u8 medium_type; 613*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1; 614*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2; 615*8d67ca89SAndroid Build Coastguard Worker __u8 reserved3; 616*8d67ca89SAndroid Build Coastguard Worker __be16 desc_length; 617*8d67ca89SAndroid Build Coastguard Worker }; 618*8d67ca89SAndroid Build Coastguard Worker struct rm_feature_desc { 619*8d67ca89SAndroid Build Coastguard Worker __be16 feature_code; 620*8d67ca89SAndroid Build Coastguard Worker #ifdef __BIG_ENDIAN_BITFIELD 621*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1 : 2; 622*8d67ca89SAndroid Build Coastguard Worker __u8 feature_version : 4; 623*8d67ca89SAndroid Build Coastguard Worker __u8 persistent : 1; 624*8d67ca89SAndroid Build Coastguard Worker __u8 curr : 1; 625*8d67ca89SAndroid Build Coastguard Worker #elif defined(__LITTLE_ENDIAN_BITFIELD) 626*8d67ca89SAndroid Build Coastguard Worker __u8 curr : 1; 627*8d67ca89SAndroid Build Coastguard Worker __u8 persistent : 1; 628*8d67ca89SAndroid Build Coastguard Worker __u8 feature_version : 4; 629*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1 : 2; 630*8d67ca89SAndroid Build Coastguard Worker #endif 631*8d67ca89SAndroid Build Coastguard Worker __u8 add_len; 632*8d67ca89SAndroid Build Coastguard Worker #ifdef __BIG_ENDIAN_BITFIELD 633*8d67ca89SAndroid Build Coastguard Worker __u8 mech_type : 3; 634*8d67ca89SAndroid Build Coastguard Worker __u8 load : 1; 635*8d67ca89SAndroid Build Coastguard Worker __u8 eject : 1; 636*8d67ca89SAndroid Build Coastguard Worker __u8 pvnt_jmpr : 1; 637*8d67ca89SAndroid Build Coastguard Worker __u8 dbml : 1; 638*8d67ca89SAndroid Build Coastguard Worker __u8 lock : 1; 639*8d67ca89SAndroid Build Coastguard Worker #elif defined(__LITTLE_ENDIAN_BITFIELD) 640*8d67ca89SAndroid Build Coastguard Worker __u8 lock : 1; 641*8d67ca89SAndroid Build Coastguard Worker __u8 dbml : 1; 642*8d67ca89SAndroid Build Coastguard Worker __u8 pvnt_jmpr : 1; 643*8d67ca89SAndroid Build Coastguard Worker __u8 eject : 1; 644*8d67ca89SAndroid Build Coastguard Worker __u8 load : 1; 645*8d67ca89SAndroid Build Coastguard Worker __u8 mech_type : 3; 646*8d67ca89SAndroid Build Coastguard Worker #endif 647*8d67ca89SAndroid Build Coastguard Worker __u8 reserved2; 648*8d67ca89SAndroid Build Coastguard Worker __u8 reserved3; 649*8d67ca89SAndroid Build Coastguard Worker __u8 reserved4; 650*8d67ca89SAndroid Build Coastguard Worker }; 651*8d67ca89SAndroid Build Coastguard Worker #endif 652