11#include "../kklibc/ctypes.h"
14#define ATA_PRIMARY_DATA 0x1F0
15#define ATA_PRIMARY_ERROR 0x1F1
16#define ATA_PRIMARY_SECTOR_CNT 0x1F2
17#define ATA_PRIMARY_LBA_LOW 0x1F3
18#define ATA_PRIMARY_LBA_MID 0x1F4
19#define ATA_PRIMARY_LBA_HIGH 0x1F5
20#define ATA_PRIMARY_DRIVE_SEL 0x1F6
21#define ATA_PRIMARY_STATUS 0x1F7
22#define ATA_PRIMARY_CMD 0x1F7
25#define ATA_SR_BSY 0x80
26#define ATA_SR_DRDY 0x40
28#define ATA_SR_DSC 0x10
29#define ATA_SR_DRQ 0x08
30#define ATA_SR_CORR 0x04
31#define ATA_SR_IDX 0x02
32#define ATA_SR_ERR 0x01
35#define ATA_MASTER 0xA0
39#define ATA_CMD_READ_PIO 0x20
40#define ATA_CMD_READ_PIO_EXT 0x24
41#define ATA_CMD_READ_DMA 0xC8
42#define ATA_CMD_READ_DMA_EXT 0x25
43#define ATA_CMD_WRITE_PIO 0x30
44#define ATA_CMD_WRITE_PIO_EXT 0x34
45#define ATA_CMD_WRITE_DMA 0xCA
46#define ATA_CMD_WRITE_DMA_EXT 0x35
47#define ATA_CMD_CACHE_FLUSH 0xE7
48#define ATA_CMD_CACHE_FLUSH_EXT 0xEA
49#define ATA_CMD_IDENTIFY 0xEC
52#define ATA_DISK_UNKNOWN 0
53#define ATA_DISK_PATA 1
54#define ATA_DISK_SATA 2
55#define ATA_DISK_PATAPI 3
56#define ATA_DISK_SATAPI 4
int ata_pio_read_sectors(u8 drive, u32 lba, u8 num, u16 *buffer)
Чтение секторов с диска
Definition ata_pio.c:161
void ata_pio_init()
Инициализация драйвера ATA PIO.
Definition ata_pio.c:38
int ata_pio_write_sectors(u8 drive, u32 lba, u8 num, u16 *buffer)
Запись секторов на диск
Definition ata_pio.c:199
int ata_pio_identify(u8 drive, ata_disk_info_t *info)
Определение типа и параметров диска
Definition ata_pio.c:102
int ata_pio_wait()
Ожидание готовности диска
Definition ata_pio.c:81
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:62
u32 size
Definition ata_pio.h:64
u16 signature
Definition ata_pio.h:61
u32 command_sets
Definition ata_pio.h:63
u16 type
Definition ata_pio.h:60