diff options
author | nima <nima@abc39116-655e-4be6-ad55-d661dc543056> | 2008-07-01 06:01:21 +0000 |
---|---|---|
committer | nima <nima@abc39116-655e-4be6-ad55-d661dc543056> | 2008-07-01 06:01:21 +0000 |
commit | eb7958574ce98601433022d7d23343025c1e34b8 (patch) | |
tree | 2f9f0003beaff39d40a0f836ee035de330cea4de /test.c | |
parent | 4f5bfc68e416a7d1e6264e43278fe9b9df684eed (diff) | |
download | python-dmidecode-eb7958574ce98601433022d7d23343025c1e34b8.tar.gz python-dmidecode-eb7958574ce98601433022d7d23343025c1e34b8.tar.xz python-dmidecode-eb7958574ce98601433022d7d23343025c1e34b8.zip |
Project progressing along excellently. The python module is now functional and
has as many methods as the --type option takes.
Next is to expand and harness the code around the `--string' option.
git-svn-id: svn://svn.autonomy.net.au/python-dmidecode@3 abc39116-655e-4be6-ad55-d661dc543056
Diffstat (limited to 'test.c')
-rw-r--r-- | test.c | 109 |
1 files changed, 9 insertions, 100 deletions
@@ -1,3 +1,5 @@ +#include <Python.h> + #include <stdio.h> #include <string.h> #include <stdlib.h> @@ -14,9 +16,8 @@ #define EFI_NOT_FOUND (-1) #define EFI_NO_SMBIOS (-2) -#include <Python.h> -#include "catsprintf.h" #include "global.h" +#include "catsprintf.h" extern void dmi_dump(struct dmi_header *h, const char *prefix); extern void dmi_decode(struct dmi_header *h, u16 ver); @@ -25,103 +26,11 @@ extern void to_dmi_header(struct dmi_header *h, u8 *data); extern void dmi_table(u32 base, u16 len, u16 num, u16 ver, const char *devmem); extern int smbios_decode(u8 *buf, const char *devmem); extern int legacy_decode(u8 *buf, const char *devmem); +extern int submain(int argc, char * const argv[]); - - -int main(int argc, char * const argv[]) -{ - bzero(buffer, 50000); - - int ret=0; /* Returned value */ - int found=0; - size_t fp; - int efi; - u8 *buf; - - if(sizeof(u8)!=1 || sizeof(u16)!=2 || sizeof(u32)!=4 || '\0'!=0) - { - fprintf(stderr, "%s: compiler incompatibility\n", argv[0]); - exit(255); - } - - /* Set default option values */ - opt.devmem=DEFAULT_MEM_DEV; - opt.flags=0; - - if(parse_command_line(argc, argv)<0) - { - ret=2; - goto exit_free; - } - - if(opt.flags & FLAG_HELP) - { - print_help(); - goto exit_free; - } - - if(opt.flags & FLAG_VERSION) - { - printf("%s\n", VERSION); - goto exit_free; - } - - if(!(opt.flags & FLAG_QUIET)) - printf("# dmidecode %s\n", VERSION); - - /* First try EFI (ia64, Intel-based Mac) */ - efi=address_from_efi(&fp); - switch(efi) - { - case EFI_NOT_FOUND: - goto memory_scan; - case EFI_NO_SMBIOS: - ret=1; - goto exit_free; - } - - if((buf=mem_chunk(fp, 0x20, opt.devmem))==NULL) - { - ret=1; - goto exit_free; - } - - if(smbios_decode(buf, opt.devmem)) - found++; - goto done; - -memory_scan: - /* Fallback to memory scan (x86, x86_64) */ - if((buf=mem_chunk(0xF0000, 0x10000, opt.devmem))==NULL) - { - ret=1; - goto exit_free; - } - - for(fp=0; fp<=0xFFF0; fp+=16) - { - if(memcmp(buf+fp, "_SM_", 4)==0 && fp<=0xFFE0) - { - if(smbios_decode(buf+fp, opt.devmem)) - found++; - fp+=16; - } - else if(memcmp(buf+fp, "_DMI_", 5)==0) - { - if (legacy_decode(buf+fp, opt.devmem)) - found++; - } - } - -done: - free(buf); - - if(!found && !(opt.flags & FLAG_QUIET)) - printf("# No SMBIOS nor DMI entry point found, sorry.\n"); - -exit_free: - free(opt.type); - - printf("%s\n", buffer); - return ret; +int main(int argc, char * const argv[]) { + bzero(buffer, 50000); + int r = submain(argc, argv); + printf("%s", buffer); + return r; } |