X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fi386-io-hurd.h;h=b61d65617135dd629100f88f0ed7c85844dee24f;hb=d45531756b426fb883e78deb412be3c031bb7675;hp=334ce0a16f2271cfcad5bce553d823c1a14a1b61;hpb=4254d153e43d50bd8300d8be06b46a5d9e3982b0;p=pciutils.git diff --git a/lib/i386-io-hurd.h b/lib/i386-io-hurd.h index 334ce0a..b61d656 100644 --- a/lib/i386-io-hurd.h +++ b/lib/i386-io-hurd.h @@ -5,46 +5,23 @@ * Copyright (c) 2003 Martin Mares * Copyright (c) 2006 Samuel Thibault and * Thomas Schwinge + * Copyright (c) 2007 Thomas Schwinge * * Can be freely distributed and used under the terms of the GNU GPL. */ #include -#include -#include -#include - -#include - -static mach_port_t io_port; - static inline int -intel_setup_io(struct pci_access *a) +intel_setup_io(struct pci_access *a UNUSED) { - mach_port_t device; - - if ((errno = get_privileged_ports(NULL, &device))) - a->warning("i386-io-hurd: Can't get_privileged_ports(): %m"); - - if (!errno && (errno = device_open(device, D_READ | D_WRITE, "io", &io_port))) - a->warning("i386-io-hurd: Can't device_open(): %m"); - - mach_port_deallocate(mach_task_self(), device); - - if (!errno && (errno = i386_io_port_add(mach_thread_self(), io_port))) - a->warning("i386-io-hurd: Can't i386_io_port_add(): %m"); - - return errno ? 0 : 1; + return (ioperm (0, 65535, 1) == -1) ? 0 : 1; } static inline int -intel_cleanup_io(struct pci_access *a) +intel_cleanup_io(struct pci_access *a UNUSED) { - if ((errno = i386_io_port_remove(mach_thread_self(), io_port))) - a->warning("i386-io-hurd: Can't i386_io_port_remove(): %m"); - - mach_port_deallocate(mach_task_self(), io_port); + ioperm (0, 65535, 0); return -1; }