Main Page | Directories | File List | Globals

smbios.c File Reference

#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)


Define Documentation

#define MOD_NAME   "SMBIOS: "
 

Definition at line 21 of file smbios.c.


Function Documentation

u8 count_sum char *  buf,
int  len
 

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 }

int __init smbios_find_table void   ) 
 

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:

int __init smbios_init void   ) 
 

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:

Dokumentacje wygenerowano programem Doxygen 1.4.2 dla projektu Agnix