coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
cbfs-serial.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <cbfs.h>
4 #include <device/device.h>
5 #include <smbios.h>
6 #include <string.h>
7 
8 #define MAX_SERIAL_LENGTH 0x100
9 
11 {
12  static char serial_number[MAX_SERIAL_LENGTH + 1] = {0};
13 
14  if (serial_number[0] != 0)
15  return serial_number;
16 
17  size_t serial_len = cbfs_load("serial_number", serial_number, MAX_SERIAL_LENGTH);
18  if (serial_len) {
19  serial_number[serial_len] = '\0';
20  return serial_number;
21  }
22 
23  strncpy(serial_number, CONFIG_MAINBOARD_SERIAL_NUMBER,
25 
26  return serial_number;
27 }
#define MAX_SERIAL_LENGTH
Definition: cbfs-serial.c:8
const char * smbios_mainboard_serial_number(void)
Definition: cbfs-serial.c:10
static size_t cbfs_load(const char *name, void *buf, size_t size)
Definition: cbfs.h:282
char * strncpy(char *to, const char *from, int count)
Definition: string.c:72