⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdrom.h

📁 自己做的交叉编译工具!gcc-3.4.5,glibc-2.3.6在ubuntu8.04上做的面向kernel-2.6.28的交叉编译工具
💻 H
📖 第 1 页 / 共 2 页
字号:
#define GPCMD_READ_CD_MSF		    0xb9#define GPCMD_READ_DISC_INFO		    0x51#define GPCMD_READ_DVD_STRUCTURE	    0xad#define GPCMD_READ_FORMAT_CAPACITIES	    0x23#define GPCMD_READ_HEADER		    0x44#define GPCMD_READ_TRACK_RZONE_INFO	    0x52#define GPCMD_READ_SUBCHANNEL		    0x42#define GPCMD_READ_TOC_PMA_ATIP		    0x43#define GPCMD_REPAIR_RZONE_TRACK	    0x58#define GPCMD_REPORT_KEY		    0xa4#define GPCMD_REQUEST_SENSE		    0x03#define GPCMD_RESERVE_RZONE_TRACK	    0x53#define GPCMD_SEND_CUE_SHEET		    0x5d#define GPCMD_SCAN			    0xba#define GPCMD_SEEK			    0x2b#define GPCMD_SEND_DVD_STRUCTURE	    0xbf#define GPCMD_SEND_EVENT		    0xa2#define GPCMD_SEND_KEY			    0xa3#define GPCMD_SEND_OPC			    0x54#define GPCMD_SET_READ_AHEAD		    0xa7#define GPCMD_SET_STREAMING		    0xb6#define GPCMD_START_STOP_UNIT		    0x1b#define GPCMD_STOP_PLAY_SCAN		    0x4e#define GPCMD_TEST_UNIT_READY		    0x00#define GPCMD_VERIFY_10			    0x2f#define GPCMD_WRITE_10			    0x2a#define GPCMD_WRITE_AND_VERIFY_10	    0x2e/* This is listed as optional in ATAPI 2.6, but is (curiously)  * missing from Mt. Fuji, Table 57.  It _is_ mentioned in Mt. Fuji * Table 377 as an MMC command for SCSi devices though...  Most ATAPI * drives support it. */#define GPCMD_SET_SPEED			    0xbb/* This seems to be a SCSI specific CD-ROM opcode  * to play data at track/index */#define GPCMD_PLAYAUDIO_TI		    0x48/* * From MS Media Status Notification Support Specification. For * older drives only. */#define GPCMD_GET_MEDIA_STATUS		    0xda/* Mode page codes for mode sense/set */#define GPMODE_VENDOR_PAGE		0x00#define GPMODE_R_W_ERROR_PAGE		0x01#define GPMODE_WRITE_PARMS_PAGE		0x05#define GPMODE_WCACHING_PAGE		0x08#define GPMODE_AUDIO_CTL_PAGE		0x0e#define GPMODE_POWER_PAGE		0x1a#define GPMODE_FAULT_FAIL_PAGE		0x1c#define GPMODE_TO_PROTECT_PAGE		0x1d#define GPMODE_CAPABILITIES_PAGE	0x2a#define GPMODE_ALL_PAGES		0x3f/* Not in Mt. Fuji, but in ATAPI 2.6 -- depricated now in favor * of MODE_SENSE_POWER_PAGE */#define GPMODE_CDROM_PAGE		0x0d/* DVD struct types */#define DVD_STRUCT_PHYSICAL	0x00#define DVD_STRUCT_COPYRIGHT	0x01#define DVD_STRUCT_DISCKEY	0x02#define DVD_STRUCT_BCA		0x03#define DVD_STRUCT_MANUFACT	0x04struct dvd_layer {	__u8 book_version	: 4;	__u8 book_type		: 4;	__u8 min_rate		: 4;	__u8 disc_size		: 4;	__u8 layer_type		: 4;	__u8 track_path		: 1;	__u8 nlayers		: 2;	__u8 track_density	: 4;	__u8 linear_density	: 4;	__u8 bca		: 1;	__u32 start_sector;	__u32 end_sector;	__u32 end_sector_l0;};#define DVD_LAYERS	4struct dvd_physical {	__u8 type;	__u8 layer_num;	struct dvd_layer layer[DVD_LAYERS];};struct dvd_copyright {	__u8 type;	__u8 layer_num;	__u8 cpst;	__u8 rmi;};struct dvd_disckey {	__u8 type;	unsigned agid		: 2;	__u8 value[2048];};struct dvd_bca {	__u8 type;	int len;	__u8 value[188];};struct dvd_manufact {	__u8 type;	__u8 layer_num;	int len;	__u8 value[2048];};typedef union {	__u8 type;	struct dvd_physical	physical;	struct dvd_copyright	copyright;	struct dvd_disckey	disckey;	struct dvd_bca		bca;	struct dvd_manufact	manufact;} dvd_struct;/* * DVD authentication ioctl *//* Authentication states */#define DVD_LU_SEND_AGID	0#define DVD_HOST_SEND_CHALLENGE	1#define DVD_LU_SEND_KEY1	2#define DVD_LU_SEND_CHALLENGE	3#define DVD_HOST_SEND_KEY2	4/* Termination states */#define DVD_AUTH_ESTABLISHED	5#define DVD_AUTH_FAILURE	6/* Other functions */#define DVD_LU_SEND_TITLE_KEY	7#define DVD_LU_SEND_ASF		8#define DVD_INVALIDATE_AGID	9#define DVD_LU_SEND_RPC_STATE	10#define DVD_HOST_SEND_RPC_STATE	11/* State data */typedef __u8 dvd_key[5];		/* 40-bit value, MSB is first elem. */typedef __u8 dvd_challenge[10];	/* 80-bit value, MSB is first elem. */struct dvd_lu_send_agid {	__u8 type;	unsigned agid		: 2;};struct dvd_host_send_challenge {	__u8 type;	unsigned agid		: 2;	dvd_challenge chal;};struct dvd_send_key {	__u8 type;	unsigned agid		: 2;	dvd_key key;};struct dvd_lu_send_challenge {	__u8 type;	unsigned agid		: 2;	dvd_challenge chal;};#define DVD_CPM_NO_COPYRIGHT	0#define DVD_CPM_COPYRIGHTED	1#define DVD_CP_SEC_NONE		0#define DVD_CP_SEC_EXIST	1#define DVD_CGMS_UNRESTRICTED	0#define DVD_CGMS_SINGLE		2#define DVD_CGMS_RESTRICTED	3struct dvd_lu_send_title_key {	__u8 type;	unsigned agid		: 2;	dvd_key title_key;	int lba;	unsigned cpm		: 1;	unsigned cp_sec		: 1;	unsigned cgms		: 2;};struct dvd_lu_send_asf {	__u8 type;	unsigned agid		: 2;	unsigned asf		: 1;};struct dvd_host_send_rpcstate {	__u8 type;	__u8 pdrc;};struct dvd_lu_send_rpcstate {	__u8 type		: 2;	__u8 vra		: 3;	__u8 ucca		: 3;	__u8 region_mask;	__u8 rpc_scheme;};typedef union {	__u8 type;	struct dvd_lu_send_agid		lsa;	struct dvd_host_send_challenge	hsc;	struct dvd_send_key		lsk;	struct dvd_lu_send_challenge	lsc;	struct dvd_send_key		hsk;	struct dvd_lu_send_title_key	lstk;	struct dvd_lu_send_asf		lsasf;	struct dvd_host_send_rpcstate	hrpcs;	struct dvd_lu_send_rpcstate	lrpcs;} dvd_authinfo;struct request_sense {#if defined(__BIG_ENDIAN)	__u8 valid		: 1;	__u8 error_code		: 7;#elif defined(__LITTLE_ENDIAN)	__u8 error_code		: 7;	__u8 valid		: 1;#endif	__u8 segment_number;#if defined(__BIG_ENDIAN)	__u8 reserved1		: 2;	__u8 ili		: 1;	__u8 reserved2		: 1;	__u8 sense_key		: 4;#elif defined(__LITTLE_ENDIAN)	__u8 sense_key		: 4;	__u8 reserved2		: 1;	__u8 ili		: 1;	__u8 reserved1		: 2;#endif	__u8 information[4];	__u8 add_sense_len;	__u8 command_info[4];	__u8 asc;	__u8 ascq;	__u8 fruc;	__u8 sks[3];	__u8 asb[46];};/* * feature profile */#define CDF_RWRT	0x0020	/* "Random Writable" */#define CDF_HWDM	0x0024	/* "Hardware Defect Management" */#define CDF_MRW 	0x0028/* * media status bits */#define CDM_MRW_NOTMRW			0#define CDM_MRW_BGFORMAT_INACTIVE	1#define CDM_MRW_BGFORMAT_ACTIVE		2#define CDM_MRW_BGFORMAT_COMPLETE	3/* * mrw address spaces */#define MRW_LBA_DMA			0#define MRW_LBA_GAA			1struct packet_command{	unsigned char 		cmd[CDROM_PACKET_SIZE];	unsigned char 		*buffer;	unsigned int 		buflen;	int			stat;	struct request_sense	*sense;	unsigned char		data_direction;	int			quiet;	int			timeout;	void			*reserved[1];};/* * mrw mode pages (first is deprecated) -- probed at init time and * cdi->mrw_mode_page is set */#define MRW_MODE_PC_PRE1		0x2c#define MRW_MODE_PC			0x03struct mrw_feature_desc {	__u16 feature_code;#if defined(__BIG_ENDIAN)	__u8 reserved1		: 2;	__u8 feature_version	: 4;	__u8 persistent		: 1;	__u8 curr		: 1;#elif defined(__LITTLE_ENDIAN)	__u8 curr		: 1;	__u8 persistent		: 1;	__u8 feature_version	: 4;	__u8 reserved1		: 2;#endif	__u8 add_len;#if defined(__BIG_ENDIAN)	__u8 reserved2		: 7;	__u8 write		: 1;#elif defined(__LITTLE_ENDIAN)	__u8 write		: 1;	__u8 reserved2		: 7;#endif	__u8 reserved3;	__u8 reserved4;	__u8 reserved5;};/* cf. mmc4r02g.pdf 5.3.10 Random Writable Feature (0020h) pg 197 of 635 */struct rwrt_feature_desc {	__u16 feature_code;#if defined(__BIG_ENDIAN_BITFIELD)	__u8 reserved1		: 2;	__u8 feature_version	: 4;	__u8 persistent		: 1;	__u8 curr		: 1;#elif defined(__LITTLE_ENDIAN_BITFIELD)	__u8 curr		: 1;	__u8 persistent		: 1;	__u8 feature_version	: 4;	__u8 reserved1		: 2;#endif	__u8 add_len;	__u32 last_lba;	__u32 block_size;	__u16 blocking;#if defined(__BIG_ENDIAN_BITFIELD)	__u8 reserved2		: 7;	__u8 page_present	: 1;#elif defined(__LITTLE_ENDIAN_BITFIELD)	__u8 page_present	: 1;	__u8 reserved2		: 7;#endif	__u8 reserved3;};typedef struct {	__u16 disc_information_length;#if defined(__BIG_ENDIAN)	__u8 reserved1			: 3;        __u8 erasable			: 1;        __u8 border_status		: 2;        __u8 disc_status		: 2;#elif defined(__LITTLE_ENDIAN)        __u8 disc_status		: 2;        __u8 border_status		: 2;        __u8 erasable			: 1;	__u8 reserved1			: 3;#endif	__u8 n_first_track;	__u8 n_sessions_lsb;	__u8 first_track_lsb;	__u8 last_track_lsb;#if defined(__BIG_ENDIAN)	__u8 did_v			: 1;        __u8 dbc_v			: 1;        __u8 uru			: 1;        __u8 reserved2			: 2;	__u8 dbit			: 1;	__u8 mrw_status			: 2;#elif defined(__LITTLE_ENDIAN)	__u8 mrw_status			: 2;	__u8 dbit			: 1;        __u8 reserved2			: 2;        __u8 uru			: 1;        __u8 dbc_v			: 1;	__u8 did_v			: 1;#endif	__u8 disc_type;	__u8 n_sessions_msb;	__u8 first_track_msb;	__u8 last_track_msb;	__u32 disc_id;	__u32 lead_in;	__u32 lead_out;	__u8 disc_bar_code[8];	__u8 reserved3;	__u8 n_opc;} disc_information;typedef struct {	__u16 track_information_length;	__u8 track_lsb;	__u8 session_lsb;	__u8 reserved1;#if defined(__BIG_ENDIAN)	__u8 reserved2			: 2;        __u8 damage			: 1;        __u8 copy			: 1;        __u8 track_mode			: 4;	__u8 rt				: 1;	__u8 blank			: 1;	__u8 packet			: 1;	__u8 fp				: 1;	__u8 data_mode			: 4;	__u8 reserved3			: 6;	__u8 lra_v			: 1;	__u8 nwa_v			: 1;#elif defined(__LITTLE_ENDIAN)        __u8 track_mode			: 4;        __u8 copy			: 1;        __u8 damage			: 1;	__u8 reserved2			: 2;	__u8 data_mode			: 4;	__u8 fp				: 1;	__u8 packet			: 1;	__u8 blank			: 1;	__u8 rt				: 1;	__u8 nwa_v			: 1;	__u8 lra_v			: 1;	__u8 reserved3			: 6;#endif	__u32 track_start;	__u32 next_writable;	__u32 free_blocks;	__u32 fixed_packet_size;	__u32 track_size;	__u32 last_rec_address;} track_information;struct feature_header {	__u32 data_len;	__u8 reserved1;	__u8 reserved2;	__u16 curr_profile;};struct mode_page_header {	__u16 mode_data_length;	__u8 medium_type;	__u8 reserved1;	__u8 reserved2;	__u8 reserved3;	__u16 desc_length;};#endif  /* _LINUX_CDROM_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -