16#ifndef __IDE_CTRL_IO_H__
17#define __IDE_CTRL_IO_H__
26#define IDE_REGISTER_DATA 0
27#define IDE_REGISTER_ERROR 1
28#define IDE_REGISTER_FEATURES IDE_REGISTER_ERROR
29#define IDE_REGISTER_SECTOR_COUNT 2
30#define IDE_REGISTER_SECTOR_NUMBER 3
31#define IDE_REGISTER_LBA0 IDE_REGISTER_SECTOR_NUMBER
32#define IDE_REGISTER_CYLINDER_LOW 4
33#define IDE_REGISTER_LBA1 IDE_REGISTER_CYLINDER_LOW
34#define IDE_REGISTER_CYLINDER_HIGH 5
35#define IDE_REGISTER_LBA2 IDE_REGISTER_CYLINDER_HIGH
36#define IDE_REGISTER_DEVICE_HEAD 6
37#define IDE_REGISTER_LBA3 IDE_REGISTER_DEVICE_HEAD
38#define IDE_REGISTER_STATUS 7
39#define IDE_REGISTER_COMMAND IDE_REGISTER_STATUS
42#define IDE_REGISTER_ALTERNATE_STATUS 6
43#define IDE_REGISTER_DEVICE_CONTROL IDE_REGISTER_ALTERNATE_STATUS
46#define IDE_REGISTER_DEVICE_CONTROL_OFFSET 8
47#define IDE_REGISTER_ALTERNATE_STATUS_OFFSET IDE_REGISTER_DEVICE_CONTROL_OFFSET
48#define IDE_REGISTER_DATA_BYTE 9
49#define IDE_REGISTER_DATA_WORD 10
54#define IDE_REGISTER_STATUS_BSY 0x80
55#define IDE_REGISTER_STATUS_DRDY 0x40
56#define IDE_REGISTER_STATUS_DF 0x20
57#define IDE_REGISTER_STATUS_DSC 0x10
59#define IDE_REGISTER_STATUS_DRQ 0x08
60#define IDE_REGISTER_STATUS_CORR 0x04
62#define IDE_REGISTER_STATUS_IDX 0x02
64#define IDE_REGISTER_STATUS_ERR 0x01
66#define IDE_REGISTER_DEVICE_CONTROL_SRST 0x04
67#define IDE_REGISTER_DEVICE_CONTROL_nIEN 0x02
69#define IDE_REGISTER_DEVICE_HEAD_L 0x40
70#define IDE_REGISTER_DEVICE_HEAD_DEV 0x10
71#define IDE_REGISTER_DEVICE_HEAD_DEV_POS 4
72#define IDE_REGISTER_DEVICE_HEAD_HS 0x0f
73#define IDE_REGISTER_LBA3_L 0x40
74#define IDE_REGISTER_LBA3_DEV 0x10
75#define IDE_REGISTER_LBA3_LBA 0x0f
77#define IDE_REGISTER_ERROR_ICRC (1 << 7)
79#define IDE_REGISTER_ERROR_UNC (1 << 6)
80#if CCJ_COULD_NOT_FIND_THIS_ERROR
81#define IDE_REGISTER_ERROR_WP (1 << 6)
83#define IDE_REGISTER_ERROR_MC (1 << 5)
84#define IDE_REGISTER_ERROR_IDNF (1 << 4)
85#define IDE_REGISTER_ERROR_MCR (1 << 3)
87#define IDE_REGISTER_ERROR_ABRT (1 << 2)
88#define IDE_REGISTER_ERROR_NM (1 << 1)
89#define IDE_REGISTER_ERROR_AMNF (1 << 0)
91#define IDE_REGISTER_ERROR_MED (1 << 0)
166 int reg, uint16_t value);
181ide_controller_config_io_speed(
int minor, uint16_t modes_available);
uint32_t rtems_device_minor_number
This integer type represents the minor number of devices.
Definition: io.h:115
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Definition: status.h:85
Block device scatter or gather buffer structure.
Definition: blkdev.h:68