From 4c1e103424bf0c544ebd5bba2e2918a4988818b5 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 24 Nov 2010 17:42:30 +0100 Subject: [PATCH] Cleanup unused code. --- fireinfo/cpu.py | 9 -- fireinfo/system.py | 2 - src/fireinfo.c | 270 ++------------------------------------------- 3 files changed, 10 insertions(+), 271 deletions(-) diff --git a/fireinfo/cpu.py b/fireinfo/cpu.py index 2a07f5e..e479f99 100644 --- a/fireinfo/cpu.py +++ b/fireinfo/cpu.py @@ -8,7 +8,6 @@ PROC_CPUINFO = "/proc/cpuinfo" SYS_CLASS_CPUID = "/sys/class/cpuid/cpu%d" class CPU(object): - __info = _fireinfo.cpuinfo() __cpuinfo = {} def __init__(self): @@ -67,14 +66,6 @@ class CPU(object): def speed(self): return float(self.__cpuinfo["cpu_MHz"]) - @property - def hypervisor(self): - return self.__info["hypervisor"] - - @property - def virtype(self): - return self.__info["virtype"] - @property def family(self): return int(self.__cpuinfo["cpu_family"]) diff --git a/fireinfo/system.py b/fireinfo/system.py index 7355ab6..dc98b5f 100644 --- a/fireinfo/system.py +++ b/fireinfo/system.py @@ -49,8 +49,6 @@ class System(object): "flags" : self.cpu.flags, "bogomips" : self.cpu.bogomips, "speed" : self.cpu.speed, - "hypervisor" : self.cpu.hypervisor, - "virtype" : self.cpu.virtype, "family" : self.cpu.family, "count" : self.cpu.count } diff --git a/src/fireinfo.c b/src/fireinfo.c index fcc9720..d98844f 100644 --- a/src/fireinfo.c +++ b/src/fireinfo.c @@ -20,7 +20,6 @@ #include #include -#include /* Big parts of this were taken from @@ -28,11 +27,8 @@ */ /* /sys paths */ -#define _PATH_SYS_SYSTEM "/sys/devices/system" -#define _PATH_SYS_CPU _PATH_SYS_SYSTEM "/cpu" #define _PATH_PROC_XEN "/proc/xen" #define _PATH_PROC_XENCAP _PATH_PROC_XEN "/capabilities" -#define _PATH_PROC_CPUINFO "/proc/cpuinfo" #define _PATH_PROC_PCIDEVS "/proc/bus/pci/devices" /* virtualization types */ @@ -63,31 +59,6 @@ const char *hv_vendors[] = { [HYPER_VMWARE] = "VMWare" }; -/* CPU modes (bits) */ -enum { - MODE_REAL = (1 << 1), - MODE_TRANSPARENT = (1 << 2), - MODE_LONG = (1 << 3) -}; - -/* global description */ -struct lscpu_desc { - char *arch; - char *vendor; - char *family; - char *model; - char *virtflag; /* virtualization flag (vmx, svm) */ - int hyper; /* hypervisor vendor ID */ - int virtype; /* VIRT_PARA|FULL|NONE ? */ - char *mhz; - char *stepping; - char *bogomips; - char *flags; - int mode; /* rm, lm or/and tm */ - - int ncpus; /* number of CPUs */ -}; - struct hypervisor_desc { int hyper; /* hypervisor vendor ID */ int virtype; /* VIRT_PARA|FULL|NONE ? */ @@ -95,10 +66,9 @@ struct hypervisor_desc { static size_t sysrootlen; static char pathbuf[PATH_MAX]; -static int maxcpus; /* size in bits of kernel cpu mask */ -static FILE *path_fopen(const char *mode, int exit_on_err, const char *path, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); +static FILE *path_fopen(const char *mode, const char *path, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); static int path_exist(const char *path, ...) __attribute__ ((__format__ (__printf__, 1, 2))); @@ -114,52 +84,26 @@ path_vcreate(const char *path, va_list ap) } static FILE * -path_vfopen(const char *mode, int exit_on_error, const char *path, va_list ap) +path_vfopen(const char *mode, const char *path, va_list ap) { - FILE *f; const char *p = path_vcreate(path, ap); - f = fopen(p, mode); - if (!f && exit_on_error) - PyErr_SetString(PyExc_Exception, - (const char *)sprintf("error: cannot open %s", p)); - return f; + return fopen(p, mode); } static FILE * -path_fopen(const char *mode, int exit_on_error, const char *path, ...) +path_fopen(const char *mode, const char *path, ...) { FILE *fd; va_list ap; va_start(ap, path); - fd = path_vfopen(mode, exit_on_error, path, ap); + fd = path_vfopen(mode, path, ap); va_end(ap); return fd; } -static int -path_getnum(const char *path, ...) -{ - FILE *fd; - va_list ap; - int result; - - va_start(ap, path); - fd = path_vfopen("r", 1, path, ap); - va_end(ap); - - if (fscanf(fd, "%d", &result) != 1) { - if (ferror(fd)) - PyErr_SetString(PyExc_Exception, (const char *)sprintf("failed to read: %s", pathbuf)); - else - PyErr_SetString(PyExc_Exception, (const char *)sprintf("parse error: %s", pathbuf)); - } - fclose(fd); - return result; -} - static int path_exist(const char *path, ...) { @@ -173,115 +117,6 @@ path_exist(const char *path, ...) return access(p, F_OK) == 0; } -static char * -xstrdup(const char *str) -{ - char *s = strdup(str); - if (!s) - PyErr_SetString(PyExc_Exception, "error: strdup failed"); - return s; -} - -/* Lookup a pattern and get the value from cpuinfo. - * Format is: - * - * " : " - */ -int lookup(char *line, char *pattern, char **value) -{ - char *p, *v; - int len = strlen(pattern); - - if (!*line) - return 0; - - /* pattern */ - if (strncmp(line, pattern, len)) - return 0; - - /* white spaces */ - for (p = line + len; isspace(*p); p++); - - /* separator */ - if (*p != ':') - return 0; - - /* white spaces */ - for (++p; isspace(*p); p++); - - /* value */ - if (!*p) - return 0; - v = p; - - /* end of value */ - len = strlen(line) - 1; - for (p = line + len; isspace(*(p-1)); p--); - *p = '\0'; - - *value = xstrdup(v); - return 1; -} - -static void -read_basicinfo(struct lscpu_desc *desc) -{ - FILE *fp = path_fopen("r", 1, _PATH_PROC_CPUINFO); - char buf[BUFSIZ]; - struct utsname utsbuf; - - /* architecture */ - if (uname(&utsbuf) == -1) - PyErr_SetString(PyExc_Exception, "error: uname failed"); - desc->arch = xstrdup(utsbuf.machine); - - /* count CPU(s) */ - while(path_exist(_PATH_SYS_SYSTEM "/cpu/cpu%d", desc->ncpus)) - desc->ncpus++; - - /* details */ - while (fgets(buf, sizeof(buf), fp) != NULL) { - /* IA64 */ - if (lookup(buf, "vendor", &desc->vendor)) ; - else if (lookup(buf, "vendor_id", &desc->vendor)) ; - /* IA64 */ - else if (lookup(buf, "family", &desc->family)) ; - else if (lookup(buf, "cpu family", &desc->family)) ; - else if (lookup(buf, "model", &desc->model)) ; - else if (lookup(buf, "stepping", &desc->stepping)) ; - else if (lookup(buf, "cpu MHz", &desc->mhz)) ; - else if (lookup(buf, "flags", &desc->flags)) ; - else if (lookup(buf, "bogomips", &desc->bogomips)) ; - else - continue; - } - - if (desc->flags) { - snprintf(buf, sizeof(buf), " %s ", desc->flags); - if (strstr(buf, " svm ")) - desc->virtflag = strdup("svm"); - else if (strstr(buf, " vmx ")) - desc->virtflag = strdup("vmx"); - - if (strstr(buf, " rm ")) - desc->mode |= MODE_REAL; - if (strstr(buf, " tm ")) - desc->mode |= MODE_TRANSPARENT; - if (strstr(buf, " lm ")) - desc->mode |= MODE_LONG; - } - - fclose(fp); - - if (path_exist(_PATH_SYS_SYSTEM "/cpu/kernel_max")) - maxcpus = path_getnum(_PATH_SYS_SYSTEM "/cpu/kernel_max"); - - else - /* we are reading some /sys snapshot instead of the real /sys, - * let's use any crazy number... */ - maxcpus = desc->ncpus > 2048 ? desc->ncpus : 2048; -} - static int has_pci_device(int vendor, int device) { @@ -289,7 +124,7 @@ has_pci_device(int vendor, int device) int num, fn, ven, dev; int res = 1; - f = path_fopen("r", 0, _PATH_PROC_PCIDEVS); + f = path_fopen("r", _PATH_PROC_PCIDEVS); if (!f) return 0; @@ -340,7 +175,7 @@ cpuid(unsigned int op, unsigned int *eax, unsigned int *ebx, : "1" (op), "c"(0)); } -static int +static void read_hypervisor_cpuid(struct hypervisor_desc *desc) { unsigned int eax = 0, ebx = 0, ecx = 0, edx = 0; @@ -369,7 +204,7 @@ read_hypervisor_cpuid(struct hypervisor_desc *desc) #else /* ! __x86_64__ */ static void -read_hypervisor_cpuid(struct lscpu_desc *desc) +read_hypervisor_cpuid(struct hypervisor_desc *desc) { } #endif @@ -385,7 +220,7 @@ read_hypervisor(struct hypervisor_desc *desc) else if (path_exist(_PATH_PROC_XEN)) { /* Xen para-virt or dom0 */ - FILE *fd = path_fopen("r", 0, _PATH_PROC_XENCAP); + FILE *fd = path_fopen("r", _PATH_PROC_XENCAP); int dom0 = 0; if (fd) { @@ -422,90 +257,6 @@ is_virtualized() { return false; } -static PyObject * -do_cpuinfo() { - /* - This function collects information about the CPU. - */ - struct lscpu_desc _desc, *desc = &_desc; - memset(desc, 0, sizeof(*desc)); - - read_basicinfo(desc); - read_hypervisor(desc); - - PyObject *o = NULL; - PyObject *d = PyDict_New(); - - /* Arch */ - PyDict_SetItemString(d, "arch", PyString_FromString(desc->arch)); - - /* Vendor */ - PyDict_SetItemString(d, "vendor", PyString_FromString(desc->vendor)); - - /* Family */ - PyDict_SetItemString(d, "family", PyString_FromString(desc->family)); - - /* Model */ - PyDict_SetItemString(d, "model", PyString_FromString(desc->model)); - - /* Virtualization flag */ - if (desc->virtflag) { - o = PyString_FromString(desc->virtflag); - } else { - o = Py_None; - } - PyDict_SetItemString(d, "virtflag", o); - - /* Stepping */ - PyDict_SetItemString(d, "stepping", PyString_FromString(desc->stepping)); - - /* MHz */ - PyDict_SetItemString(d, "mhz", PyString_FromString(desc->mhz)); - - /* Bogomips */ - PyDict_SetItemString(d, "bogomips", PyString_FromString(desc->bogomips)); - - /* Flags */ - PyDict_SetItemString(d, "flags", PyString_FromString(desc->flags)); - - /* Mode */ - if (desc->mode & (MODE_REAL | MODE_TRANSPARENT | MODE_LONG)) { - o = PyList_New(0); - - if (desc->mode & MODE_REAL) { - PyList_Append(o, (PyObject *)PyInt_FromLong(16)); - } - if (desc->mode & MODE_TRANSPARENT) { - PyList_Append(o, (PyObject *)PyInt_FromLong(32)); - } - if (desc->mode & MODE_LONG) { - PyList_Append(o, (PyObject *)PyInt_FromLong(64)); - } - PyDict_SetItemString(d, "mode", o); - } - - /* Hypervisor */ - if (desc->hyper == HYPER_NONE) { - o = Py_None; - } else { - o = PyString_FromString((const char *)hv_vendors[desc->hyper]); - } - PyDict_SetItemString(d, "hypervisor", o); - - /* Virtualization type */ - if (desc->virtype == VIRT_NONE) { - o = Py_None; - } else { - o = PyString_FromString((const char *)virt_types[desc->virtype]); - } - PyDict_SetItemString(d, "virtype", o); - - /* Number of CPUs */ - PyDict_SetItemString(d, "ncpus", PyInt_FromLong(desc->ncpus)); - - return d; -} - static PyObject * do_get_hypervisor() { /* @@ -551,7 +302,6 @@ do_is_virtualized() { } static PyMethodDef fireinfoModuleMethods[] = { - { "cpuinfo", (PyCFunction) do_cpuinfo, METH_NOARGS, NULL }, { "get_hypervisor", (PyCFunction) do_get_hypervisor, METH_NOARGS, NULL }, { "is_virtualized", (PyCFunction) do_is_virtualized, METH_NOARGS, NULL }, { NULL, NULL, 0, NULL } -- 2.39.2