iPXE
Data Structures | Macros | Functions | Variables
smbios.h File Reference

System Management BIOS. More...

#include <stdint.h>
#include <ipxe/api.h>
#include <config/general.h>
#include <ipxe/uaccess.h>
#include <ipxe/efi/efi_smbios.h>
#include <ipxe/linux/linux_smbios.h>
#include <bits/smbios.h>

Go to the source code of this file.

Data Structures

struct  smbios_entry
 SMBIOS 32-bit entry point. More...
 
struct  smbios3_entry
 SMBIOS 64-bit entry point. More...
 
struct  smbios_header
 An SMBIOS structure header. More...
 
struct  smbios_structure
 SMBIOS structure descriptor. More...
 
struct  smbios_system_information
 SMBIOS system information structure. More...
 
struct  smbios_base_board_information
 SMBIOS base board information structure. More...
 
struct  smbios_enclosure_information
 SMBIOS enclosure information structure. More...
 
struct  smbios
 SMBIOS entry point descriptor. More...
 

Macros

#define PROVIDE_SMBIOS(_subsys, _api_func, _func)   PROVIDE_SINGLE_API ( SMBIOS_PREFIX_ ## _subsys, _api_func, _func )
 Provide an SMBIOS API implementation. More...
 
#define SMBIOS_SIGNATURE   ( ( '_' << 0 ) + ( 'S' << 8 ) + ( 'M' << 16 ) + ( '_' << 24 ) )
 Signature for 32-bit SMBIOS entry point. More...
 
#define SMBIOS3_SIGNATURE   ( ( '_' << 0 ) + ( 'S' << 8 ) + ( 'M' << 16 ) + ( '3' << 24 ) )
 Signature for 64-bit SMBIOS entry point. More...
 
#define SMBIOS_TYPE_SYSTEM_INFORMATION   1
 SMBIOS system information structure type. More...
 
#define SMBIOS_TYPE_BASE_BOARD_INFORMATION   2
 SMBIOS base board information structure type. More...
 
#define SMBIOS_TYPE_ENCLOSURE_INFORMATION   3
 SMBIOS enclosure information structure type. More...
 
#define SMBIOS_TYPE_OEM_STRINGS   11
 SMBIOS OEM strings structure type. More...
 
#define SMBIOS_TYPE_END   127
 SMBIOS end of table type. More...
 
#define SMBIOS_VERSION(major, minor)   ( ( (major) << 8 ) | (minor) )
 Calculate SMBIOS version. More...
 

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 
struct smbios_entry __attribute__ ((packed))
 
int find_smbios (struct smbios *smbios)
 
int find_smbios_entry (userptr_t start, size_t len, struct smbios_entry *entry)
 Scan for SMBIOS 32-bit entry point structure. More...
 
int find_smbios3_entry (userptr_t start, size_t len, struct smbios3_entry *entry)
 Scan for SMBIOS 64-bit entry point structure. More...
 
int find_smbios_structure (unsigned int type, unsigned int instance, struct smbios_structure *structure)
 Find specific structure type within SMBIOS. More...
 
int read_smbios_structure (struct smbios_structure *structure, void *data, size_t len)
 Copy SMBIOS structure. More...
 
int read_smbios_string (struct smbios_structure *structure, unsigned int index, void *data, size_t len)
 Find indexed string within SMBIOS structure. More...
 
int smbios_version (void)
 Get SMBIOS version. More...
 
void smbios_clear (void)
 Clear SMBIOS entry point descriptor. More...
 

Variables

uint32_t signature
 Signature. More...
 
uint8_t checksum
 Checksum. More...
 
uint8_t len
 Length. More...
 
uint8_t major
 Major version. More...
 
uint8_t minor
 Minor version. More...
 
uint16_t max
 Maximum structure size. More...
 
uint8_t revision
 Entry point revision. More...
 
uint8_t formatted [5]
 Formatted area. More...
 
uint8_t dmi_signature [5]
 DMI Signature. More...
 
uint8_t dmi_checksum
 DMI checksum. More...
 
uint16_t smbios_len
 Structure table length. More...
 
uint32_t smbios_address
 Structure table address. More...
 
uint16_t smbios_count
 Number of SMBIOS structures. More...
 
