diff options
Diffstat (limited to 'src/kernel/smbios/smbios.c')
-rw-r--r-- | src/kernel/smbios/smbios.c | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/src/kernel/smbios/smbios.c b/src/kernel/smbios/smbios.c index 0275f48..95ea70c 100644 --- a/src/kernel/smbios/smbios.c +++ b/src/kernel/smbios/smbios.c @@ -4,33 +4,18 @@ #include <kernel/io/io.h> #include <kernel/smbios/smbios.h> -struct smbios_entry { - int8_t signature[4]; - uint8_t checksum; - uint8_t length; - uint8_t major_version; - uint8_t minor_version; - uint8_t max_structure_size; - int8_t entry_point_revision; - int8_t formatted_area[5]; - int8_t entry_point_signature[5]; - uint8_t checksum2; - uint16_t table_length; - uint32_t table_address; - uint16_t number_of_structures; - uint8_t bcd_revision; -}; - struct smbios_entry *smbios = 0; -size_t smbios_table_len(struct smbios_header *header) { +size_t smbios_table_len(struct smbios_header *header) +{ size_t i; const char *strtab = (char *) header + header->length; for (i = 1; strtab[i - 1] != '\0' || strtab[i] != '\0'; i++); return header->length + i + 1; } -struct smbios_entry *get_smbios() { +struct smbios_entry *get_smbios() +{ if (smbios != 0) return smbios; char *mem = (char *) 0xF0000; @@ -59,7 +44,8 @@ struct smbios_entry *get_smbios() { return smbios; } -void smbios_table(struct smbios_header *header) { +void smbios_table(struct smbios_header *header) +{ serial_write("\n\n"); struct smbios_0 *table = (struct smbios_0 *) (header + sizeof(struct smbios_header)); serial_write(table->bios_version); |