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