Adding upstream version 3.50~pre5.
[syslinux-debian/hramrach.git] / com32 / include / dmi / dmi_bios.h
blobd9be233bd693c24cb020ebf544a73ac848cf5d14
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 * ----------------------------------------------------------------------- */
13 #ifndef DMI_BIOS_H
14 #define DMI_BIOS_H
16 #include "stdbool.h"
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 */
31 "ISA is supported",
32 "MCA is supported",
33 "EISA is supported",
34 "PCI is supported",
35 "PC Card (PCMCIA) is supported",
36 "PNP is supported",
37 "APM is supported",
38 "BIOS is upgradeable",
39 "BIOS shadowing is allowed",
40 "VLB is supported",
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",
46 "EDD 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)",
58 "NEC PC-98" /* 31 */
61 /* this struct have BIOS_CHAR_NB_ELEMENTS */
62 /* each bool is associated to the relevant message above */
63 typedef struct {
64 bool bios_characteristics_not_supported;
65 bool isa;
66 bool mca;
67 bool eisa;
68 bool pci;
69 bool pc_card;
70 bool pnp;
71 bool apm;
72 bool bios_upgreadable;
73 bool bios_shadowing;
74 bool vlb;
75 bool escd;
76 bool boot_from_cd;
77 bool selectable_boot;
78 bool bios_rom_socketed;
79 bool edd;
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;
86 bool print_screen;
87 bool keyboard_8042_support;
88 bool serial_support;
89 bool printer_support;
90 bool cga_mono_support;
91 bool nec_pc_98;
92 } __attribute__((__packed__)) s_characteristics;
94 static const char *bios_charac_x1_strings[]={
95 "ACPI is supported", /* 0 */
96 "USB legacy is supported",
97 "AGP 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 */
107 typedef struct {
108 bool acpi;
109 bool usb_legacy;
110 bool agp;
111 bool i2o_boot;
112 bool ls_120_boot;
113 bool zip_drive_boot;
114 bool ieee_1394_boot;
115 bool smart_battery;
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 */
126 typedef struct {
127 bool bios_boot_specification;
128 bool bios_network_boot_by_keypress;
129 bool target_content_distribution;
130 } __attribute__((__packed__)) s_characteristics_x2;
132 typedef struct {
133 char vendor[BIOS_VENDOR_SIZE];
134 char version[BIOS_VERSION_SIZE];
135 char release_date[BIOS_RELEASE_SIZE];
136 u16 address;
137 u16 runtime_size;
138 char runtime_size_unit[BIOS_RUNTIME_SIZE_UNIT_SIZE];
139 u16 rom_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];
146 } s_bios;
148 #endif