uint8_t bcd_revision
 BCD revision. More...
 
uint8_t extra
 Signature extra byte. More...
 
uint8_t docrev
 Documentation revision. More...
 
uint8_t reserved
 Reserved. More...
 
uint8_t type
 Type. More...
 
uint16_t handle
 Handle. More...
 
struct smbios_structure __attribute__
 
struct smbios_header header
 SMBIOS structure header. More...
 
uint8_t manufacturer
 Manufacturer string. More...
 
uint8_t product
 Product string. More...
 
uint8_t version
 Version string. More...
 
uint8_t serial
 Serial number string. More...
 
uint8_t uuid [16]
 UUID. More...
 
uint8_t wakeup
 Wake-up type. More...
 
uint8_t asset_tag
 Asset tag. More...
 

Detailed Description

System Management BIOS.

Definition in file smbios.h.

Macro Definition Documentation

◆ PROVIDE_SMBIOS

#define PROVIDE_SMBIOS (   _subsys,
  _api_func,
  _func 
)    PROVIDE_SINGLE_API ( SMBIOS_PREFIX_ ## _subsys, _api_func, _func )

Provide an SMBIOS API implementation.

Parameters
_prefixSubsystem prefix
_api_funcAPI function
_funcImplementing function

Definition at line 24 of file smbios.h.

◆ SMBIOS_SIGNATURE

#define SMBIOS_SIGNATURE   ( ( '_' << 0 ) + ( 'S' << 8 ) + ( 'M' << 16 ) + ( '_' << 24 ) )

Signature for 32-bit SMBIOS entry point.

Definition at line 35 of file smbios.h.

◆ SMBIOS3_SIGNATURE

#define SMBIOS3_SIGNATURE   ( ( '_' << 0 ) + ( 'S' << 8 ) + ( 'M' << 16 ) + ( '3' << 24 ) )

Signature for 64-bit SMBIOS entry point.

Definition at line 39 of file smbios.h.

◆ SMBIOS_TYPE_SYSTEM_INFORMATION

#define SMBIOS_TYPE_SYSTEM_INFORMATION   1

SMBIOS system information structure type.

Definition at line 157 of file smbios.h.

◆ SMBIOS_TYPE_BASE_BOARD_INFORMATION

#define SMBIOS_TYPE_BASE_BOARD_INFORMATION   2

SMBIOS base board information structure type.

Definition at line 174 of file smbios.h.

◆ SMBIOS_TYPE_ENCLOSURE_INFORMATION

#define SMBIOS_TYPE_ENCLOSURE_INFORMATION   3

SMBIOS enclosure information structure type.

Definition at line 193 of file smbios.h.

◆ SMBIOS_TYPE_OEM_STRINGS

#define SMBIOS_TYPE_OEM_STRINGS   11

SMBIOS OEM strings structure type.

Definition at line 196 of file smbios.h.

◆ SMBIOS_TYPE_END

#define SMBIOS_TYPE_END   127

SMBIOS end of table type.

Definition at line 199 of file smbios.h.

◆ SMBIOS_VERSION

#define SMBIOS_VERSION (   major,
  minor 
)    ( ( (major) << 8 ) | (minor) )

Calculate SMBIOS version.

Parameters
majorMajor version
minorMinor version
Return values
versionSMBIOS version

Definition at line 225 of file smbios.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL  )

◆ __attribute__()

struct smbios_entry __attribute__ ( (packed)  )

◆ find_smbios()

int find_smbios ( struct smbios smbios)

◆ find_smbios_entry()

int find_smbios_entry ( userptr_t  start,
size_t  len,
struct smbios_entry entry 
)

Scan for SMBIOS 32-bit entry point structure.

Parameters
startStart address of region to scan
lenLength of region to scan
entrySMBIOS entry point structure to fill in
Return values
rcReturn status code

Definition at line 72 of file smbios.c.

