| #ifndef BIOS_DISKS_H |
| #define BIOS_DISKS_H |
| |
| #include "dev.h" |
| |
| /* |
| * Constants |
| * |
| */ |
| |
| #define BIOS_DISK_MAX_NAME_LEN 6 |
| |
| struct bios_disk_sector { |
| char data[512]; |
| }; |
| |
| /* |
| * The location of a BIOS disk |
| * |
| */ |
| struct bios_disk_loc { |
| uint8_t drive; |
| }; |
| |
| /* |
| * A physical BIOS disk device |
| * |
| */ |
| struct bios_disk_device { |
| char name[BIOS_DISK_MAX_NAME_LEN]; |
| uint8_t drive; |
| uint8_t type; |
| }; |
| |
| /* |
| * A BIOS disk driver, with a valid device ID range and naming |
| * function. |
| * |
| */ |
| struct bios_disk_driver { |
| void ( *fill_drive_name ) ( char *buf, uint8_t drive ); |
| uint8_t min_drive; |
| uint8_t max_drive; |
| }; |
| |
| /* |
| * Define a BIOS disk driver |
| * |
| */ |
| #define BIOS_DISK_DRIVER( _name, _fill_drive_name, _min_drive, _max_drive ) \ |
| static struct bios_disk_driver _name = { \ |
| .fill_drive_name = _fill_drive_name, \ |
| .min_drive = _min_drive, \ |
| .max_drive = _max_drive, \ |
| } |
| |
| /* |
| * Functions in bios_disks.c |
| * |
| */ |
| |
| |
| /* |
| * bios_disk bus global definition |
| * |
| */ |
| extern struct bus_driver bios_disk_driver; |
| |
| #endif /* BIOS_DISKS_H */ |