a0a7a2225eea0cef22cbcc1a0f9cff4cb5d1c6e7
[people/balajirrao/gpxe.git] / src / arch / i386 / include / smbios.h
1 #ifndef _SMBIOS_H
2 #define _SMBIOS_H
3
4 /** @file
5  *
6  * System Management BIOS
7  */
8
9 #include <stdint.h>
10
11 /** An SMBIOS structure header */
12 struct smbios_header {
13         /** Type */
14         uint8_t type;
15         /** Length */
16         uint8_t length;
17         /** Handle */
18         uint16_t handle;
19 } __attribute__ (( packed ));
20
21 /** SMBIOS system information structure */
22 struct smbios_system_information {
23         /** SMBIOS structure header */
24         struct smbios_header header;
25         /** Manufacturer string */
26         uint8_t manufacturer;
27         /** Product string */
28         uint8_t product;
29         /** Version string */
30         uint8_t version;
31         /** Serial number string */
32         uint8_t serial;
33         /** UUID */
34         uint8_t uuid[16];
35 } __attribute__ (( packed ));
36
37 /** SMBIOS system information structure type */
38 #define SMBIOS_TYPE_SYSTEM_INFORMATION 1
39
40 struct smbios_strings;
41 extern int find_smbios_structure ( unsigned int type,
42                                    void *structure, size_t length,
43                                    struct smbios_strings *strings );
44 extern int find_smbios_string ( struct smbios_strings *strings,
45                                 unsigned int index,
46                                 char *buffer, size_t length );
47
48 #endif /* _SMBIOS_H */