MicrOS
|
#include <stdint.h>
Go to the source code of this file.
Classes | |
struct | harddisk_io_error_register_fields |
Hard disk I/O based Error Register. More... | |
union | harddisk_io_error_register |
Hard disk I/O based Error Register. More... | |
struct | harddisk_io_drive_head_register_fields |
Hard disk I/O based Drive / Head Register. More... | |
union | harddisk_io_drive_head_register |
Hard disk I/O based Drive / Head Register. More... | |
struct | harddisk_io_control_status_register_fields |
Hard disk I/O or Control based Status Register. More... | |
union | harddisk_io_control_status_register |
Hard disk I/O or Control based Status Register. More... | |
struct | harddisk_control_device_control_register_fields |
Hard disk Control based Device Control Register. More... | |
union | harddisk_control_device_control_register |
Hard disk Control based Device Control Register. More... | |
struct | harddisk_control_drive_address_register_fields |
Hard disk Control based Drive Address Register. More... | |
union | harddisk_control_drive_address_register |
Hard disk Control based Drive Address Register. More... | |
Macros | |
#define | HARDDISK_ATA_PRIMARY_BUS_IO_PORT 0x1F0 |
Primary bus I/O port. More... | |
#define | HARDDISK_ATA_PRIMARY_BUS_CONTROL_PORT 0x3F6 |
Primary bus control port. More... | |
#define | HARDDISK_ATA_SECONDARY_BUS_IO_PORT 0x170 |
Secondary bus I/O port. More... | |
#define | HARDDISK_ATA_SECONDARY_BUS_CONTROL_PORT 0x376 |
Secondary bus control port. More... | |
#define | HARDDISK_IO_DATA_REGISTER_OFFSET 0 |
Offset of I/O based Data Register. More... | |
#define | HARDDISK_IO_ERROR_REGISTER_OFFSET 1 |
Offset of I/O based Error Register. More... | |
#define | HARDDISK_FEATURES_REGISTER_OFFSET 1 |
Offset of I/O based Features Register. More... | |
#define | HARDDISK_IO_SECTOR_COUNT_REGISTER_OFFSET 2 |
Offset of I/O based Sector Count Register. More... | |
#define | HARDDISK_IO_SECTOR_NUMBER_REGISTER_OFFSET 3 |
Offset of I/O based Sector Number Register (LBAlo). More... | |
#define | HARDDISK_IO_CYLINDER_LOW_REGISTER_OFFSET 4 |
Offset of I/O based Cylinder Low Register / (LBAmid). More... | |
#define | HARDDISK_IO_CYLINDER_HIGH_REGISTER_OFFSET 5 |
Offset of I/O based Cylinder High Register / (LBAhi). More... | |
#define | HARDDISK_IO_DRIVE_HEAD_REGISTER_OFFSET 6 |
Offset of I/O based Drive / Head Register. More... | |
#define | HARDDISK_IO_STATUS_REGISTER_OFFSET 7 |
Offset of I/O based Status Register. More... | |
#define | HARDDISK_IO_COMMAND_REGISTER_OFFSET 7 |
Offset of I/O based Command Register. More... | |
#define | HARDDISK_CONTROL_ALTERNATE_STATUS_REGISTER_OFFSET 0 |
Offset of Control based Alternate Status Register. More... | |
#define | HARDDISK_CONTROL_DEVICE_CONTROL_REGISTER_OFFSET 0 |
Offset of Control based Device Control Register. More... | |
#define | HARDDISK_CONTROL_DEVICE_ADDRESS_REGISTER_OFFSET 1 |
Offset of Control based Drive Address Register. More... | |
#define HARDDISK_ATA_PRIMARY_BUS_CONTROL_PORT 0x3F6 |
Primary bus control port.
Used to transfer control informations with drives on primary bus
#define HARDDISK_ATA_PRIMARY_BUS_IO_PORT 0x1F0 |
Primary bus I/O port.
Used to transfer data with drives on primary bus
#define HARDDISK_ATA_SECONDARY_BUS_CONTROL_PORT 0x376 |
Secondary bus control port.
Used to transfer control informations with drives on secondary bus
#define HARDDISK_ATA_SECONDARY_BUS_IO_PORT 0x170 |
Secondary bus I/O port.
Used to transfer data with drives on secondary bus
#define HARDDISK_CONTROL_ALTERNATE_STATUS_REGISTER_OFFSET 0 |
Offset of Control based Alternate Status Register.
A duplicate of the Status Register from I/O port, which does not affect interrupts. Offset for Control base port.
Direction: read
Param. size for LBA48: 8 bit
#define HARDDISK_CONTROL_DEVICE_ADDRESS_REGISTER_OFFSET 1 |
Offset of Control based Drive Address Register.
Provides drive select and head select information. Offset for Control base port.
Direction: read
x Param. size for LBA48: 8 bit
#define HARDDISK_CONTROL_DEVICE_CONTROL_REGISTER_OFFSET 0 |
Offset of Control based Device Control Register.
Used to reset the bus or enable/disable interrupts. Offset for Control base port.
Direction: write
Param. size for LBA48: 8 bit
#define HARDDISK_FEATURES_REGISTER_OFFSET 1 |
Offset of I/O based Features Register.
Used to control command specific interface features. Offset for I/O base port.
Direction: write
Param. size for LBA48: 16 bit
#define HARDDISK_IO_COMMAND_REGISTER_OFFSET 7 |
Offset of I/O based Command Register.
Used to send ATA commands to the device. Offset for I/O base port.
Direction: write
Param. size for LBA48: 8 bit
#define HARDDISK_IO_CYLINDER_HIGH_REGISTER_OFFSET 5 |
Offset of I/O based Cylinder High Register / (LBAhi).
Partial Disk Sector address. Offset for I/O base port.
Direction: read/write
Param. size for LBA48: 16 bit
#define HARDDISK_IO_CYLINDER_LOW_REGISTER_OFFSET 4 |
Offset of I/O based Cylinder Low Register / (LBAmid).
Partial Disk Sector address. Offset for I/O base port.
Direction: read/write
Param. size for LBA48: 16 bit
#define HARDDISK_IO_DATA_REGISTER_OFFSET 0 |
Offset of I/O based Data Register.
Read/Write PIO data bytes. Offset for I/O base port.
Direction: read/write
Param. size for LBA48: 16 bit
#define HARDDISK_IO_DRIVE_HEAD_REGISTER_OFFSET 6 |
Offset of I/O based Drive / Head Register.
Used to select a drive and/or head. Supports extra address/flag bits. Offset for I/O base port.
Direction: read/write
Param. size for LBA48: 8 bit
#define HARDDISK_IO_ERROR_REGISTER_OFFSET 1 |
Offset of I/O based Error Register.
Used to retrieve any error generated by the last ATA command executed. Offset for I/O base port.
Direction: read
Param. size for LBA48: 16 bit
#define HARDDISK_IO_SECTOR_COUNT_REGISTER_OFFSET 2 |
Offset of I/O based Sector Count Register.
Number of sectors to read/write (0 is a special value). Offset for I/O base port.
Direction: read/write
Param. size for LBA48: 16 bit
#define HARDDISK_IO_SECTOR_NUMBER_REGISTER_OFFSET 3 |
Offset of I/O based Sector Number Register (LBAlo).
This is CHS / LBA28 / LBA48 specific. Offset for I/O base port.
Direction: read/write
Param. size for LBA48: 16 bit
#define HARDDISK_IO_STATUS_REGISTER_OFFSET 7 |
Offset of I/O based Status Register.
Used to read the current status. Offset for I/O base port.
Direction: read
Param. size for LBA48: 8 bit