Kintsugi OS 0.2.0
x86 Monolithic OS
Loading...
Searching...
No Matches
ata_pio.c File Reference
#include "ata_pio.h"
#include "../kklibc/kklibc.h"
#include "lowlevel_io.h"
#include "screen.h"

Functions

static void ata_pio_select_drive (u8 drive)
 
static void ata_pio_set_lba (u32 lba, u8 drive)
 
void ata_pio_init ()
 Инициализация драйвера ATA PIO.
 
int ata_pio_wait ()
 Ожидание готовности диска
 
int ata_pio_identify (u8 drive, ata_disk_info_t *info)
 Определение типа и параметров диска
 
int ata_pio_read_sectors (u8 drive, u32 lba, u8 num, u16 *buffer)
 Чтение секторов с диска
 
int ata_pio_write_sectors (u8 drive, u32 lba, u8 num, u16 *buffer)
 Запись секторов на диск
 

Variables

ata_disk_info_t ata_disks [2]
 

Function Documentation

◆ ata_pio_identify()

int ata_pio_identify ( u8  drive,
ata_disk_info_t info 
)

Определение типа и параметров диска

Parameters
driveТип диска (ATA_MASTER/ATA_SLAVE)
infoУказатель на структуру для информации
Returns
0 в случае успеха, код ошибки в противном случае

◆ ata_pio_init()

void ata_pio_init ( )

Инициализация драйвера ATA PIO.

◆ ata_pio_read_sectors()

int ata_pio_read_sectors ( u8  drive,
u32  lba,
u8  num,
u16 buffer 
)

Чтение секторов с диска

Parameters
driveТип диска (ATA_MASTER/ATA_SLAVE)
lbaНачальный LBA адрес
numКоличество секторов для чтения
bufferБуфер для данных
Returns
0 в случае успеха, код ошибки в противном случае

◆ ata_pio_select_drive()

static void ata_pio_select_drive ( u8  drive)
static

◆ ata_pio_set_lba()

static void ata_pio_set_lba ( u32  lba,
u8  drive 
)
static

◆ ata_pio_wait()

int ata_pio_wait ( )

Ожидание готовности диска

Returns
0 если диск готов, код ошибки в противном случае

◆ ata_pio_write_sectors()

int ata_pio_write_sectors ( u8  drive,
u32  lba,
u8  num,
u16 buffer 
)

Запись секторов на диск

Parameters
driveТип диска (ATA_MASTER/ATA_SLAVE)
lbaНачальный LBA адрес
numКоличество секторов для записи
bufferБуфер с данными
Returns
0 в случае успеха, код ошибки в противном случае

Variable Documentation

◆ ata_disks

ata_disk_info_t ata_disks[2]