73  {
74  static size_t offset = 0; /* Avoid repeated attempts to locate SMBIOS */
75  uint8_t sum;
76 
77  /* Try to find SMBIOS */
78  for ( ; ( offset + sizeof ( *entry ) ) <= len ; offset += 0x10 ) {
79 
80  /* Read start of header and verify signature */
81  copy_from_user ( entry, start, offset, sizeof ( *entry ) );
82  if ( entry->signature != SMBIOS_SIGNATURE )
83  continue;
84 
85  /* Verify checksum */
86  if ( ( sum = smbios_checksum ( start, offset,
87  entry->len ) ) != 0 ) {
88  DBG ( "SMBIOS at %08lx has bad checksum %02x\n",
89  user_to_phys ( start, offset ), sum );
90  continue;
91  }
92 
93  /* Fill result structure */
94  DBG ( "Found SMBIOS v%d.%d entry point at %08lx\n",
95  entry->major, entry->minor,
96  user_to_phys ( start, offset ) );
97  return 0;
98  }
99 
100  DBG ( "No SMBIOS found\n" );
101  return -ENODEV;
102 }
#define SMBIOS_SIGNATURE
Signature for 32-bit SMBIOS entry point.
Definition: smbios.h:35
static __always_inline void copy_from_user(void *dest, userptr_t src, off_t src_off, size_t len)
Copy data from user buffer.
Definition: uaccess.h:337
unsigned long user_to_phys(userptr_t userptr, off_t offset)
Convert user pointer to physical address.
uint32_t start
Starting offset.
Definition: netvsc.h:12
static userptr_t size_t offset
Offset of the first segment within the content.
Definition: deflate.h:259
union aes_table_entry entry[256]
Table entries, indexed by S(N)
Definition: aes.c:26
#define ENODEV
No such device.
Definition: errno.h:509
unsigned char uint8_t
Definition: stdint.h:10
uint32_t len
Length.
Definition: ena.h:14
static uint8_t smbios_checksum(userptr_t start, size_t offset, size_t len)
Calculate SMBIOS entry point structure checksum.
Definition: smbios.c:52
#define DBG(...)
Print a debugging message.
Definition: compiler.h:498

References copy_from_user(), DBG, ENODEV, entry, len, offset, smbios_checksum(), SMBIOS_SIGNATURE, start, and user_to_phys().

Referenced by bios_find_smbios2().

◆ find_smbios3_entry()

int find_smbios3_entry ( userptr_t  start,
size_t  len,
struct smbios3_entry entry 
)

Scan for SMBIOS 64-bit entry point structure.

Parameters
startStart address of region to scan
lenLength of region to scan
entrySMBIOS entry point structure to fill in
Return values
rcReturn status code

Definition at line 112 of file smbios.c.

113  {
114  static size_t offset = 0; /* Avoid repeated attempts to locate SMBIOS */
115  uint8_t sum;
116 
117  /* Try to find SMBIOS */
118  for ( ; ( offset + sizeof ( *entry ) ) <= len ; offset += 0x10 ) {
119 
120  /* Read start of header and verify signature */
121  copy_from_user ( entry, start, offset, sizeof ( *entry ) );
122  if ( entry->signature != SMBIOS3_SIGNATURE )
123  continue;
124 
125  /* Verify checksum */
126  if ( ( sum = smbios_checksum ( start, offset,
127  entry->len ) ) != 0 ) {
128  DBG ( "SMBIOS3 at %08lx has bad checksum %02x\n",
129  user_to_phys ( start, offset ), sum );
130  continue;
131  }
132 
133  /* Fill result structure */
134  DBG ( "Found SMBIOS3 v%d.%d entry point at %08lx\n",
135  entry->major, entry->minor,
136  user_to_phys ( start, offset ) );
137  return 0;
138  }
139 
140  DBG ( "No SMBIOS3 found\n" );
141  return -ENODEV;
142 }
static __always_inline void copy_from_user(void *dest, userptr_t src, off_t src_off, size_t len)
Copy data from user buffer.
Definition: uaccess.h:337
unsigned long user_to_phys(userptr_t userptr, off_t offset)
Convert user pointer to physical address.
#define SMBIOS3_SIGNATURE
Signature for 64-bit SMBIOS entry point.
Definition: smbios.h:39
uint32_t start
Starting offset.
Definition: netvsc.h:12
static userptr_t size_t offset
Offset of the first segment within the content.
Definition: deflate.h:259
union aes_table_entry entry[256]
Table entries, indexed by S(N)
Definition: aes.c:26
#define ENODEV
No such device.
Definition: errno.h:509
unsigned char uint8_t
Definition: stdint.h:10
uint32_t len
Length.
Definition: ena.h:14
static uint8_t smbios_checksum(userptr_t start, size_t offset, size_t len)
Calculate SMBIOS entry point structure checksum.
Definition: smbios.c:52
#define DBG(...)
Print a debugging message.
Definition: compiler.h:498

