X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fi386-io-hurd.h;h=000fd4204ac669fa681034798b96922bde7328ef;hb=0766bfa0f557430a6dd3256d45a5b756499f9f7b;hp=6433886664e7b152b91084804686780049d31367;hpb=bd20d5b5a916e050d280bb4a67e77252d2034445;p=pciutils.git diff --git a/lib/i386-io-hurd.h b/lib/i386-io-hurd.h index 6433886..000fd42 100644 --- a/lib/i386-io-hurd.h +++ b/lib/i386-io-hurd.h @@ -5,44 +5,29 @@ * 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(void) +intel_setup_io(struct pci_access *a UNUSED) { - mach_port_t device; - - if ((errno = get_privileged_ports(NULL, &device))) - perror("intel_setup_io() can't get_privileged_ports()"); - - if (!errno && (errno = device_open(device, D_READ | D_WRITE, "io", &io_port))) - perror("intel_setup_io() can't device_open()"); - - mach_port_deallocate(mach_task_self(), device); - - if (!errno && (errno = i386_io_port_add(mach_thread_self(), io_port))) - perror("intel_setup_io() can't i386_io_port_add()"); - - return errno ? 0 : 1; + return (ioperm (0, 65535, 1) == -1) ? 0 : 1; } static inline void -intel_cleanup_io(void) +intel_cleanup_io(struct pci_access *a UNUSED) +{ + ioperm (0, 65535, 0); +} + +static inline void intel_io_lock(void) { - if ((errno = i386_io_port_remove(mach_thread_self(), io_port))) - perror("intel_cleanup_io() can't i386_io_port_remove()"); +} - mach_port_deallocate(mach_task_self(), io_port); +static inline void intel_io_unlock(void) +{ }