📄 hdreg.h
字号:
unsigned char heads; unsigned char sectors; unsigned int cylinders; unsigned long start;};/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n */#define HDIO_GETGEO 0x0301 /* get device geometry */#define HDIO_GET_UNMASKINTR 0x0302 /* get current unmask setting */#define HDIO_GET_MULTCOUNT 0x0304 /* get current IDE blockmode setting */#define HDIO_GET_QDMA 0x0305 /* get use-qdma flag */#define HDIO_OBSOLETE_IDENTITY 0x0307 /* OBSOLETE, DO NOT USE: returns 142 bytes */#define HDIO_GET_KEEPSETTINGS 0x0308 /* get keep-settings-on-reset flag */#define HDIO_GET_32BIT 0x0309 /* get current io_32bit setting */#define HDIO_GET_NOWERR 0x030a /* get ignore-write-error flag */#define HDIO_GET_DMA 0x030b /* get use-dma flag */#define HDIO_GET_NICE 0x030c /* get nice flags */#define HDIO_GET_IDENTITY 0x030d /* get IDE identification info */#define HDIO_GET_WCACHE 0x030e /* get write cache mode on|off */#define HDIO_GET_ACOUSTIC 0x030f /* get acoustic value */#define HDIO_GET_ADDRESS 0x0310 /* */#define HDIO_GET_BUSSTATE 0x031a /* get the bus state of the hwif */#define HDIO_TRISTATE_HWIF 0x031b /* execute a channel tristate */#define HDIO_DRIVE_RESET 0x031c /* execute a device reset */#define HDIO_DRIVE_TASKFILE 0x031d /* execute raw taskfile */#define HDIO_DRIVE_TASK 0x031e /* execute task and special drive command */#define HDIO_DRIVE_CMD 0x031f /* execute a special drive command */#define HDIO_DRIVE_CMD_AEB HDIO_DRIVE_TASK/* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n */#define HDIO_SET_MULTCOUNT 0x0321 /* change IDE blockmode */#define HDIO_SET_UNMASKINTR 0x0322 /* permit other irqs during I/O */#define HDIO_SET_KEEPSETTINGS 0x0323 /* keep ioctl settings on reset */#define HDIO_SET_32BIT 0x0324 /* change io_32bit flags */#define HDIO_SET_NOWERR 0x0325 /* change ignore-write-error flag */#define HDIO_SET_DMA 0x0326 /* change use-dma flag */#define HDIO_SET_PIO_MODE 0x0327 /* reconfig interface to new speed */#define HDIO_SCAN_HWIF 0x0328 /* register and (re)scan interface */#define HDIO_SET_NICE 0x0329 /* set nice flags */#define HDIO_UNREGISTER_HWIF 0x032a /* unregister interface */#define HDIO_SET_WCACHE 0x032b /* change write cache enable-disable */#define HDIO_SET_ACOUSTIC 0x032c /* change acoustic behavior */#define HDIO_SET_BUSSTATE 0x032d /* set the bus state of the hwif */#define HDIO_SET_QDMA 0x032e /* change use-qdma flag */#define HDIO_SET_ADDRESS 0x032f /* change lba addressing modes *//* bus states */enum { BUSSTATE_OFF = 0, BUSSTATE_ON, BUSSTATE_TRISTATE};/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x033n/0x033n */#define HDIO_GETGEO_BIG 0x0330 /* */#define HDIO_GETGEO_BIG_RAW 0x0331 /* */#define __NEW_HD_DRIVE_ID/* structure returned by HDIO_GET_IDENTITY, * as per ANSI NCITS ATA6 rev.1b spec */struct hd_driveid { unsigned short config; /* lots of obsolete bit flags */ unsigned short cyls; /* Obsolete, "physical" cyls */ unsigned short reserved2; /* reserved (word 2) */ unsigned short heads; /* Obsolete, "physical" heads */ unsigned short track_bytes; /* unformatted bytes per track */ unsigned short sector_bytes; /* unformatted bytes per sector */ unsigned short sectors; /* Obsolete, "physical" sectors per track */ unsigned short vendor0; /* vendor unique */ unsigned short vendor1; /* vendor unique */ unsigned short vendor2; /* Retired vendor unique */ unsigned char serial_no[20]; /* 0 = not_specified */ unsigned short buf_type; /* Retired */ unsigned short buf_size; /* Retired, 512 byte increments * 0 = not_specified */ unsigned short ecc_bytes; /* for r/w long cmds; 0 = not_specified */ unsigned char fw_rev[8]; /* 0 = not_specified */ unsigned char model[40]; /* 0 = not_specified */ unsigned char max_multsect; /* 0=not_implemented */ unsigned char vendor3; /* vendor unique */ unsigned short dword_io; /* 0=not_implemented; 1=implemented */ unsigned char vendor4; /* vendor unique */ unsigned char capability; /* (upper byte of word 49) * 3: IORDYsup * 2: IORDYsw * 1: LBA * 0: DMA */ unsigned short reserved50; /* reserved (word 50) */ unsigned char vendor5; /* Obsolete, vendor unique */ unsigned char tPIO; /* Obsolete, 0=slow, 1=medium, 2=fast */ unsigned char vendor6; /* Obsolete, vendor unique */ unsigned char tDMA; /* Obsolete, 0=slow, 1=medium, 2=fast */ unsigned short field_valid; /* (word 53) * 2: ultra_ok word 88 * 1: eide_ok words 64-70 * 0: cur_ok words 54-58 */ unsigned short cur_cyls; /* Obsolete, logical cylinders */ unsigned short cur_heads; /* Obsolete, l heads */ unsigned short cur_sectors; /* Obsolete, l sectors per track */ unsigned short cur_capacity0; /* Obsolete, l total sectors on drive */ unsigned short cur_capacity1; /* Obsolete, (2 words, misaligned int) */ unsigned char multsect; /* current multiple sector count */ unsigned char multsect_valid; /* when (bit0==1) multsect is ok */ unsigned int lba_capacity; /* Obsolete, total number of sectors */ unsigned short dma_1word; /* Obsolete, single-word dma info */ unsigned short dma_mword; /* multiple-word dma info */ unsigned short eide_pio_modes; /* bits 0:mode3 1:mode4 */ unsigned short eide_dma_min; /* min mword dma cycle time (ns) */ unsigned short eide_dma_time; /* recommended mword dma cycle time (ns) */ unsigned short eide_pio; /* min cycle time (ns), no IORDY */ unsigned short eide_pio_iordy; /* min cycle time (ns), with IORDY */ unsigned short words69_70[2]; /* reserved words 69-70 * future command overlap and queuing */ /* HDIO_GET_IDENTITY currently returns only words 0 through 70 */ unsigned short words71_74[4]; /* reserved words 71-74 * for IDENTIFY PACKET DEVICE command */ unsigned short queue_depth; /* (word 75) * 15:5 reserved * 4:0 Maximum queue depth -1 */ unsigned short words76_79[4]; /* reserved words 76-79 */ unsigned short major_rev_num; /* (word 80) */ unsigned short minor_rev_num; /* (word 81) */ unsigned short command_set_1; /* (word 82) supported * 15: Obsolete * 14: NOP command * 13: READ_BUFFER * 12: WRITE_BUFFER * 11: Obsolete * 10: Host Protected Area * 9: DEVICE Reset * 8: SERVICE Interrupt * 7: Release Interrupt * 6: look-ahead * 5: write cache * 4: PACKET Command * 3: Power Management Feature Set * 2: Removable Feature Set * 1: Security Feature Set * 0: SMART Feature Set */ unsigned short command_set_2; /* (word 83) * 15: Shall be ZERO * 14: Shall be ONE * 13: FLUSH CACHE EXT * 12: FLUSH CACHE * 11: Device Configuration Overlay * 10: 48-bit Address Feature Set * 9: Automatic Acoustic Management * 8: SET MAX security * 7: reserved 1407DT PARTIES * 6: SetF sub-command Power-Up * 5: Power-Up in Standby Feature Set * 4: Removable Media Notification * 3: APM Feature Set * 2: CFA Feature Set * 1: READ/WRITE DMA QUEUED * 0: Download MicroCode */ unsigned short cfsse; /* (word 84) * cmd set-feature supported extensions * 15: Shall be ZERO * 14: Shall be ONE * 13:3 reserved * 2: Media Serial Number Valid * 1: SMART selt-test supported * 0: SMART error logging */ unsigned short cfs_enable_1; /* (word 85) * command set-feature enabled * 15: Obsolete * 14: NOP command * 13: READ_BUFFER * 12: WRITE_BUFFER * 11: Obsolete * 10: Host Protected Area * 9: DEVICE Reset * 8: SERVICE Interrupt * 7: Release Interrupt * 6: look-ahead * 5: write cache * 4: PACKET Command * 3: Power Management Feature Set * 2: Removable Feature Set * 1: Security Feature Set * 0: SMART Feature Set */ unsigned short cfs_enable_2; /* (word 86) * command set-feature enabled * 15: Shall be ZERO * 14: Shall be ONE * 13: FLUSH CACHE EXT * 12: FLUSH CACHE * 11: Device Configuration Overlay * 10: 48-bit Address Feature Set * 9: Automatic Acoustic Management * 8: SET MAX security * 7: reserved 1407DT PARTIES * 6: SetF sub-command Power-Up * 5: Power-Up in Standby Feature Set * 4: Removable Media Notification * 3: APM Feature Set * 2: CFA Feature Set * 1: READ/WRITE DMA QUEUED * 0: Download MicroCode */ unsigned short csf_default; /* (word 87) * command set-feature default * 15: Shall be ZERO * 14: Shall be ONE * 13:3 reserved * 2: Media Serial Number Valid * 1: SMART selt-test supported * 0: SMART error logging */ unsigned short dma_ultra; /* (word 88) */ unsigned short word89; /* reserved (word 89) */ unsigned short word90; /* reserved (word 90) */ unsigned short CurAPMvalues; /* current APM values */ unsigned short word92; /* reserved (word 92) */ unsigned short hw_config; /* hardware config (word 93) * 15: * 14: * 13: * 12: * 11: * 10: * 9: * 8: * 7: * 6: * 5: * 4: * 3: * 2: * 1: * 0: */ unsigned short acoustic; /* (word 94) * 15:8 Vendor's recommended value * 7:0 current value */ unsigned short words95_99[5]; /* reserved words 95-99 */#if 0 unsigned short words100_103[4] ;/* reserved words 100-103 */#else unsigned long long lba_capacity_2;/* 48-bit total number of sectors */#endif unsigned short words104_125[22];/* reserved words 104-125 */ unsigned short last_lun; /* (word 126) */ unsigned short word127; /* (word 127) Feature Set * Removable Media Notification * 15:2 reserved * 1:0 00 = not supported * 01 = supported * 10 = reserved * 11 = reserved */ unsigned short dlf; /* (word 128) * device lock function * 15:9 reserved * 8 security level 1:max 0:high * 7:6 reserved * 5 enhanced erase * 4 expire * 3 frozen * 2 locked * 1 en/disabled * 0 capability */ unsigned short csfo; /* (word 129) * current set features options * 15:4 reserved * 3: auto reassign * 2: reverting * 1: read-look-ahead * 0: write cache */ unsigned short words130_155[26];/* reserved vendor words 130-155 */ unsigned short word156; /* reserved vendor word 156 */ unsigned short words157_159[3];/* reserved vendor words 157-159 */ unsigned short cfa_power; /* (word 160) CFA Power Mode * 15 word 160 supported * 14 reserved * 13 * 12 * 11:0 */ unsigned short words161_175[14];/* Reserved for CFA */ unsigned short words176_205[31];/* Current Media Serial Number */ unsigned short words206_254[48];/* reserved words 206-254 */ unsigned short integrity_word; /* (word 255) * 15:8 Checksum * 7:0 Signature */};/* * IDE "nice" flags. These are used on a per drive basis to determine * when to be nice and give more bandwidth to the other devices which * share the same IDE bus. */#define IDE_NICE_DSC_OVERLAP (0) /* per the DSC overlap protocol */#define IDE_NICE_ATAPI_OVERLAP (1) /* not supported yet */#define IDE_NICE_0 (2) /* when sure that it won't affect us */#define IDE_NICE_1 (3) /* when probably won't affect us much */#define IDE_NICE_2 (4) /* when we know it's on our expense */#ifdef __KERNEL__/* * These routines are used for kernel command line parameters from main.c: */#include <linux/config.h>#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)int ide_register(int io_port, int ctl_port, int irq);void ide_unregister(unsigned int);#endif /* CONFIG_BLK_DEV_IDE || CONFIG_BLK_DEV_IDE_MODULE */#endif /* __KERNEL__ */#endif /* _LINUX_HDREG_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -