diff options
Diffstat (limited to 'edd/pyedd.c')
-rw-r--r-- | edd/pyedd.c | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/edd/pyedd.c b/edd/pyedd.c deleted file mode 100644 index 75aa98854..000000000 --- a/edd/pyedd.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * pyedd.c - real mode bios library for discovering EDD capabilities of - * BIOS drives - * - * Matt Wilson <msw@redhat.com> - * - * Copyright 2000 Red Hat, Inc. - * - * This software may be freely redistributed under the terms of the GNU - * library public license. - * - * You should have received a copy of the GNU Library Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include "edd.h" - -#include <sys/wait.h> -#include <sys/resource.h> -#include <unistd.h> - -#include <Python.h> - -static PyObject * edd_py_detect (PyObject * s, PyObject * args); - -static PyMethodDef edd_module_methods[] = { - { "detect", (PyCFunction) edd_py_detect, METH_VARARGS, NULL }, - { NULL } -}; - -static PyObject * -edd_py_detect (PyObject * s, PyObject * args) { - EDDCapability *ec; - int device = 0x80; - pid_t childpid; - int status; - - if (!PyArg_ParseTuple(args, "|i", &device)) - return NULL; - - /* Run this probe as a child as it sometimes segv's in the vm stuff. - The child returns 1 if edd works, and 0 if it doesn't. */ - - if (!(childpid = fork())) { - /* lets not drop core file if we do segv */ - struct rlimit lims; - - lims.rlim_cur = 0; - setrlimit(RLIMIT_CORE, &lims); - - if ((ec = edd_supported(device))) { - free (ec); - _exit(1); - } - - _exit(0); - } - - waitpid(childpid, &status, 0); - - if (WIFEXITED(status) && WEXITSTATUS(status)) - return Py_BuildValue ("i", 1); - - return Py_BuildValue ("i", 0); -} - -void initedd (void) { - Py_InitModule("edd", edd_module_methods); -} |