References copy_from_user(), DBG, ENODEV, entry, len, offset, SMBIOS3_SIGNATURE, smbios_checksum(), start, and user_to_phys().

Referenced by bios_find_smbios3().

◆ find_smbios_structure()

int find_smbios_structure ( unsigned int  type,
unsigned int  instance,
struct smbios_structure structure 
)

Find specific structure type within SMBIOS.

Parameters
typeStructure type to search for
instanceInstance of this type of structure
structureSMBIOS structure descriptor to fill in
Return values
rcReturn status code

Definition at line 170 of file smbios.c.

171  {
172  unsigned int count = 0;
173  size_t offset = 0;
174  size_t strings_offset;
175  size_t terminator_offset;
176  int rc;
177 
178  /* Find SMBIOS */
179  if ( ( smbios.address == UNULL ) &&
180  ( ( rc = find_smbios ( &smbios ) ) != 0 ) )
181  return rc;
182  assert ( smbios.address != UNULL );
183 
184  /* Scan through list of structures */
185  while ( ( ( offset + sizeof ( structure->header ) ) < smbios.len ) &&
186  ( ( smbios.count == 0 ) || ( count < smbios.count ) ) ) {
187 
188  /* Read next SMBIOS structure header */
189  copy_from_user ( &structure->header, smbios.address, offset,
190  sizeof ( structure->header ) );
191 
192  /* Determine start and extent of strings block */
193  strings_offset = ( offset + structure->header.len );
194  if ( strings_offset > smbios.len ) {
195  DBG ( "SMBIOS structure at offset %zx with length "
196  "%x extends beyond SMBIOS\n", offset,
197  structure->header.len );
198  return -ENOENT;
199  }
200  terminator_offset = find_strings_terminator ( strings_offset );
201  if ( ! terminator_offset ) {
202  DBG ( "SMBIOS structure at offset %zx has "
203  "unterminated strings section\n", offset );
204  return -ENOENT;
205  }
206  structure->strings_len = ( terminator_offset - strings_offset);
207 
208  DBG ( "SMBIOS structure at offset %zx has type %d, length %x, "
209  "strings length %zx\n", offset, structure->header.type,
210  structure->header.len, structure->strings_len );
211 
212  /* Stop if we have reached an end-of-table marker */
213  if ( ( smbios.count == 0 ) &&
214  ( structure->header.type == SMBIOS_TYPE_END ) )
215  break;
216 
217  /* If this is the structure we want, return */
218  if ( ( structure->header.type == type ) &&
219  ( instance-- == 0 ) ) {
220  structure->offset = offset;
221  return 0;
222  }
223 
224  /* Move to next SMBIOS structure */
225  offset = ( terminator_offset + 1 );
226  count++;
227  }
228 
229  DBG ( "SMBIOS structure type %d not found\n", type );
230  return -ENOENT;
231 }
size_t strings_len
Length of strings section.
Definition: smbios.h:135
struct arbelprm_rc_send_wqe rc
Definition: arbel.h:14
unsigned int count
Number of SMBIOS structures.
Definition: smbios.h:213
#define SMBIOS_TYPE_END
SMBIOS end of table type.
Definition: smbios.h:199
static __always_inline void copy_from_user(void *dest, userptr_t src, off_t src_off, size_t len)
Copy data from user buffer.
Definition: uaccess.h:337
size_t len
Length of SMBIOS structures.
Definition: smbios.h:211
#define ENOENT
No such file or directory.
Definition: errno.h:514
SMBIOS entry point descriptor.
Definition: smbios.h:207
struct smbios_header header
Copy of SMBIOS structure header.
Definition: smbios.h:131
int find_smbios(struct smbios *smbios)
uint8_t len
Length.
Definition: smbios.h:123
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
static userptr_t size_t offset
Offset of the first segment within the content.
Definition: deflate.h:259
uint8_t type
Type.
Definition: smbios.h:121
#define UNULL
Equivalent of NULL for user pointers.
Definition: uaccess.h:36
uint32_t type
Operating system type.
Definition: ena.h:12
userptr_t address
Start of SMBIOS structures.
Definition: smbios.h:209
uint16_t count
Number of entries.
Definition: ena.h:22
#define DBG(...)
Print a debugging message.
Definition: compiler.h:498
static size_t find_strings_terminator(size_t offset)
Find SMBIOS strings terminator.
Definition: smbios.c:150
size_t offset
Offset of structure within SMBIOS.
Definition: smbios.h:133

