1#ifdef __NetBSD__ 2# include <sys/types.h> 3# include <machine/pio.h> 4# include <machine/sysarch.h> 5#else 6# if defined(__linux__) 7/* Can't because <sys/iopl.h> provides conflicting inb, outb, etc 8 * # include <sys/io.h> 9 */ 10int iopl(int level); 11# endif 12# if defined(SVR4) && defined(i386) && defined(sun) 13# include <sys/types.h> 14# include <sys/sysi86.h> 15# include <sys/v86.h> 16# include <sys/psw.h> 17# endif 18# include "AsmMacros.h" 19#endif /* NetBSD */ 20 21#include <unistd.h> 22#include <stdio.h> 23#include <stdlib.h> 24 25#ifdef __NetBSD__ 26# define SET_IOPL() i386_iopl(3) 27# define RESET_IOPL() i386_iopl(0) 28#else 29# if defined(SVR4) && defined(i386) 30# ifndef SI86IOPL 31# define SET_IOPL() sysi86(SI86V86,V86SC_IOPL,PS_IOPL) 32# define RESET_IOPL() sysi86(SI86V86,V86SC_IOPL,0) 33# else 34# define SET_IOPL() sysi86(SI86IOPL,3) 35# define RESET_IOPL() sysi86(SI86IOPL,0) 36# endif 37# else 38# ifdef linux 39# define SET_IOPL() iopl(3) 40# define RESET_IOPL() iopl(0) 41# else 42# define SET_IOPL() (void)0 43# define RESET_IOPL() (void)0 44# endif 45# endif 46#endif 47