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

Functions

void harddisk_init (harddisk_configuration configuration)
 
harddisk_states harddisk_get_states ()
 Get hard disk states. More...
 
HARDDISK_STATE harddisk_get_state (HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus)
 Get status of hard disk. More...
 
const harddisk_identify_device_dataharddisk_get_identify_data (HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus)
 Get identify data of hard disk. More...
 
char * harddisk_get_disk_serial_number_terminated (HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus, char *buffer)
 Get serial number of hard disk. More...
 
char * harddisk_get_disk_firmware_version_terminated (HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus, char *buffer)
 Get firmware version of hard disk. More...
 
char * harddisk_get_disk_model_number_terminated (HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus, char *buffer)
 Get model number of hard disk. More...
 
uint64_t harddisk_get_user_addressable_sectors (HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus)
 Get user addressable sectors of hard disk. More...
 
uint64_t harddisk_get_disk_space (HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus)
 Get space of hard disk. More...
 
bool harddisk_get_is_removable_media_device (HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus)
 Check if device is removable media. More...
 
int8_t harddisk_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_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...
 

Variables

harddisk_states harddisk_current_states
 Current states of all hard drives. More...
 
harddisk_configuration harddisk_current_configuration
 Current configuration of harddisk. More...
 

Function Documentation

◆ harddisk_get_disk_firmware_version_terminated()

char* harddisk_get_disk_firmware_version_terminated ( HARDDISK_ATA_MASTER_SLAVE  type,
HARDDISK_ATA_BUS_TYPE  bus,
char *  buffer 
)

Get firmware version of hard disk.

Function copy firmware version to buffer and terminate string with /0.

Parameters
typeType of harddisk.
busType of bus.
bufferBuffer firmware version with size at least 9.
Returns
Pointer to buffer where firmware version is stored.

◆ harddisk_get_disk_model_number_terminated()

char* harddisk_get_disk_model_number_terminated ( HARDDISK_ATA_MASTER_SLAVE  type,
HARDDISK_ATA_BUS_TYPE  bus,
char *  buffer 
)

Get model number of hard disk.

Function copy model number to buffer and terminate string with /0.

Parameters
typeType of harddisk.
busType of bus.
bufferBuffer model number with size at least 41.
Returns
Pointer to buffer where model number is stored.

◆ harddisk_get_disk_serial_number_terminated()

char* harddisk_get_disk_serial_number_terminated ( HARDDISK_ATA_MASTER_SLAVE  type,
HARDDISK_ATA_BUS_TYPE  bus,
char *  buffer 
)

Get serial number of hard disk.

Function copy serial number to buffer and terminate string with /0.

Parameters
typeType of harddisk.
busType of bus.
bufferBuffer for serial number with size at least 21.
Returns
Pointer to buffer where serial number is stored.

◆ harddisk_get_disk_space()

uint64_t harddisk_get_disk_space ( HARDDISK_ATA_MASTER_SLAVE  type,
HARDDISK_ATA_BUS_TYPE  bus 
)

Get space of hard disk.

Parameters
typeType of harddisk.
busType of bus.
Returns
Space in bytes.

◆ harddisk_get_identify_data()

const harddisk_identify_device_data* harddisk_get_identify_data ( HARDDISK_ATA_MASTER_SLAVE  type,
HARDDISK_ATA_BUS_TYPE  bus 
)

Get identify data of hard disk.

Parameters
typeType of harddisk.
busType of bus.
Returns
Identify data of hard disk.

◆ harddisk_get_is_removable_media_device()

bool harddisk_get_is_removable_media_device ( HARDDISK_ATA_MASTER_SLAVE  type,
HARDDISK_ATA_BUS_TYPE  bus 
)

Check if device is removable media.

Check if device can contain removable media.

Parameters
typeType of harddisk.
busType of bus.
Returns
True if device can contain removable media, false otherwise.

◆ harddisk_get_state()

HARDDISK_STATE harddisk_get_state ( HARDDISK_ATA_MASTER_SLAVE  type,
HARDDISK_ATA_BUS_TYPE  bus 
)

Get status of hard disk.

Parameters
typeType of harddisk.
busType of bus.
Returns
State of hard disk.

◆ harddisk_get_states()

harddisk_states harddisk_get_states ( )

Get hard disk states.

Call this function after init, which should be called during system boot up.

Returns
State off all hard drives in system.

◆ harddisk_get_user_addressable_sectors()

uint64_t harddisk_get_user_addressable_sectors ( HARDDISK_ATA_MASTER_SLAVE  type,
HARDDISK_ATA_BUS_TYPE  bus 
)

Get user addressable sectors of hard disk.

Parameters
typeType of harddisk.
busType of bus.
Returns
Number of user addressable sectors.

◆ harddisk_init()

void harddisk_init ( harddisk_configuration  configuration)

◆ harddisk_read_sector()

int8_t harddisk_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_write_sector()

int8_t harddisk_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.

Variable Documentation

◆ harddisk_current_configuration

harddisk_configuration harddisk_current_configuration

Current configuration of harddisk.

◆ harddisk_current_states

harddisk_states harddisk_current_states

Current states of all hard drives.