diff options
Diffstat (limited to 'include/linux/hdreg.h')
-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 |