14#ifndef __IDE_CTRL_IO_H__
15#define __IDE_CTRL_IO_H__
24#define IDE_REGISTER_DATA 0
25#define IDE_REGISTER_ERROR 1
26#define IDE_REGISTER_FEATURES IDE_REGISTER_ERROR
27#define IDE_REGISTER_SECTOR_COUNT 2
28#define IDE_REGISTER_SECTOR_NUMBER 3
29#define IDE_REGISTER_LBA0 IDE_REGISTER_SECTOR_NUMBER
30#define IDE_REGISTER_CYLINDER_LOW 4
31#define IDE_REGISTER_LBA1 IDE_REGISTER_CYLINDER_LOW
32#define IDE_REGISTER_CYLINDER_HIGH 5
33#define IDE_REGISTER_LBA2 IDE_REGISTER_CYLINDER_HIGH
34#define IDE_REGISTER_DEVICE_HEAD 6
35#define IDE_REGISTER_LBA3 IDE_REGISTER_DEVICE_HEAD
36#define IDE_REGISTER_STATUS 7
37#define IDE_REGISTER_COMMAND IDE_REGISTER_STATUS
40#define IDE_REGISTER_ALTERNATE_STATUS 6
41#define IDE_REGISTER_DEVICE_CONTROL IDE_REGISTER_ALTERNATE_STATUS
44#define IDE_REGISTER_DEVICE_CONTROL_OFFSET 8
45#define IDE_REGISTER_ALTERNATE_STATUS_OFFSET IDE_REGISTER_DEVICE_CONTROL_OFFSET
46#define IDE_REGISTER_DATA_BYTE 9
47#define IDE_REGISTER_DATA_WORD 10
52#define IDE_REGISTER_STATUS_BSY 0x80
53#define IDE_REGISTER_STATUS_DRDY 0x40
54#define IDE_REGISTER_STATUS_DF 0x20
55#define IDE_REGISTER_STATUS_DSC 0x10
57#define IDE_REGISTER_STATUS_DRQ 0x08
58#define IDE_REGISTER_STATUS_CORR 0x04
60#define IDE_REGISTER_STATUS_IDX 0x02
62#define IDE_REGISTER_STATUS_ERR 0x01
64#define IDE_REGISTER_DEVICE_CONTROL_SRST 0x04
65#define IDE_REGISTER_DEVICE_CONTROL_nIEN 0x02
67#define IDE_REGISTER_DEVICE_HEAD_L 0x40
68#define IDE_REGISTER_DEVICE_HEAD_DEV 0x10
69#define IDE_REGISTER_DEVICE_HEAD_DEV_POS 4
70#define IDE_REGISTER_DEVICE_HEAD_HS 0x0f
71#define IDE_REGISTER_LBA3_L 0x40
72#define IDE_REGISTER_LBA3_DEV 0x10
73#define IDE_REGISTER_LBA3_LBA 0x0f
75#define IDE_REGISTER_ERROR_ICRC (1 << 7)
77#define IDE_REGISTER_ERROR_UNC (1 << 6)
78#if CCJ_COULD_NOT_FIND_THIS_ERROR
79#define IDE_REGISTER_ERROR_WP (1 << 6)
81#define IDE_REGISTER_ERROR_MC (1 << 5)
82#define IDE_REGISTER_ERROR_IDNF (1 << 4)
83#define IDE_REGISTER_ERROR_MCR (1 << 3)
85#define IDE_REGISTER_ERROR_ABRT (1 << 2)
86#define IDE_REGISTER_ERROR_NM (1 << 1)
87#define IDE_REGISTER_ERROR_AMNF (1 << 0)
89#define IDE_REGISTER_ERROR_MED (1 << 0)
164 int reg, uint16_t value);
179ide_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