MicrOS
harddisk_ata.c File Reference
#include "harddisk_ata.h"

Functions

uint64_t __harddisk_ata_get_user_addressable_sectors (const harddisk_identify_device_data *data)
 Get user addressable sectors of hard disk. More...
 
uint64_t __harddisk_ata_get_disk_space (const harddisk_identify_device_data *data)
 Get space of hard disk. More...
 
int8_t __harddisk_ata_read_sector (HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus, uint32_t high_lba, uint32_t low_lba, uint16_t *buffer)
 Reads hard disk sector. More...
 
int8_t __harddisk_ata_write_sector (HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus, uint32_t high_lba, uint32_t low_lba, uint16_t *buffer)
 Write hard disk sector. More...
 
int8_t __harddisk_ata_poll (uint16_t port)
 Doing pooling. More...
 

Function Documentation

◆ __harddisk_ata_get_disk_space()

uint64_t __harddisk_ata_get_disk_space ( const harddisk_identify_device_data data)

Get space of hard disk.

Parameters
dataPointer to identify data of device.
Returns
Space in bytes.

◆ __harddisk_ata_get_user_addressable_sectors()

uint64_t __harddisk_ata_get_user_addressable_sectors ( const harddisk_identify_device_data data)

Get user addressable sectors of hard disk.

Parameters
dataPointer to identify data of device.
Returns
Number of user addressable sectors.

◆ __harddisk_ata_poll()

int8_t __harddisk_ata_poll ( uint16_t  port)

Doing pooling.

Check if disk is ready.

Parameters
portPort for do delay.
Returns
1 if ready, -1 if error

◆ __harddisk_ata_read_sector()

int8_t __harddisk_ata_read_sector ( HARDDISK_ATA_MASTER_SLAVE  type,
HARDDISK_ATA_BUS_TYPE  bus,
uint32_t  high_lba,
uint32_t  low_lba,
uint16_t *  buffer 
)

Reads hard disk sector.

Parameters
typeType of harddisk.
busType of bus.
high_lbaHigher bits of lba (24 bits are used).
low_lbaLower bits of lba (24 bits are used).
bufferBuffer of 256 16-bits values for store data.
Returns
1 = success, -1 = disk error, -2 = parameter error.

◆ __harddisk_ata_write_sector()

int8_t __harddisk_ata_write_sector ( HARDDISK_ATA_MASTER_SLAVE  type,
HARDDISK_ATA_BUS_TYPE  bus,
uint32_t  high_lba,
uint32_t  low_lba,
uint16_t *  buffer 
)

Write hard disk sector.

Parameters
typeType of harddisk.
busType of bus.
high_lbaHigher bits of lba (24 bits are used).
low_lbaLower bits of lba (24 bits are used).
bufferBuffer of 256 16-bits values for store data.
Returns
1 = success, -1 = disk error, -2 = parameter error.