2005-04-25 19:29:55 +00:00
|
|
|
#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
|
|
|
|
*
|
|
|
|
*/
|
2005-04-26 12:30:14 +00:00
|
|
|
#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, \
|
|
|
|
}
|
2005-04-25 19:29:55 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Functions in bios_disks.c
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* bios_disk bus global definition
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
extern struct bus_driver bios_disk_driver;
|
|
|
|
|
|
|
|
#endif /* BIOS_DISKS_H */
|