References smbios::address, assert(), copy_from_user(), count, smbios::count, DBG, ENOENT, find_smbios(), find_strings_terminator(), smbios_structure::header, smbios_header::len, smbios::len, smbios_structure::offset, offset, rc, SMBIOS_TYPE_END, smbios_structure::strings_len, type, smbios_header::type, and UNULL.

Referenced by smbios_fetch(), and smsc95xx_vm3_fetch_mac().

◆ read_smbios_structure()

int read_smbios_structure ( struct smbios_structure structure,
void *  data,
size_t  len 
)

Copy SMBIOS structure.

Parameters
structureSMBIOS structure descriptor
dataBuffer to hold SMBIOS structure
lenLength of buffer
Return values
rcReturn status code

Definition at line 241 of file smbios.c.

242  {
243 
244  assert ( smbios.address != UNULL );
245 
246  if ( len > structure->header.len )
247  len = structure->header.len;
248  copy_from_user ( data, smbios.address, structure->offset, len );
249  return 0;
250 }
static __always_inline void copy_from_user(void *dest, userptr_t src, off_t src_off, size_t len)
Copy data from user buffer.
Definition: uaccess.h:337
SMBIOS entry point descriptor.
Definition: smbios.h:207
struct smbios_header header
Copy of SMBIOS structure header.
Definition: smbios.h:131
uint8_t len
Length.
Definition: smbios.h:123
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
#define UNULL
Equivalent of NULL for user pointers.
Definition: uaccess.h:36
uint32_t len
Length.
Definition: ena.h:14
userptr_t address
Start of SMBIOS structures.
Definition: smbios.h:209
uint8_t data[48]
Additional event data.
Definition: ena.h:22
size_t offset
Offset of structure within SMBIOS.
Definition: smbios.h:133

References smbios::address, assert(), copy_from_user(), data, smbios_structure::header, len, smbios_header::len, smbios_structure::offset, and UNULL.

Referenced by smbios_fetch(), and smsc95xx_vm3_fetch_mac().

◆ read_smbios_string()

int read_smbios_string ( struct smbios_structure structure,
unsigned int  index,
void *  data,
size_t  len 
)

Find indexed string within SMBIOS structure.

Parameters
structureSMBIOS structure descriptor
indexString index
dataBuffer for string
lenLength of string buffer
Return values
rcLength of string, or negative error

Definition at line 261 of file smbios.c.

