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

📄 atapi_ide_drive.h

📁 newos is new operation system
💻 H
字号:
#ifndef __ATAPI_IDE_DRIVE_H__#define	__ATAPI_IDE_DRIVE_H__#include "ide_drive.h"extern	ide_drive	atapi_ide_drive;struct atapi_msf {	uint8 reserved;	uint8 minute;	uint8 second;	uint8 frame;};#define MAX_TRACKS 99struct atapi_toc_header {/*	int    		last_session_lba;	int    		xa_flag;	unsigned 	capacity;*/	uint16 		toc_length;	uint8 		first_track;	uint8 		last_track;};struct atapi_toc_entry {	uint8 	reserved1;	uint8 	control : 4;	uint8 	adr     : 4;	uint8 	track;	uint8 	reserved2;	union 	{		unsigned lba;		struct atapi_msf msf;	} addr;};struct atapi_toc {	struct atapi_toc_header hdr;	struct atapi_toc_entry  ent[MAX_TRACKS+1];};struct mode_page_header {	uint16 mode_data_length;	uint8 medium_type;	uint8 reserved1;	uint8 reserved2;	uint8 reserved3;	uint16 desc_length;};typedef enum {	mechtype_caddy = 0,	mechtype_tray  = 1,	mechtype_popup = 2,	mechtype_individual_changer = 4,	mechtype_cartridge_changer  = 5} mechtype_t;struct atapi_capabilities_page {	struct mode_page_header header;	uint8 page_code           : 6;	uint8 reserved1           : 1;	uint8 parameters_saveable : 1;	uint8     page_length;	/* Drive supports read from CD-R discs (orange book, part II) */	uint8 cd_r_read           : 1; /* reserved in 1.2 */	/* Drive can read from CD-R/W (CD-E) discs (orange book, part III) */	uint8 cd_rw_read          : 1; /* reserved in 1.2 */	/* Drive supports reading CD-R discs with addressing method 2 */	uint8 method2             : 1;	/* Drive supports reading of DVD-ROM discs */	uint8 dvd_rom             : 1;	/* Drive supports reading of DVD-R discs */	uint8 dvd_r_read          : 1;	/* Drive supports reading of DVD-RAM discs */	uint8 dvd_ram_read        : 1;	uint8 reserved2		 : 2;	/* Drive can write to CD-R discs (orange book, part II) */	uint8 cd_r_write          : 1; /* reserved in 1.2 */	/* Drive can write to CD-R/W (CD-E) discs (orange book, part III) */	uint8 cd_rw_write	 : 1; /* reserved in 1.2 */	/* Drive can fake writes */	uint8 test_write          : 1;	uint8 reserved3a          : 1;	/* Drive can write DVD-R discs */	uint8 dvd_r_write         : 1;	/* Drive can write DVD-RAM discs */	uint8 dvd_ram_write       : 1;	uint8 reserved3           : 2;	/* Drive supports audio play operations. */	uint8 audio_play          : 1;	/* Drive can deliver a composite audio/video data stream. */	uint8 composite           : 1;	/* Drive supports digital output on port 1. */	uint8 digport1            : 1;	/* Drive supports digital output on port 2. */	uint8 digport2            : 1;	/* Drive can read mode 2, form 1 (XA) data. */	uint8 mode2_form1         : 1;	/* Drive can read mode 2, form 2 data. */	uint8 mode2_form2         : 1;	/* Drive can read multisession discs. */	uint8 multisession        : 1;	uint8 reserved4           : 1;	/* Drive can read Red Book audio data. */	uint8 cdda                : 1;	/* Drive can continue a read cdda operation from a loss of streaming.*/	uint8 cdda_accurate       : 1;	/* Subchannel reads can return combined R-W information. */	uint8 rw_supported        : 1;	/* R-W data will be returned deinterleaved and error corrected. */	uint8 rw_corr             : 1;	/* Drive supports C2 error pointers. */	uint8 c2_pointers         : 1;	/* Drive can return International Standard Recording Code info. */	uint8 isrc                : 1;	/* Drive can return Media Catalog Number (UPC) info. */	uint8 upc                 : 1;	uint8 reserved5           : 1;	/* Drive can lock the door. */	uint8 lock                : 1;	/* Present state of door lock. */	uint8 lock_state          : 1;	/* State of prevent/allow jumper. */	uint8 prevent_jumper      : 1;	/* Drive can eject a disc or changer cartridge. */	uint8 eject               : 1;	uint8 reserved6           : 1;	/* Drive mechanism types. */	mechtype_t mechtype	 : 3;	/* Audio level for each channel can be controlled independently. */	uint8 separate_volume     : 1;	/* Audio for each channel can be muted independently. */	uint8 separate_mute       : 1;	/* Changer can report exact contents of slots. */	uint8 disc_present        : 1;  /* reserved in 1.2 */	/* Drive supports software slot selection. */	uint8 sss                 : 1;  /* reserved in 1.2 */	uint8 reserved7           : 4;	/* Note: the following four fields are returned in big-endian form. */	/* Maximum speed (in kB/s). */	unsigned short maxspeed;	/* Number of discrete volume levels. */	unsigned short n_vol_levels;	/* Size of cache in drive, in kB. */	unsigned short buffer_size;	/* Current speed (in kB/s). */	unsigned short curspeed;	char pad[4];};#endif

⌨️ 快捷键说明

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