14#include "../kklibc/ctypes.h"
17#define ATA_PRIMARY_DATA 0x1F0
18#define ATA_PRIMARY_ERROR 0x1F1
19#define ATA_PRIMARY_SECTOR_CNT 0x1F2
20#define ATA_PRIMARY_LBA_LOW 0x1F3
21#define ATA_PRIMARY_LBA_MID 0x1F4
22#define ATA_PRIMARY_LBA_HIGH 0x1F5
23#define ATA_PRIMARY_DRIVE_SEL 0x1F6
24#define ATA_PRIMARY_STATUS 0x1F7
25#define ATA_PRIMARY_CMD 0x1F7
28#define ATA_SR_BSY 0x80
29#define ATA_SR_DRDY 0x40
31#define ATA_SR_DSC 0x10
32#define ATA_SR_DRQ 0x08
33#define ATA_SR_CORR 0x04
34#define ATA_SR_IDX 0x02
35#define ATA_SR_ERR 0x01
38#define ATA_MASTER 0xA0
42#define ATA_CMD_READ_PIO 0x20
43#define ATA_CMD_READ_PIO_EXT 0x24
44#define ATA_CMD_READ_DMA 0xC8
45#define ATA_CMD_READ_DMA_EXT 0x25
46#define ATA_CMD_WRITE_PIO 0x30
47#define ATA_CMD_WRITE_PIO_EXT 0x34
48#define ATA_CMD_WRITE_DMA 0xCA
49#define ATA_CMD_WRITE_DMA_EXT 0x35
50#define ATA_CMD_CACHE_FLUSH 0xE7
51#define ATA_CMD_CACHE_FLUSH_EXT 0xEA
52#define ATA_CMD_IDENTIFY 0xEC
55#define ATA_DISK_UNKNOWN 0
56#define ATA_DISK_PATA 1
57#define ATA_DISK_SATA 2
58#define ATA_DISK_PATAPI 3
59#define ATA_DISK_SATAPI 4
int ata_pio_read_sectors(u8 drive, u32 lba, u8 num, u16 *buffer)
Чтение секторов с диска
Definition ata_pio.c:159
void ata_pio_init()
Инициализация драйвера ATA PIO.
Definition ata_pio.c:41
int ata_pio_write_sectors(u8 drive, u32 lba, u8 num, u16 *buffer)
Запись секторов на диск
Definition ata_pio.c:196
int ata_pio_identify(u8 drive, ata_disk_info_t *info)
Определение типа и параметров диска
Definition ata_pio.c:103
int ata_pio_wait()
Ожидание готовности диска
Definition ata_pio.c:82
unsigned int u32
Definition ctypes.h:11
unsigned short u16
Definition ctypes.h:13
unsigned char u8
Definition ctypes.h:15
u16 capabilities
Definition ata_pio.h:65
u32 size
Definition ata_pio.h:67
u16 signature
Definition ata_pio.h:64
u32 command_sets
Definition ata_pio.h:66
u16 type
Definition ata_pio.h:63