111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _LINUX_CDROM_H 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _LINUX_CDROM_H 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/byteorder.h> 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EDRIVE_CANT_DO_THIS EOPNOTSUPP 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMPAUSE 0x5301 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMRESUME 0x5302 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMPLAYMSF 0x5303 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMPLAYTRKIND 0x5304 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMREADTOCHDR 0x5305 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMREADTOCENTRY 0x5306 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMSTOP 0x5307 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMSTART 0x5308 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMEJECT 0x5309 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMVOLCTRL 0x530a 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMSUBCHNL 0x530b 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMREADMODE2 0x530c 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMREADMODE1 0x530d 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMREADAUDIO 0x530e 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMEJECT_SW 0x530f 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMMULTISESSION 0x5310 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_GET_MCN 0x5311 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_GET_UPC CDROM_GET_MCN 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMRESET 0x5312 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMVOLREAD 0x5313 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMREADRAW 0x5314 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMREADCOOKED 0x5315 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMSEEK 0x5316 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMPLAYBLK 0x5317 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMREADALL 0x5318 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMGETSPINDOWN 0x531d 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMSETSPINDOWN 0x531e 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMCLOSETRAY 0x5319 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_SET_OPTIONS 0x5320 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_CLEAR_OPTIONS 0x5321 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_SELECT_SPEED 0x5322 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_SELECT_DISC 0x5323 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_MEDIA_CHANGED 0x5325 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_DRIVE_STATUS 0x5326 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_DISC_STATUS 0x5327 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_CHANGER_NSLOTS 0x5328 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_LOCKDOOR 0x5329 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_DEBUG 0x5330 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_GET_CAPABILITY 0x5331 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROMAUDIOBUFSIZ 0x5382 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_READ_STRUCT 0x5390 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_WRITE_STRUCT 0x5391 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_AUTH 0x5392 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_SEND_PACKET 0x5393 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_NEXT_WRITABLE 0x5394 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_LAST_WRITTEN 0x5395 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cdrom_msf0 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 minute; 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 second; 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 frame; 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertunion cdrom_addr 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct cdrom_msf0 msf; 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int lba; 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cdrom_msf 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdmsf_min0; 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdmsf_sec0; 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdmsf_frame0; 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdmsf_min1; 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdmsf_sec1; 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdmsf_frame1; 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cdrom_ti 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdti_trk0; 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdti_ind0; 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdti_trk1; 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdti_ind1; 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cdrom_tochdr 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdth_trk0; 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdth_trk1; 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cdrom_volctrl 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 channel0; 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 channel1; 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 channel2; 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 channel3; 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cdrom_subchnl 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdsc_format; 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdsc_audiostatus; 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdsc_adr: 4; 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdsc_ctrl: 4; 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdsc_trk; 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdsc_ind; 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union cdrom_addr cdsc_absaddr; 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union cdrom_addr cdsc_reladdr; 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cdrom_tocentry 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdte_track; 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdte_adr :4; 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdte_ctrl :4; 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdte_format; 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union cdrom_addr cdte_addr; 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cdte_datamode; 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cdrom_read 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int cdread_lba; 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char *cdread_bufaddr; 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int cdread_buflen; 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cdrom_read_audio 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union cdrom_addr addr; 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 addr_format; 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int nframes; 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 __user *buf; 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cdrom_multisession 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union cdrom_addr addr; 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 xa_flag; 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 addr_format; 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cdrom_mcn 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 medium_catalog_number[14]; 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cdrom_blk 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned from; 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short len; 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_PACKET_SIZE 12 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CGC_DATA_UNKNOWN 0 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CGC_DATA_WRITE 1 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CGC_DATA_READ 2 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CGC_DATA_NONE 3 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct cdrom_generic_command 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char cmd[CDROM_PACKET_SIZE]; 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char __user *buffer; 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int buflen; 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int stat; 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct request_sense __user *sense; 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char data_direction; 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int quiet; 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int timeout; 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *reserved[1]; 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_MINS 74 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_SECS 60 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_FRAMES 75 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_SYNC_SIZE 12 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_MSF_OFFSET 150 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_CHUNK_SIZE 24 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_NUM_OF_CHUNKS 98 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_FRAMESIZE_SUB 96 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_HEAD_SIZE 4 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_SUBHEAD_SIZE 8 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_EDC_SIZE 4 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_ZERO_SIZE 8 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_ECC_SIZE 276 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_FRAMESIZE 2048 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_FRAMESIZE_RAW 2352 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_FRAMESIZE_RAWER 2646 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_FRAMESIZE_RAW1 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE) 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_FRAMESIZE_RAW0 (CD_FRAMESIZE_RAW-CD_SYNC_SIZE-CD_HEAD_SIZE) 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_XA_HEAD (CD_HEAD_SIZE+CD_SUBHEAD_SIZE) 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_XA_TAIL (CD_EDC_SIZE+CD_ECC_SIZE) 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_XA_SYNC_HEAD (CD_SYNC_SIZE+CD_XA_HEAD) 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_LBA 0x01 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_MSF 0x02 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_DATA_TRACK 0x04 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_LEADOUT 0xAA 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_AUDIO_INVALID 0x00 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_AUDIO_PLAY 0x11 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_AUDIO_PAUSED 0x12 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_AUDIO_COMPLETED 0x13 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_AUDIO_ERROR 0x14 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDROM_AUDIO_NO_STATUS 0x15 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_CLOSE_TRAY 0x1 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_OPEN_TRAY 0x2 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_LOCK 0x4 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_SELECT_SPEED 0x8 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_SELECT_DISC 0x10 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_MULTI_SESSION 0x20 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_MCN 0x40 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_MEDIA_CHANGED 0x80 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_PLAY_AUDIO 0x100 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_RESET 0x200 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_DRIVE_STATUS 0x800 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_GENERIC_PACKET 0x1000 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_CD_R 0x2000 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_CD_RW 0x4000 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_DVD 0x8000 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_DVD_R 0x10000 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_DVD_RAM 0x20000 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_MO_DRIVE 0x40000 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_MRW 0x80000 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_MRW_W 0x100000 25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDC_RAM 0x200000 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDS_NO_INFO 0 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDS_NO_DISC 1 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDS_TRAY_OPEN 2 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDS_DRIVE_NOT_READY 3 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDS_DISC_OK 4 25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDS_AUDIO 100 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDS_DATA_1 101 26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDS_DATA_2 102 26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDS_XA_2_1 103 26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDS_XA_2_2 104 26511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDS_MIXED 105 26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDO_AUTO_CLOSE 0x1 26811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDO_AUTO_EJECT 0x2 26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDO_USE_FFLAGS 0x4 27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDO_LOCK 0x8 27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDO_CHECK_TYPE 0x10 27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDSL_NONE ((int) (~0U>>1)-1) 27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDSL_CURRENT ((int) (~0U>>1)) 27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_PART_MAX 64 27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CD_PART_MASK (CD_PART_MAX - 1) 27811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_BLANK 0xa1 28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_CLOSE_TRACK 0x5b 28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_FLUSH_CACHE 0x35 28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_FORMAT_UNIT 0x04 28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_GET_CONFIGURATION 0x46 28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_GET_EVENT_STATUS_NOTIFICATION 0x4a 28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_GET_PERFORMANCE 0xac 28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_INQUIRY 0x12 28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_LOAD_UNLOAD 0xa6 28811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_MECHANISM_STATUS 0xbd 28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_MODE_SELECT_10 0x55 29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_MODE_SENSE_10 0x5a 29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_PAUSE_RESUME 0x4b 29211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_PLAY_AUDIO_10 0x45 29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_PLAY_AUDIO_MSF 0x47 29411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_PLAY_AUDIO_TI 0x48 29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_PLAY_CD 0xbc 29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL 0x1e 29711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_READ_10 0x28 29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_READ_12 0xa8 29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_READ_BUFFER_CAPACITY 0x5c 30011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_READ_CDVD_CAPACITY 0x25 30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_READ_CD 0xbe 30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_READ_CD_MSF 0xb9 30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_READ_DISC_INFO 0x51 30411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_READ_DVD_STRUCTURE 0xad 30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_READ_FORMAT_CAPACITIES 0x23 30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_READ_HEADER 0x44 30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_READ_TRACK_RZONE_INFO 0x52 30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_READ_SUBCHANNEL 0x42 30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_READ_TOC_PMA_ATIP 0x43 31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_REPAIR_RZONE_TRACK 0x58 31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_REPORT_KEY 0xa4 31211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_REQUEST_SENSE 0x03 31311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_RESERVE_RZONE_TRACK 0x53 31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_SEND_CUE_SHEET 0x5d 31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_SCAN 0xba 31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_SEEK 0x2b 31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_SEND_DVD_STRUCTURE 0xbf 31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_SEND_EVENT 0xa2 31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_SEND_KEY 0xa3 32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_SEND_OPC 0x54 32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_SET_READ_AHEAD 0xa7 32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_SET_STREAMING 0xb6 32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_START_STOP_UNIT 0x1b 32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_STOP_PLAY_SCAN 0x4e 32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_TEST_UNIT_READY 0x00 32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_VERIFY_10 0x2f 32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_WRITE_10 0x2a 32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_WRITE_AND_VERIFY_10 0x2e 32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_SET_SPEED 0xbb 33111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_PLAYAUDIO_TI 0x48 33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPCMD_GET_MEDIA_STATUS 0xda 33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPMODE_VENDOR_PAGE 0x00 33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPMODE_R_W_ERROR_PAGE 0x01 33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPMODE_WRITE_PARMS_PAGE 0x05 33911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPMODE_WCACHING_PAGE 0x08 34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPMODE_AUDIO_CTL_PAGE 0x0e 34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPMODE_POWER_PAGE 0x1a 34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPMODE_FAULT_FAIL_PAGE 0x1c 34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPMODE_TO_PROTECT_PAGE 0x1d 34411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPMODE_CAPABILITIES_PAGE 0x2a 34511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPMODE_ALL_PAGES 0x3f 34611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GPMODE_CDROM_PAGE 0x0d 34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 34911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_STRUCT_PHYSICAL 0x00 35011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_STRUCT_COPYRIGHT 0x01 35111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_STRUCT_DISCKEY 0x02 35211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_STRUCT_BCA 0x03 35311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_STRUCT_MANUFACT 0x04 35411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 35511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_layer { 35611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 book_version : 4; 35711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 book_type : 4; 35811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 min_rate : 4; 35911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 disc_size : 4; 36011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 layer_type : 4; 36111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 track_path : 1; 36211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 nlayers : 2; 36311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 track_density : 4; 36411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 linear_density : 4; 36511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bca : 1; 36611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 start_sector; 36711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 end_sector; 36811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 end_sector_l0; 36911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 37011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_LAYERS 4 37211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_physical { 37411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 37511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 layer_num; 37611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_layer layer[DVD_LAYERS]; 37711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 37811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_copyright { 38011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 38111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 layer_num; 38311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 cpst; 38411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 rmi; 38511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 38611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_disckey { 38811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 38911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 39011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned agid : 2; 39111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 value[2048]; 39211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 39311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 39411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_bca { 39511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 39611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 39711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int len; 39811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 value[188]; 39911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 40011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 40111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_manufact { 40211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 40311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 40411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 layer_num; 40511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int len; 40611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 value[2048]; 40711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 40811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 40911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef union { 41011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 41111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 41211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_physical physical; 41311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_copyright copyright; 41411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_disckey disckey; 41511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_bca bca; 41611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_manufact manufact; 41711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} dvd_struct; 41811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 41911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_LU_SEND_AGID 0 42011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_HOST_SEND_CHALLENGE 1 42111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_LU_SEND_KEY1 2 42211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_LU_SEND_CHALLENGE 3 42311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_HOST_SEND_KEY2 4 42411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 42511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_AUTH_ESTABLISHED 5 42611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_AUTH_FAILURE 6 42711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 42811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_LU_SEND_TITLE_KEY 7 42911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_LU_SEND_ASF 8 43011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_INVALIDATE_AGID 9 43111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_LU_SEND_RPC_STATE 10 43211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_HOST_SEND_RPC_STATE 11 43311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 43411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __u8 dvd_key[5]; 43511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef __u8 dvd_challenge[10]; 43611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 43711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_lu_send_agid { 43811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 43911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned agid : 2; 44011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 44111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 44211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_host_send_challenge { 44311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 44411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned agid : 2; 44511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 44611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert dvd_challenge chal; 44711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 44811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 44911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_send_key { 45011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 45111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned agid : 2; 45211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 45311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert dvd_key key; 45411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 45511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 45611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_lu_send_challenge { 45711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 45811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned agid : 2; 45911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 46011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert dvd_challenge chal; 46111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 46211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 46311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_CPM_NO_COPYRIGHT 0 46411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_CPM_COPYRIGHTED 1 46511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 46611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_CP_SEC_NONE 0 46711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_CP_SEC_EXIST 1 46811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 46911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_CGMS_UNRESTRICTED 0 47011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_CGMS_SINGLE 2 47111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define DVD_CGMS_RESTRICTED 3 47211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 47311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_lu_send_title_key { 47411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 47511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned agid : 2; 47611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 47711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert dvd_key title_key; 47811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int lba; 47911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned cpm : 1; 48011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned cp_sec : 1; 48111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned cgms : 2; 48211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 48311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 48411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_lu_send_asf { 48511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 48611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned agid : 2; 48711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 48811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned asf : 1; 48911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 49011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 49111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_host_send_rpcstate { 49211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 49311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 pdrc; 49411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 49511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 49611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct dvd_lu_send_rpcstate { 49711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type : 2; 49811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 vra : 3; 49911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 ucca : 3; 50011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 region_mask; 50111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 rpc_scheme; 50211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 50311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 50411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef union { 50511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 type; 50611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 50711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_lu_send_agid lsa; 50811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_host_send_challenge hsc; 50911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_send_key lsk; 51011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_lu_send_challenge lsc; 51111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_send_key hsk; 51211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_lu_send_title_key lstk; 51311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_lu_send_asf lsasf; 51411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_host_send_rpcstate hrpcs; 51511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct dvd_lu_send_rpcstate lrpcs; 51611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} dvd_authinfo; 51711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 51811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct request_sense { 51911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __BIG_ENDIAN_BITFIELD 52011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 valid : 1; 52111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 error_code : 7; 52211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif defined(__LITTLE_ENDIAN_BITFIELD) 52311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 error_code : 7; 52411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 valid : 1; 52511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 52611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 segment_number; 52711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __BIG_ENDIAN_BITFIELD 52811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved1 : 2; 52911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 ili : 1; 53011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved2 : 1; 53111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 sense_key : 4; 53211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif defined(__LITTLE_ENDIAN_BITFIELD) 53311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 sense_key : 4; 53411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved2 : 1; 53511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 ili : 1; 53611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved1 : 2; 53711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 53811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 information[4]; 53911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 add_sense_len; 54011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 command_info[4]; 54111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 asc; 54211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 ascq; 54311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 fruc; 54411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 sks[3]; 54511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 asb[46]; 54611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 54711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 54811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDF_RWRT 0x0020 54911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDF_HWDM 0x0024 55011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDF_MRW 0x0028 55111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 55211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDM_MRW_NOTMRW 0 55311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDM_MRW_BGFORMAT_INACTIVE 1 55411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDM_MRW_BGFORMAT_ACTIVE 2 55511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define CDM_MRW_BGFORMAT_COMPLETE 3 55611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 55711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MRW_LBA_DMA 0 55811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MRW_LBA_GAA 1 55911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 56011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MRW_MODE_PC_PRE1 0x2c 56111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define MRW_MODE_PC 0x03 56211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 56311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct mrw_feature_desc { 56411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 feature_code; 56511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __BIG_ENDIAN_BITFIELD 56611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved1 : 2; 56711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 feature_version : 4; 56811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 persistent : 1; 56911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 curr : 1; 57011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif defined(__LITTLE_ENDIAN_BITFIELD) 57111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 curr : 1; 57211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 persistent : 1; 57311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 feature_version : 4; 57411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved1 : 2; 57511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 57611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 add_len; 57711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __BIG_ENDIAN_BITFIELD 57811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved2 : 7; 57911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 write : 1; 58011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif defined(__LITTLE_ENDIAN_BITFIELD) 58111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 write : 1; 58211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved2 : 7; 58311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 58411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved3; 58511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved4; 58611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved5; 58711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 58811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 58911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct rwrt_feature_desc { 59011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 feature_code; 59111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __BIG_ENDIAN_BITFIELD 59211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved1 : 2; 59311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 feature_version : 4; 59411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 persistent : 1; 59511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 curr : 1; 59611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif defined(__LITTLE_ENDIAN_BITFIELD) 59711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 curr : 1; 59811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 persistent : 1; 59911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 feature_version : 4; 60011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved1 : 2; 60111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 60211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 add_len; 60311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 last_lba; 60411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 block_size; 60511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 blocking; 60611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __BIG_ENDIAN_BITFIELD 60711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved2 : 7; 60811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 page_present : 1; 60911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif defined(__LITTLE_ENDIAN_BITFIELD) 61011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 page_present : 1; 61111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved2 : 7; 61211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 61311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved3; 61411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 61511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 61611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct { 61711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 disc_information_length; 61811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __BIG_ENDIAN_BITFIELD 61911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved1 : 3; 62011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 erasable : 1; 62111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 border_status : 2; 62211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 disc_status : 2; 62311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif defined(__LITTLE_ENDIAN_BITFIELD) 62411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 disc_status : 2; 62511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 border_status : 2; 62611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 erasable : 1; 62711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved1 : 3; 62811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 62911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#error "Please fix <asm/byteorder.h>" 63011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 63111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 n_first_track; 63211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 n_sessions_lsb; 63311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 first_track_lsb; 63411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 last_track_lsb; 63511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __BIG_ENDIAN_BITFIELD 63611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 did_v : 1; 63711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dbc_v : 1; 63811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 uru : 1; 63911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved2 : 2; 64011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dbit : 1; 64111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 mrw_status : 2; 64211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif defined(__LITTLE_ENDIAN_BITFIELD) 64311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 mrw_status : 2; 64411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dbit : 1; 64511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved2 : 2; 64611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 uru : 1; 64711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 dbc_v : 1; 64811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 did_v : 1; 64911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 65011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 disc_type; 65111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 n_sessions_msb; 65211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 first_track_msb; 65311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 last_track_msb; 65411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 disc_id; 65511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 lead_in; 65611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 lead_out; 65711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 disc_bar_code[8]; 65811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved3; 65911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 n_opc; 66011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} disc_information; 66111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 66211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef struct { 66311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 track_information_length; 66411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 track_lsb; 66511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 session_lsb; 66611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved1; 66711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __BIG_ENDIAN_BITFIELD 66811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved2 : 2; 66911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 damage : 1; 67011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 copy : 1; 67111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 track_mode : 4; 67211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 rt : 1; 67311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 blank : 1; 67411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 packet : 1; 67511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 fp : 1; 67611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 data_mode : 4; 67711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved3 : 6; 67811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 lra_v : 1; 67911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 nwa_v : 1; 68011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#elif defined(__LITTLE_ENDIAN_BITFIELD) 68111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 track_mode : 4; 68211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 copy : 1; 68311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 damage : 1; 68411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved2 : 2; 68511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 data_mode : 4; 68611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 fp : 1; 68711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 packet : 1; 68811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 blank : 1; 68911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 rt : 1; 69011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 nwa_v : 1; 69111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 lra_v : 1; 69211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved3 : 6; 69311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 69411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 track_start; 69511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 next_writable; 69611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 free_blocks; 69711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 fixed_packet_size; 69811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 track_size; 69911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 last_rec_address; 70011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} track_information; 70111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 70211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct feature_header { 70311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 data_len; 70411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved1; 70511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved2; 70611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 curr_profile; 70711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 70811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 70911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct mode_page_header { 71011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 mode_data_length; 71111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 medium_type; 71211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved1; 71311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved2; 71411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 reserved3; 71511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 desc_length; 71611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 71711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 71811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 719