262  {
263  size_t strings_start = ( structure->offset + structure->header.len );
264  size_t strings_end = ( strings_start + structure->strings_len );
265  size_t offset;
266  size_t string_len;
267 
268  assert ( smbios.address != UNULL );
269 
270  /* String numbers start at 1 (0 is used to indicate "no string") */
271  if ( ! index )
272  return -ENOENT;
273 
274  for ( offset = strings_start ; offset < strings_end ;
275  offset += ( string_len + 1 ) ) {
276  /* Get string length. This is known safe, since the
277  * smbios_strings struct is constructed so as to
278  * always end on a string boundary.
279  */
280  string_len = strlen_user ( smbios.address, offset );
281  if ( --index == 0 ) {
282  /* Copy string, truncating as necessary. */
283  if ( len > string_len )
284  len = string_len;
286  return string_len;
287  }
288  }
289 
290  DBG ( "SMBIOS string index %d not found\n", index );
291  return -ENOENT;
292 }
size_t strings_len
Length of strings section.
Definition: smbios.h:135
static __always_inline void copy_from_user(void *dest, userptr_t src, off_t src_off, size_t len)
Copy data from user buffer.
Definition: uaccess.h:337
#define ENOENT
No such file or directory.
Definition: errno.h:514
SMBIOS entry point descriptor.
Definition: smbios.h:207
struct smbios_header header
Copy of SMBIOS structure header.
Definition: smbios.h:131
uint8_t len
Length.
Definition: smbios.h:123
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
static userptr_t size_t offset
Offset of the first segment within the content.
Definition: deflate.h:259
size_t strlen_user(userptr_t userptr, off_t offset)
Find length of NUL-terminated string in user buffer.
#define UNULL
Equivalent of NULL for user pointers.
Definition: uaccess.h:36
uint32_t len
Length.
Definition: ena.h:14
userptr_t address
Start of SMBIOS structures.
Definition: smbios.h:209
uint8_t data[48]
Additional event data.
Definition: ena.h:22
uint64_t index
Index of the first segment within the content.
Definition: pccrc.h:21
#define DBG(...)
Print a debugging message.
Definition: compiler.h:498
size_t offset
Offset of structure within SMBIOS.
Definition: smbios.h:133

References smbios::address, assert(), copy_from_user(), data, DBG, ENOENT, smbios_structure::header, index, len, smbios_header::len, smbios_structure::offset, offset, smbios_structure::strings_len, strlen_user(), and UNULL.

Referenced by smbios_fetch(), and smsc95xx_vm3_fetch_mac().

◆ smbios_version()

int smbios_version ( void  )

Get SMBIOS version.

Return values
versionVersion, or negative error

Definition at line 299 of file smbios.c.

299  {
300  int rc;
301 
302  /* Find SMBIOS */
303  if ( ( smbios.address == UNULL ) &&
304  ( ( rc = find_smbios ( &smbios ) ) != 0 ) )
305  return rc;
306  assert ( smbios.address != UNULL );
307 
308  return smbios.version;
309 }
struct arbelprm_rc_send_wqe rc
Definition: arbel.h:14
SMBIOS entry point descriptor.
Definition: smbios.h:207
int find_smbios(struct smbios *smbios)
uint16_t version
SMBIOS version.
Definition: smbios.h:215
assert((readw(&hdr->flags) &(GTF_reading|GTF_writing))==0)
#define UNULL
Equivalent of NULL for user pointers.
Definition: uaccess.h:36
userptr_t address
Start of SMBIOS structures.
Definition: smbios.h:209

References smbios::address, assert(), find_smbios(), rc, UNULL, and smbios::version.

Referenced by smbios_fetch().

◆ smbios_clear()

void smbios_clear ( void  )

Clear SMBIOS entry point descriptor.

Definition at line 315 of file smbios.c.

315  {
316 
317  /* Clear address */
318  smbios.address = UNULL;
319 }
SMBIOS entry point descriptor.
Definition: smbios.h:207
#define UNULL
Equivalent of NULL for user pointers.
Definition: uaccess.h:36
userptr_t address
Start of SMBIOS structures.
Definition: smbios.h:209

References smbios::address, and UNULL.

Variable Documentation

◆ signature

uint32_t signature

Signature.

Must be equal to SMBIOS_SIGNATURE

Must be equal to SMBIOS3_SIGNATURE

Definition at line 15 of file smbios.h.

◆ checksum

uint8_t checksum

Checksum.

Definition at line 17 of file smbios.h.

◆ len

uint8_t len

Length.

Definition at line 19 of file smbios.h.

◆ major

uint8_t major

Major version.

Definition at line 21 of file smbios.h.

◆ minor

uint8_t minor

Minor version.

Definition at line 23 of file smbios.h.

◆ max

uint16_t max

Maximum structure size.

Definition at line 25 of file smbios.h.

◆ revision

uint8_t revision

Entry point revision.

Definition at line 27 of file smbios.h.

◆ formatted

uint8_t formatted[5]

Formatted area.

Definition at line 29 of file smbios.h.

Referenced by uri_churi_okx(), and uri_resolve_okx().

◆ dmi_signature

uint8_t dmi_signature[5]

DMI Signature.

Definition at line 31 of file smbios.h.

◆ dmi_checksum

