#include <agnix/agnix.h>
#include <agnix/init.h>
#include <agnix/bios/bios.h>
#include <agnix/console.h>
#include <agnix/memory.h>
#include <asm/paging.h>
Include dependency graph for smbios.c:
Go to the source code of this file.
Defines | |
#define | MOD_NAME "SMBIOS: " |
Functions | |
u8 | count_sum (char *buf, int len) |
int __init | smbios_find_table (void) |
int __init | smbios_init (void) |
|
|
|
Definition at line 23 of file smbios.c. Referenced by smbios_find_table(). 00024 { 00025 int i; 00026 u8 sum = 0; 00027 00028 for (i = 0; i < len; i++) 00029 sum += buf[i]; 00030 00031 return sum; 00032 }
|
|
Definition at line 34 of file smbios.c. References count_sum(), memcmp(), MOD_NAME, and printk(). Referenced by smbios_init(). 00035 { 00036 u32 range_cur = 0xF0000; 00037 u32 range_end = 0xFFFFF; 00038 struct smbios_eps_s *eps; 00039 00040 do { 00041 eps = (struct smbios_eps_s *)phys_to_virt(range_cur); 00042 00043 if (!memcmp(eps->ident, _SM_, 4)) { 00044 if (count_sum((char *)eps, sizeof(struct smbios_eps_s))) { 00045 printk(MOD_NAME "invalid checksum!!!\n"); 00046 return -1; 00047 } else { 00048 printk(MOD_NAME "Found SMBIOS ver. %d.%d\n", eps->smbios_major, eps->smbios_minor); 00049 return 0; 00050 } 00051 } 00052 00053 range_cur += 16; 00054 } while(range_cur < range_end); 00055 00056 return -1; 00057 }
Here is the call graph for this function: |
|
Definition at line 59 of file smbios.c. References smbios_find_table(). Referenced by bios_init(). 00060 { 00061 smbios_find_table(); 00062 00063 return 0; 00064 }
Here is the call graph for this function: |