1 /* ----------------------------------------------------------------------- *
3 * Copyright 2006 Erwan Velu - All Rights Reserved
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, Inc., 53 Temple Place Ste 330,
8 * Boston MA 02111-1307, USA; either version 2 of the License, or
9 * (at your option) any later version; incorporated herein by reference.
11 * ----------------------------------------------------------------------- */
17 #define BIOS_VENDOR_SIZE 32
18 #define BIOS_VERSION_SIZE 32
19 #define BIOS_RELEASE_SIZE 16
20 #define BIOS_RUNTIME_SIZE_UNIT_SIZE 16
21 #define BIOS_ROM_UNIT_SIZE 16
22 #define BIOS_BIOS_REVISION_SIZE 16
23 #define BIOS_FIRMWARE_REVISION_SIZE 16
25 #define BIOS_CHAR_NB_ELEMENTS 27
26 #define BIOS_CHAR_X1_NB_ELEMENTS 8
27 #define BIOS_CHAR_X2_NB_ELEMENTS 3
29 static const char *bios_charac_strings
[]={
30 "BIOS characteristics not supported", /* 3 */
35 "PC Card (PCMCIA) is supported",
38 "BIOS is upgradeable",
39 "BIOS shadowing is allowed",
41 "ESCD support is available",
42 "Boot from CD is supported",
43 "Selectable boot is supported",
44 "BIOS ROM is socketed",
45 "Boot from PC Card (PCMCIA) is supported",
47 "Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)",
48 "Japanese floppy for Toshiba 1.2 MB is supported (int 13h)",
49 "5.25\"/360 KB floppy services are supported (int 13h)",
50 "5.25\"/1.2 MB floppy services are supported (int 13h)",
51 "3.5\"/720 KB floppy services are supported (int 13h)",
52 "3.5\"/2.88 MB floppy services are supported (int 13h)",
53 "Print screen service is supported (int 5h)",
54 "8042 keyboard services are supported (int 9h)",
55 "Serial services are supported (int 14h)",
56 "Printer services are supported (int 17h)",
57 "CGA/mono video services are supported (int 10h)",
61 /* this struct have BIOS_CHAR_NB_ELEMENTS */
62 /* each bool is associated to the relevant message above */
64 bool bios_characteristics_not_supported
;
72 bool bios_upgreadable
;
78 bool bios_rom_socketed
;
80 bool japanese_floppy_nec_9800_1_2MB
;
81 bool japanese_floppy_toshiba_1_2MB
;
82 bool floppy_5_25_360KB
;
83 bool floppy_5_25_1_2MB
;
84 bool floppy_3_5_720KB
;
85 bool floppy_3_5_2_88MB
;
87 bool keyboard_8042_support
;
90 bool cga_mono_support
;
92 } __attribute__((__packed__
)) s_characteristics
;
94 static const char *bios_charac_x1_strings
[]={
95 "ACPI is supported", /* 0 */
96 "USB legacy is supported",
98 "I2O boot is supported",
99 "LS-120 boot is supported",
100 "ATAPI Zip drive boot is supported",
101 "IEEE 1394 boot is supported",
102 "Smart battery is supported" /* 7 */
105 /* this struct have BIOS_CHAR_X1_NB_ELEMENTS */
106 /* each bool is associated to the relevant message above */
116 } __attribute__((__packed__
)) s_characteristics_x1
;
118 static const char *bios_charac_x2_strings
[]={
119 "BIOS boot specification is supported", /* 0 */
120 "Function key-initiated network boot is supported",
121 "Targeted content distribution is supported" /* 2 */
124 /* this struct have BIOS_CHAR_X2_NB_ELEMENTS */
125 /* each bool is associated to the relevant message above */
127 bool bios_boot_specification
;
128 bool bios_network_boot_by_keypress
;
129 bool target_content_distribution
;
130 } __attribute__((__packed__
)) s_characteristics_x2
;
133 char vendor
[BIOS_VENDOR_SIZE
];
134 char version
[BIOS_VERSION_SIZE
];
135 char release_date
[BIOS_RELEASE_SIZE
];
138 char runtime_size_unit
[BIOS_RUNTIME_SIZE_UNIT_SIZE
];
140 char rom_size_unit
[BIOS_ROM_UNIT_SIZE
];
141 s_characteristics characteristics
;
142 s_characteristics_x1 characteristics_x1
;
143 s_characteristics_x2 characteristics_x2
;
144 char bios_revision
[BIOS_BIOS_REVISION_SIZE
];
145 char firmware_revision
[BIOS_FIRMWARE_REVISION_SIZE
];