]> mj.ucw.cz Git - pciutils.git/blobdiff - lib/i386-ports.c
Released as 2.1.99-test4.
[pciutils.git] / lib / i386-ports.c
index a78d98b6f1c005dad3fdf38cd27d460770f43cb5..ada1ee1c5accea0a475598b05413b1415c397088 100644 (file)
@@ -1,32 +1,24 @@
 /*
- *     $Id: i386-ports.c,v 1.2 2000/01/24 15:36:09 mj Exp $
- *
  *     The PCI Library -- Direct Configuration access via i386 Ports
  *
- *     Copyright (c) 1997--1999 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
+ *     Copyright (c) 1997--2003 Martin Mares <mj@ucw.cz>
  *
  *     Can be freely distributed and used under the terms of the GNU GPL.
  */
 
 #include <unistd.h>
 
-#ifdef __GLIBC__
-#include <sys/io.h>
-#else
-#include <asm/io.h>
-#endif
-
 #include "internal.h"
 
-static int intel_iopl_set = -1;
-
-static int
-intel_setup_io(void)
-{
-  if (intel_iopl_set < 0)
-    intel_iopl_set = (iopl(3) < 0) ? 0 : 1;
-  return intel_iopl_set;
-}
+#if defined(OS_LINUX)
+#include "i386-io-linux.h"
+#elif defined(OS_GNU)
+#include "i386-io-hurd.h"
+#elif defined(OS_SunOS)
+#include "i386-io-sunos.h"
+#else
+#error Do not know how to access I/O ports on this OS.
+#endif
 
 static void
 conf12_init(struct pci_access *a)
@@ -36,10 +28,9 @@ conf12_init(struct pci_access *a)
 }
 
 static void
-conf12_cleanup(struct pci_access * UNUSED a)
+conf12_cleanup(struct pci_access *a UNUSED)
 {
-  iopl(3);
-  intel_iopl_set = -1;
+  intel_cleanup_io();
 }
 
 /*