diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/hdreg.h | 66 |
1 files changed, 4 insertions, 62 deletions
diff --git a/include/linux/hdreg.h b/include/linux/hdreg.h index ed21bd3dbd25..29ee2873f4a8 100644 --- a/include/linux/hdreg.h +++ b/include/linux/hdreg.h | |||
| @@ -1,68 +1,6 @@ | |||
| 1 | #ifndef _LINUX_HDREG_H | 1 | #ifndef _LINUX_HDREG_H |
| 2 | #define _LINUX_HDREG_H | 2 | #define _LINUX_HDREG_H |
| 3 | 3 | ||
| 4 | #ifdef __KERNEL__ | ||
| 5 | #include <linux/ata.h> | ||
| 6 | |||
| 7 | /* | ||
| 8 | * This file contains some defines for the AT-hd-controller. | ||
| 9 | * Various sources. | ||
| 10 | */ | ||
| 11 | |||
| 12 | /* ide.c has its own port definitions in "ide.h" */ | ||
| 13 | |||
| 14 | #define HD_IRQ 14 | ||
| 15 | |||
| 16 | /* Hd controller regs. Ref: IBM AT Bios-listing */ | ||
| 17 | #define HD_DATA 0x1f0 /* _CTL when writing */ | ||
| 18 | #define HD_ERROR 0x1f1 /* see err-bits */ | ||
| 19 | #define HD_NSECTOR 0x1f2 /* nr of sectors to read/write */ | ||
| 20 | #define HD_SECTOR 0x1f3 /* starting sector */ | ||
| 21 | #define HD_LCYL 0x1f4 /* starting cylinder */ | ||
| 22 | #define HD_HCYL 0x1f5 /* high byte of starting cyl */ | ||
| 23 | #define HD_CURRENT 0x1f6 /* 101dhhhh , d=drive, hhhh=head */ | ||
| 24 | #define HD_STATUS 0x1f7 /* see status-bits */ | ||
| 25 | #define HD_FEATURE HD_ERROR /* same io address, read=error, write=feature */ | ||
| 26 | #define HD_PRECOMP HD_FEATURE /* obsolete use of this port - predates IDE */ | ||
| 27 | #define HD_COMMAND HD_STATUS /* same io address, read=status, write=cmd */ | ||
| 28 | |||
| 29 | #define HD_CMD 0x3f6 /* used for resets */ | ||
| 30 | #define HD_ALTSTATUS 0x3f6 /* same as HD_STATUS but doesn't clear irq */ | ||
| 31 | |||
| 32 | /* remainder is shared between hd.c, ide.c, ide-cd.c, and the hdparm utility */ | ||
| 33 | |||
| 34 | /* Bits of HD_STATUS */ | ||
| 35 | #define ERR_STAT 0x01 | ||
| 36 | #define INDEX_STAT 0x02 | ||
| 37 | #define ECC_STAT 0x04 /* Corrected error */ | ||
| 38 | #define DRQ_STAT 0x08 | ||
| 39 | #define SEEK_STAT 0x10 | ||
| 40 | #define SRV_STAT 0x10 | ||
| 41 | #define WRERR_STAT 0x20 | ||
| 42 | #define READY_STAT 0x40 | ||
| 43 | #define BUSY_STAT 0x80 | ||
| 44 | |||
| 45 | /* Bits for HD_ERROR */ | ||
| 46 | #define MARK_ERR 0x01 /* Bad address mark */ | ||
| 47 | #define ILI_ERR 0x01 /* Illegal Length Indication (ATAPI) */ | ||
| 48 | #define TRK0_ERR 0x02 /* couldn't find track 0 */ | ||
| 49 | #define EOM_ERR 0x02 /* End Of Media (ATAPI) */ | ||
| 50 | #define ABRT_ERR 0x04 /* Command aborted */ | ||
| 51 | #define MCR_ERR 0x08 /* media change request */ | ||
| 52 | #define ID_ERR 0x10 /* ID field not found */ | ||
| 53 | #define MC_ERR 0x20 /* media changed */ | ||
| 54 | #define ECC_ERR 0x40 /* Uncorrectable ECC error */ | ||
| 55 | #define BBD_ERR 0x80 /* pre-EIDE meaning: block marked bad */ | ||
| 56 | #define ICRC_ERR 0x80 /* new meaning: CRC error during transfer */ | ||
| 57 | #define LFS_ERR 0xf0 /* Last Failed Sense (ATAPI) */ | ||
| 58 | |||
| 59 | /* Bits of HD_NSECTOR */ | ||
| 60 | #define CD 0x01 | ||
| 61 | #define IO 0x02 | ||
| 62 | #define REL 0x04 | ||
| 63 | #define TAG_MASK 0xf8 | ||
| 64 | #endif /* __KERNEL__ */ | ||
| 65 | |||
| 66 | #include <linux/types.h> | 4 | #include <linux/types.h> |
| 67 | 5 | ||
| 68 | /* | 6 | /* |
| @@ -191,6 +129,7 @@ typedef struct hd_drive_hob_hdr { | |||
| 191 | #define TASKFILE_INVALID 0x7fff | 129 | #define TASKFILE_INVALID 0x7fff |
| 192 | #endif | 130 | #endif |
| 193 | 131 | ||
| 132 | #ifndef __KERNEL__ | ||
| 194 | /* ATA/ATAPI Commands pre T13 Spec */ | 133 | /* ATA/ATAPI Commands pre T13 Spec */ |
| 195 | #define WIN_NOP 0x00 | 134 | #define WIN_NOP 0x00 |
| 196 | /* | 135 | /* |
| @@ -379,6 +318,7 @@ typedef struct hd_drive_hob_hdr { | |||
| 379 | #define SECURITY_ERASE_UNIT 0xBD | 318 | #define SECURITY_ERASE_UNIT 0xBD |
| 380 | #define SECURITY_FREEZE_LOCK 0xBE | 319 | #define SECURITY_FREEZE_LOCK 0xBE |
| 381 | #define SECURITY_DISABLE_PASSWORD 0xBF | 320 | #define SECURITY_DISABLE_PASSWORD 0xBF |
| 321 | #endif /* __KERNEL__ */ | ||
| 382 | 322 | ||
| 383 | struct hd_geometry { | 323 | struct hd_geometry { |
| 384 | unsigned char heads; | 324 | unsigned char heads; |
| @@ -448,6 +388,7 @@ enum { | |||
| 448 | 388 | ||
| 449 | #define __NEW_HD_DRIVE_ID | 389 | #define __NEW_HD_DRIVE_ID |
| 450 | 390 | ||
| 391 | #ifndef __KERNEL__ | ||
| 451 | /* | 392 | /* |
| 452 | * Structure returned by HDIO_GET_IDENTITY, as per ANSI NCITS ATA6 rev.1b spec. | 393 | * Structure returned by HDIO_GET_IDENTITY, as per ANSI NCITS ATA6 rev.1b spec. |
| 453 | * | 394 | * |
| @@ -699,6 +640,7 @@ struct hd_driveid { | |||
| 699 | * 7:0 Signature | 640 | * 7:0 Signature |
| 700 | */ | 641 | */ |
| 701 | }; | 642 | }; |
| 643 | #endif /* __KERNEL__ */ | ||
| 702 | 644 | ||
| 703 | /* | 645 | /* |
| 704 | * IDE "nice" flags. These are used on a per drive basis to determine | 646 | * IDE "nice" flags. These are used on a per drive basis to determine |
