Home | History | Annotate | Download | only in include
      1 #ifndef BIOS_DISKS_H
      2 #define BIOS_DISKS_H
      3 
      4 #include "dev.h"
      5 
      6 /*
      7  * Constants
      8  *
      9  */
     10 
     11 #define	BIOS_DISK_MAX_NAME_LEN	6
     12 
     13 struct bios_disk_sector {
     14 	char data[512];
     15 };
     16 
     17 /*
     18  * The location of a BIOS disk
     19  *
     20  */
     21 struct bios_disk_loc {
     22 	uint8_t drive;
     23 };
     24 
     25 /*
     26  * A physical BIOS disk device
     27  *
     28  */
     29 struct bios_disk_device {
     30 	char name[BIOS_DISK_MAX_NAME_LEN];
     31 	uint8_t drive;
     32 	uint8_t type;
     33 };
     34 
     35 /*
     36  * A BIOS disk driver, with a valid device ID range and naming
     37  * function.
     38  *
     39  */
     40 struct bios_disk_driver {
     41 	void ( *fill_drive_name ) ( char *buf, uint8_t drive );
     42 	uint8_t min_drive;
     43 	uint8_t max_drive;
     44 };
     45 
     46 /*
     47  * Define a BIOS disk driver
     48  *
     49  */
     50 #define BIOS_DISK_DRIVER( _name, _fill_drive_name, _min_drive, _max_drive )   \
     51 	static struct bios_disk_driver _name = {			      \
     52 		.fill_drive_name = _fill_drive_name,			      \
     53 		.min_drive = _min_drive,				      \
     54 		.max_drive = _max_drive,				      \
     55 	}
     56 
     57 /*
     58  * Functions in bios_disks.c
     59  *
     60  */
     61 
     62 
     63 /*
     64  * bios_disk bus global definition
     65  *
     66  */
     67 extern struct bus_driver bios_disk_driver;
     68 
     69 #endif /* BIOS_DISKS_H */
     70