• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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