Commit 81fed994 authored by Martin Dalecki's avatar Martin Dalecki Committed by Linus Torvalds

[PATCH] IDE 104

 - Make the bit-sliced data types in hdreg.h use the bit-slice data types
   instead of the generic ones. This makes clear that those are supposed
   to be register masks.
parent d655a4ee
...@@ -261,17 +261,17 @@ struct hd_drive_task_hdr { ...@@ -261,17 +261,17 @@ struct hd_drive_task_hdr {
#define SECURITY_DISABLE_PASSWORD 0xBF #define SECURITY_DISABLE_PASSWORD 0xBF
struct hd_geometry { struct hd_geometry {
unsigned char heads; u8 heads;
unsigned char sectors; u8 sectors;
unsigned short cylinders; u16 cylinders;
unsigned long start; unsigned long start;
}; };
/* BIG GEOMETRY - dying, used only by HDIO_GETGEO_BIG_RAW */ /* BIG GEOMETRY - dying, used only by HDIO_GETGEO_BIG_RAW */
struct hd_big_geometry { struct hd_big_geometry {
unsigned char heads; u8 heads;
unsigned char sectors; u8 sectors;
unsigned int cylinders; u32 cylinders;
unsigned long start; unsigned long start;
}; };
...@@ -326,249 +326,243 @@ enum { ...@@ -326,249 +326,243 @@ enum {
* ide/probe.c. * ide/probe.c.
*/ */
struct hd_driveid { struct hd_driveid {
unsigned short config; /* lots of obsolete bit flags */ u16 config; /* lots of obsolete bit flags */
unsigned short cyls; /* Obsolete, "physical" cyls */ u16 cyls; /* Obsolete, "physical" cyls */
unsigned short reserved2; /* reserved (word 2) */ u16 reserved2; /* reserved (word 2) */
unsigned short heads; /* Obsolete, "physical" heads */ u16 heads; /* Obsolete, "physical" heads */
unsigned short track_bytes; /* unformatted bytes per track */ u16 track_bytes; /* unformatted bytes per track */
unsigned short sector_bytes; /* unformatted bytes per sector */ u16 sector_bytes; /* unformatted bytes per sector */
unsigned short sectors; /* Obsolete, "physical" sectors per track */ u16 sectors; /* Obsolete, "physical" sectors per track */
unsigned short vendor0; /* vendor unique */ u16 vendor0; /* vendor unique */
unsigned short vendor1; /* vendor unique */ u16 vendor1; /* vendor unique */
unsigned short vendor2; /* Retired vendor unique */ u16 vendor2; /* Retired vendor unique */
unsigned char serial_no[20]; /* 0 = not_specified */ u8 serial_no[20]; /* 0 = not_specified */
unsigned short buf_type; /* Retired */ u16 buf_type; /* Retired */
unsigned short buf_size; /* Retired, 512 byte increments u16 buf_size; /* Retired, 512 byte increments
* 0 = not_specified * 0 = not_specified
*/ */
unsigned short ecc_bytes; /* for r/w long cmds; 0 = not_specified */ u16 ecc_bytes; /* for r/w long cmds; 0 = not_specified */
unsigned char fw_rev[8]; /* 0 = not_specified */ u8 fw_rev[8]; /* 0 = not_specified */
unsigned char model[40]; /* 0 = not_specified */ char model[40]; /* 0 = not_specified */
unsigned char max_multsect; /* 0=not_implemented */ u8 max_multsect; /* 0=not_implemented */
unsigned char vendor3; /* vendor unique */ u8 vendor3; /* vendor unique */
unsigned short dword_io; /* 0=not_implemented; 1=implemented */ u16 dword_io; /* 0=not_implemented; 1=implemented */
unsigned char vendor4; /* vendor unique */ u8 vendor4; /* vendor unique */
unsigned char capability; /* (upper byte of word 49) u8 capability; /* (upper byte of word 49)
* 3: IORDYsup * 3: IORDYsup
* 2: IORDYsw * 2: IORDYsw
* 1: LBA * 1: LBA
* 0: DMA * 0: DMA
*/ */
unsigned short reserved50; /* reserved (word 50) */ u16 reserved50; /* reserved (word 50) */
unsigned char vendor5; /* Obsolete, vendor unique */ u8 vendor5; /* Obsolete, vendor unique */
unsigned char tPIO; /* Obsolete, 0=slow, 1=medium, 2=fast */ u8 tPIO; /* Obsolete, 0=slow, 1=medium, 2=fast */
unsigned char vendor6; /* Obsolete, vendor unique */ u8 vendor6; /* Obsolete, vendor unique */
unsigned char tDMA; /* Obsolete, 0=slow, 1=medium, 2=fast */ u8 tDMA; /* Obsolete, 0=slow, 1=medium, 2=fast */
unsigned short field_valid; /* (word 53) u16 field_valid; /* (word 53)
* 2: ultra_ok word 88 * 2: ultra_ok word 88
* 1: eide_ok words 64-70 * 1: eide_ok words 64-70
* 0: cur_ok words 54-58 * 0: cur_ok words 54-58
*/ */
unsigned short cur_cyls; /* Obsolete, logical cylinders */ u16 cur_cyls; /* Obsolete, logical cylinders */
unsigned short cur_heads; /* Obsolete, l heads */ u16 cur_heads; /* Obsolete, l heads */
unsigned short cur_sectors; /* Obsolete, l sectors per track */ u16 cur_sectors; /* Obsolete, l sectors per track */
unsigned short cur_capacity0; /* Obsolete, l total sectors on drive */ u16 cur_capacity0; /* Obsolete, l total sectors on drive */
unsigned short cur_capacity1; /* Obsolete, (2 words, misaligned int) */ u16 cur_capacity1; /* Obsolete, (2 words, misaligned int) */
unsigned char multsect; /* current multiple sector count */ u8 multsect; /* current multiple sector count */
unsigned char multsect_valid; /* when (bit0==1) multsect is ok */ u8 multsect_valid; /* when (bit0==1) multsect is ok */
unsigned int lba_capacity; /* Obsolete, total number of sectors */ u32 lba_capacity; /* Obsolete, total number of sectors */
unsigned short dma_1word; /* Obsolete, single-word dma info */ u16 dma_1word; /* Obsolete, single-word dma info */
unsigned short dma_mword; /* multiple-word dma info */ u16 dma_mword; /* multiple-word dma info */
unsigned short eide_pio_modes; /* bits 0:mode3 1:mode4 */ u16 eide_pio_modes; /* bits 0:mode3 1:mode4 */
unsigned short eide_dma_min; /* min mword dma cycle time (ns) */ u16 eide_dma_min; /* min mword dma cycle time (ns) */
unsigned short eide_dma_time; /* recommended mword dma cycle time (ns) */ u16 eide_dma_time; /* recommended mword dma cycle time (ns) */
unsigned short eide_pio; /* min cycle time (ns), no IORDY */ u16 eide_pio; /* min cycle time (ns), no IORDY */
unsigned short eide_pio_iordy; /* min cycle time (ns), with IORDY */ u16 eide_pio_iordy; /* min cycle time (ns), with IORDY */
unsigned short words69_70[2]; /* reserved words 69-70 u16 words69_70[2]; /* reserved words 69-70
* future command overlap and queuing * future command overlap and queuing
*/ */
/* HDIO_GET_IDENTITY currently returns only words 0 through 70 */ /* HDIO_GET_IDENTITY currently returns only words 0 through 70 */
unsigned short words71_74[4]; /* reserved words 71-74 u16 words71_74[4]; /* reserved words 71-74
* for IDENTIFY PACKET DEVICE command * for IDENTIFY PACKET DEVICE command
*/ */
unsigned short queue_depth; /* (word 75) u16 queue_depth; /* (word 75)
* 15:5 reserved * 15:5 reserved
* 4:0 Maximum queue depth -1 * 4:0 Maximum queue depth -1
*/ */
unsigned short words76_79[4]; /* reserved words 76-79 */ u16 words76_79[4]; /* reserved words 76-79 */
unsigned short major_rev_num; /* (word 80) */ u16 major_rev_num; /* (word 80) */
unsigned short minor_rev_num; /* (word 81) */ u16 minor_rev_num; /* (word 81) */
unsigned short command_set_1; /* (word 82) supported u16 command_set_1; /* (word 82) supported
* 15: Obsolete * 15: Obsolete
* 14: NOP command * 14: NOP command
* 13: READ_BUFFER * 13: READ_BUFFER
* 12: WRITE_BUFFER * 12: WRITE_BUFFER
* 11: Obsolete * 11: Obsolete
* 10: Host Protected Area * 10: Host Protected Area
* 9: DEVICE Reset * 9: DEVICE Reset
* 8: SERVICE Interrupt * 8: SERVICE Interrupt
* 7: Release Interrupt * 7: Release Interrupt
* 6: look-ahead * 6: look-ahead
* 5: write cache * 5: write cache
* 4: PACKET Command * 4: PACKET Command
* 3: Power Management Feature Set * 3: Power Management Feature Set
* 2: Removable Feature Set * 2: Removable Feature Set
* 1: Security Feature Set * 1: Security Feature Set
* 0: SMART Feature Set * 0: SMART Feature Set
*/ */
unsigned short command_set_2; /* (word 83) u16 command_set_2; /* (word 83)
* 15: Shall be ZERO * 15: Shall be ZERO
* 14: Shall be ONE * 14: Shall be ONE
* 13: FLUSH CACHE EXT * 13: FLUSH CACHE EXT
* 12: FLUSH CACHE * 12: FLUSH CACHE
* 11: Device Configuration Overlay * 11: Device Configuration Overlay
* 10: 48-bit Address Feature Set * 10: 48-bit Address Feature Set
* 9: Automatic Acoustic Management * 9: Automatic Acoustic Management
* 8: SET MAX security * 8: SET MAX security
* 7: reserved 1407DT PARTIES * 7: reserved 1407DT PARTIES
* 6: SetF sub-command Power-Up * 6: SetF sub-command Power-Up
* 5: Power-Up in Standby Feature Set * 5: Power-Up in Standby Feature Set
* 4: Removable Media Notification * 4: Removable Media Notification
* 3: APM Feature Set * 3: APM Feature Set
* 2: CFA Feature Set * 2: CFA Feature Set
* 1: READ/WRITE DMA QUEUED * 1: READ/WRITE DMA QUEUED
* 0: Download MicroCode * 0: Download MicroCode
*/ */
unsigned short cfsse; /* (word 84) u16 cfsse; /* (word 84)
* cmd set-feature supported extensions * cmd set-feature supported extensions
* 15: Shall be ZERO * 15: Shall be ZERO
* 14: Shall be ONE * 14: Shall be ONE
* 13:3 reserved * 13:3 reserved
* 2: Media Serial Number Valid * 2: Media Serial Number Valid
* 1: SMART selt-test supported * 1: SMART selt-test supported
* 0: SMART error logging * 0: SMART error logging
*/ */
unsigned short cfs_enable_1; /* (word 85) u16 cfs_enable_1; /* (word 85)
* command set-feature enabled * command set-feature enabled
* 15: Obsolete * 15: Obsolete
* 14: NOP command * 14: NOP command
* 13: READ_BUFFER * 13: READ_BUFFER
* 12: WRITE_BUFFER * 12: WRITE_BUFFER
* 11: Obsolete * 11: Obsolete
* 10: Host Protected Area * 10: Host Protected Area
* 9: DEVICE Reset * 9: DEVICE Reset
* 8: SERVICE Interrupt * 8: SERVICE Interrupt
* 7: Release Interrupt * 7: Release Interrupt
* 6: look-ahead * 6: look-ahead
* 5: write cache * 5: write cache
* 4: PACKET Command * 4: PACKET Command
* 3: Power Management Feature Set * 3: Power Management Feature Set
* 2: Removable Feature Set * 2: Removable Feature Set
* 1: Security Feature Set * 1: Security Feature Set
* 0: SMART Feature Set * 0: SMART Feature Set
*/ */
unsigned short cfs_enable_2; /* (word 86) u16 cfs_enable_2; /* (word 86)
* command set-feature enabled * command set-feature enabled
* 15: Shall be ZERO * 15: Shall be ZERO
* 14: Shall be ONE * 14: Shall be ONE
* 13: FLUSH CACHE EXT * 13: FLUSH CACHE EXT
* 12: FLUSH CACHE * 12: FLUSH CACHE
* 11: Device Configuration Overlay * 11: Device Configuration Overlay
* 10: 48-bit Address Feature Set * 10: 48-bit Address Feature Set
* 9: Automatic Acoustic Management * 9: Automatic Acoustic Management
* 8: SET MAX security * 8: SET MAX security
* 7: reserved 1407DT PARTIES * 7: reserved 1407DT PARTIES
* 6: SetF sub-command Power-Up * 6: SetF sub-command Power-Up
* 5: Power-Up in Standby Feature Set * 5: Power-Up in Standby Feature Set
* 4: Removable Media Notification * 4: Removable Media Notification
* 3: APM Feature Set * 3: APM Feature Set
* 2: CFA Feature Set * 2: CFA Feature Set
* 1: READ/WRITE DMA QUEUED * 1: READ/WRITE DMA QUEUED
* 0: Download MicroCode * 0: Download MicroCode
*/ */
unsigned short csf_default; /* (word 87) u16 csf_default; /* (word 87)
* command set-feature default * command set-feature default
* 15: Shall be ZERO * 15: Shall be ZERO
* 14: Shall be ONE * 14: Shall be ONE
* 13:3 reserved * 13:3 reserved
* 2: Media Serial Number Valid * 2: Media Serial Number Valid
* 1: SMART selt-test supported * 1: SMART selt-test supported
* 0: SMART error logging * 0: SMART error logging
*/ */
unsigned short dma_ultra; /* (word 88) */ u16 dma_ultra; /* (word 88) */
unsigned short word89; /* reserved (word 89) */ u16 word89; /* reserved (word 89) */
unsigned short word90; /* reserved (word 90) */ u16 word90; /* reserved (word 90) */
unsigned short CurAPMvalues; /* current APM values */ u16 CurAPMvalues; /* current APM values */
unsigned short word92; /* reserved (word 92) */ u16 word92; /* reserved (word 92) */
unsigned short hw_config; /* hardware config (word 93) u16 hw_config; /* hardware config (word 93)
* 15: * 15:
* 14: * 14:
* 13: * 13:
* 12: * 12:
* 11: * 11:
* 10: * 10:
* 9: * 9:
* 8: * 8:
* 7: * 7:
* 6: * 6:
* 5: * 5:
* 4: * 4:
* 3: * 3:
* 2: * 2:
* 1: * 1:
* 0: * 0:
*/ */
unsigned short acoustic; /* (word 94) u16 acoustic; /* (word 94)
* 15:8 Vendor's recommended value * 15:8 Vendor's recommended value
* 7:0 current value * 7:0 current value
*/ */
unsigned short words95_99[5]; /* reserved words 95-99 */ u16 words95_99[5]; /* reserved words 95-99 */
unsigned long long lba_capacity_2;/* 48-bit total number of sectors */ u64 lba_capacity_2; /* 48-bit total number of sectors */
unsigned short words104_125[22];/* reserved words 104-125 */ u16 words104_125[22];/* reserved words 104-125 */
unsigned short last_lun; /* (word 126) */ u16 last_lun; /* (word 126) */
unsigned short word127; /* (word 127) Feature Set u16 word127; /* (word 127) Feature Set
* Removable Media Notification * Removable Media Notification
* 15:2 reserved * 15:2 reserved
* 1:0 00 = not supported * 1:0 00 = not supported
* 01 = supported * 01 = supported
* 10 = reserved * 10 = reserved
* 11 = reserved * 11 = reserved
*/ */
unsigned short dlf; /* (word 128) u16 dlf; /* (word 128)
* device lock function * device lock function
* 15:9 reserved * 15:9 reserved
* 8 security level 1:max 0:high * 8 security level 1:max 0:high
* 7:6 reserved * 7:6 reserved
* 5 enhanced erase * 5 enhanced erase
* 4 expire * 4 expire
* 3 frozen * 3 frozen
* 2 locked * 2 locked
* 1 en/disabled * 1 en/disabled
* 0 capability * 0 capability
*/ */
unsigned short csfo; /* (word 129) u16 csfo; /* (word 129)
* current set features options * current set features options
* 15:4 reserved * 15:4 reserved
* 3: auto reassign * 3: auto reassign
* 2: reverting * 2: reverting
* 1: read-look-ahead * 1: read-look-ahead
* 0: write cache * 0: write cache
*/ */
unsigned short words130_155[26];/* reserved vendor words 130-155 */ u16 words130_155[26];/* reserved vendor words 130-155 */
unsigned short word156; /* reserved vendor word 156 */ u16 word156; /* reserved vendor word 156 */
unsigned short words157_159[3];/* reserved vendor words 157-159 */ u16 words157_159[3];/* reserved vendor words 157-159 */
unsigned short cfa_power; /* (word 160) CFA Power Mode u16 cfa_power; /* (word 160) CFA Power Mode
* 15 word 160 supported * 15 word 160 supported
* 14 reserved * 14 reserved
* 13 * 13
* 12 * 12
* 11:0 * 11:0
*/ */
unsigned short words161_175[14];/* Reserved for CFA */ u16 words161_175[14];/* Reserved for CFA */
unsigned short words176_205[31];/* Current Media Serial Number */ u16 words176_205[31];/* Current Media Serial Number */
unsigned short words206_254[48];/* reserved words 206-254 */ u16 words206_254[48];/* reserved words 206-254 */
unsigned short integrity_word; /* (word 255) u16 integrity_word; /* (word 255)
* 15:8 Checksum * 15:8 Checksum
* 7:0 Signature * 7:0 Signature
*/ */
} __attribute__((packed)); } __attribute__((packed));
/*
* 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_DSC_OVERLAP (0) /* per the DSC overlap protocol */
#define IDE_NICE_ATAPI_OVERLAP (1) /* not supported yet */
#endif /* _LINUX_HDREG_H */ #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment