summaryrefslogtreecommitdiffstats
path: root/dmidecodebin.c
blob: 3b1a438cf59cd479de606212cbb11d1808dab0f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//. This file now produces the executable `dmidecode', and dynamically links
//. against libdmidecode.so.
#include <Python.h>

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>

#include "version.h"
#include "config.h"
#include "types.h"
#include "util.h"
#include "dmidecode.h"
#include "dmiopt.h"
#include "dmioem.h"

#define EFI_NOT_FOUND   (-1)
#define EFI_NO_SMBIOS   (-2)

#include "dmihelper.h"

extern const char *dmi_dump(struct dmi_header *h, char *_);
//extern void dmi_decode(struct dmi_header *h, u16 ver, PyObject *pydata);
extern PyObject *dmi_decode(struct dmi_header *h, u16 ver);
extern int address_from_efi(size_t *address, char *_);
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, PyObject* pydata);
extern int legacy_decode(u8 *buf, const char *devmem, PyObject* pydata);
extern int submain(int argc, char * const argv[]);

int main(int argc, char * const argv[]) {
  char buffer[50000];
  bzero(buffer, 50000);
  int r = submain(argc, argv);
  printf("%s", buffer);
  return r;
}