uint8_t dmi_checksum

DMI checksum.

Definition at line 33 of file smbios.h.

◆ smbios_len

uint32_t smbios_len

Structure table length.

Definition at line 35 of file smbios.h.

◆ smbios_address

uint64_t smbios_address

Structure table address.

Definition at line 37 of file smbios.h.

◆ smbios_count

uint16_t smbios_count

Number of SMBIOS structures.

Definition at line 39 of file smbios.h.

◆ bcd_revision

uint8_t bcd_revision

BCD revision.

Definition at line 41 of file smbios.h.

◆ extra

uint8_t extra

Signature extra byte.

Definition at line 17 of file smbios.h.

Referenced by asn1_grow(), asn1_start(), deflate_inflate(), der_probe(), and gzip_extract().

◆ docrev

uint8_t docrev

Documentation revision.

Definition at line 27 of file smbios.h.

◆ reserved

uint8_t reserved

Reserved.

Definition at line 31 of file smbios.h.

◆ type

uint8_t type

Type.

Type string.

Definition at line 12 of file smbios.h.

◆ handle

uint16_t handle

Handle.

Definition at line 16 of file smbios.h.

Referenced by dbg_efi_opener(), dbg_efi_openers(), dbg_efi_protocol(), dbg_efi_protocols(), efi_block_boot(), efi_block_connect(), efi_block_filename(), efi_block_local(), efi_block_match(), efi_block_root(), efi_block_scan(), efi_close_protocol_wrapper(), efi_download_install(), efi_download_uninstall(), efi_dump_image(), efi_file_install(), efi_file_path_claim(), efi_file_uninstall(), efi_handle_name(), efi_handle_protocol_wrapper(), efi_image_exec(), efi_image_probe(), efi_init_stack_guard(), efi_install_multiple_protocol_interfaces_wrapper(), efi_install_protocol_interface_wrapper(), efi_open_protocol_information_wrapper(), efi_open_protocol_wrapper(), efi_protocols_per_handle_wrapper(), efi_pxe_find(), efi_pxe_install(), efi_pxe_uninstall(), efi_reinstall_protocol_interface_wrapper(), efi_shim_inhibit_pxe(), efi_shim_install(), efi_stack_cookie(), efi_uninstall_multiple_protocol_interfaces_wrapper(), efi_uninstall_protocol_interface_wrapper(), efi_veto_close(), efi_veto_close_handle(), efi_veto_close_protocol(), efi_veto_disconnect(), efi_wrap(), efipci_ioremap(), efipci_read(), efipci_root_close(), efipci_root_match(), efipci_root_open(), efipci_write(), find_snpdev(), phantom_poll(), phantom_post_rds(), phantom_refill_rx_ring(), usbio_bulk_in_poll(), usbio_bulk_out_poll(), usbio_config(), usbio_control_poll(), usbio_endpoint_open(), usbio_interface(), usbio_interfaces(), usbio_interrupt_callback(), usbio_interrupt_open(), usbio_open(), usbio_path(), usbio_start(), usbio_stop(), and usbio_supported().

◆ __attribute__

◆ header

struct smbios_header header

SMBIOS structure header.

Definition at line 12 of file smbios.h.

◆ manufacturer

uint8_t manufacturer

Manufacturer string.

Definition at line 14 of file smbios.h.

Referenced by efi_veto(), efi_veto_find(), efi_veto_hp_xhci(), efi_veto_ip4config(), and efi_veto_vmware_uefipxebc().

◆ product

uint8_t product

Product string.

Definition at line 16 of file smbios.h.

Referenced by __attribute__(), isa_id_string(), and x25519_invert_okx().

◆ version

uint8_t version

Version string.

Definition at line 18 of file smbios.h.

◆ serial

uint8_t serial

Serial number string.

Definition at line 20 of file smbios.h.

◆ uuid

UUID.

Definition at line 22 of file smbios.h.

Referenced by format_uuid_setting(), parse_uuid_setting(), peerdisc_create(), and smbios_fetch().

◆ wakeup

uint8_t wakeup

Wake-up type.

Definition at line 24 of file smbios.h.

◆ asset_tag

uint8_t asset_tag

Asset tag.

Definition at line 22 of file smbios.h.