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