aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/smbios/smbios.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/smbios/smbios.c')
-rw-r--r--src/kernel/smbios/smbios.c26
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);