RPV Event driven kernel
Loading...
Searching...
No Matches
disk.h
Go to the documentation of this file.
1
7#pragma once
8
9#include <stddef.h>
10#include <stdint.h>
11#include <stdbool.h>
12
24enum
25{
31};
32
43typedef struct
44{
48 char letter;
49
53 size_t did;
54
58 size_t volume;
59
63 size_t num_blocks;
64
68 size_t block_size;
69
70} disk_t;
71
89void disk_io(void);
90
100size_t get_disks(void);
101
119void get_disk(size_t did, disk_t *disk);
120
140void get_diskInfo(size_t did, char *dsk_info, size_t dsk_infoLen);
141
159uint8_t flush_disk(size_t did);
160
186uint8_t read_disk(void *buffer, size_t did, size_t blck, size_t blocks);
187
219uint8_t write_disk(void const* buffer, size_t did, size_t blck, size_t blocks);
@ DISK_WRITE_PROTECT
Definition disk.h:30
@ DISK_IO_OK
Definition disk.h:26
@ DISK_IO_ERR
Definition disk.h:27
@ DISK_NOT_READY
Definition disk.h:29
@ DISK_INVALID
Definition disk.h:28
size_t get_disks(void)
Returns the number of detected disks.
void disk_io(void)
Initializes the disk I/O module be a part of a file I/O subsystem.
void get_disk(size_t did, disk_t *disk)
Retrieves disk descriptor by identifier.
uint8_t write_disk(void const *buffer, size_t did, size_t blck, size_t blocks)
Writes blocks to disk.
uint8_t flush_disk(size_t did)
Flushes pending write operations to disk.
void get_diskInfo(size_t did, char *dsk_info, size_t dsk_infoLen)
Retrieves human-readable disk information string.
uint8_t read_disk(void *buffer, size_t did, size_t blck, size_t blocks)
Reads blocks from disk.
Disk descriptor structure.
Definition disk.h:44
size_t num_blocks
Total number of addressable blocks.
Definition disk.h:63
size_t did
Internal disk identifier.
Definition disk.h:53
char letter
Logical disk letter (e.g., 'A', 'B', 'C').
Definition disk.h:48
size_t block_size
Size of a single block in bytes.
Definition disk.h:68
size_t volume
Volume size.
Definition disk.h:58