MicrOS
harddisk.h
Go to the documentation of this file.
1 #ifndef HARDDISK_H
2 #define HARDDISK_H
3 
4 #include <stdint.h>
5 #include <stddef.h>
6 #include <stdbool.h>
7 #include "harddisk_header.h"
8 #include "harddisk_detection.h"
9 #include "ata/harddisk_ata.h"
10 #include "atapi/harddisk_atapi.h"
11 
13 
16 void harddisk_init();
17 
19 
24 
26 
32 
34 
40 
42 
50 
52 
60 
62 
70 
72 
78 
80 
86 
88 
95 
97 
105 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);
106 
108 
116 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);
117 
118 #endif
harddisk_states harddisk_get_states()
Get hard disk states.
Definition: harddisk.c:17
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.
Definition: harddisk.c:40
HARDDISK_STATE harddisk_get_state(HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus)
Get status of hard disk.
Definition: harddisk.c:22
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.
Definition: harddisk.c:31
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.
Definition: harddisk.c:152
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.
Definition: harddisk.c:56
uint64_t harddisk_get_disk_space(HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus)
Get space of hard disk.
Definition: harddisk.c:128
Defines status of hard disks in system.
Definition: harddisk_header.h:40
bool harddisk_get_is_removable_media_device(HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus)
Check if device is removable media.
Definition: harddisk.c:143
HARDDISK_STATE
Enum represent hard disk status.
Definition: harddisk_header.h:29
Hard disk Identify Device Data.
Definition: harddisk_identify_device_data.h:999
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.
Definition: harddisk.c:167
void harddisk_init()
Initialization of hard disk driver.
uint64_t harddisk_get_user_addressable_sectors(HARDDISK_ATA_MASTER_SLAVE type, HARDDISK_ATA_BUS_TYPE bus)
Get user addressable sectors of hard disk.
Definition: harddisk.c:113
char buffer[500]
Definition: physical_memory_manager.c:5
HARDDISK_ATA_BUS_TYPE
Enum represent bus type.
Definition: harddisk_header.h:15
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.
Definition: harddisk.c:84
HARDDISK_ATA_MASTER_SLAVE
Enum represent hard disk type.
Definition: harddisk_header.h:22
size_t uint32_t
Unsigned integral type.
Definition: string.h:8