17a5ec427Smrg#ifdef __NetBSD__ 27a5ec427Smrg# include <sys/types.h> 37a5ec427Smrg# include <machine/pio.h> 47a5ec427Smrg# include <machine/sysarch.h> 57a5ec427Smrg#else 67a5ec427Smrg# if defined(__linux__) 77a5ec427Smrg/* Can't because <sys/iopl.h> provides conflicting inb, outb, etc 87a5ec427Smrg * # include <sys/io.h> 97a5ec427Smrg */ 107a5ec427Smrgint iopl(int level); 117a5ec427Smrg# endif 1244256261Smrg# if defined(SVR4) && defined(i386) && defined(sun) 137a5ec427Smrg# include <sys/types.h> 1444256261Smrg# include <sys/sysi86.h> 157a5ec427Smrg# include <sys/v86.h> 1644256261Smrg# include <sys/psw.h> 177a5ec427Smrg# endif 187a5ec427Smrg# include "AsmMacros.h" 197a5ec427Smrg#endif /* NetBSD */ 207a5ec427Smrg 217a5ec427Smrg#include <unistd.h> 227a5ec427Smrg#include <stdio.h> 237a5ec427Smrg#include <stdlib.h> 247a5ec427Smrg 257a5ec427Smrg#ifdef __NetBSD__ 267a5ec427Smrg# define SET_IOPL() i386_iopl(3) 277a5ec427Smrg# define RESET_IOPL() i386_iopl(0) 287a5ec427Smrg#else 297a5ec427Smrg# if defined(SVR4) && defined(i386) 307a5ec427Smrg# ifndef SI86IOPL 317a5ec427Smrg# define SET_IOPL() sysi86(SI86V86,V86SC_IOPL,PS_IOPL) 327a5ec427Smrg# define RESET_IOPL() sysi86(SI86V86,V86SC_IOPL,0) 337a5ec427Smrg# else 347a5ec427Smrg# define SET_IOPL() sysi86(SI86IOPL,3) 357a5ec427Smrg# define RESET_IOPL() sysi86(SI86IOPL,0) 367a5ec427Smrg# endif 377a5ec427Smrg# else 387a5ec427Smrg# ifdef linux 397a5ec427Smrg# define SET_IOPL() iopl(3) 407a5ec427Smrg# define RESET_IOPL() iopl(0) 417a5ec427Smrg# else 427a5ec427Smrg# define SET_IOPL() (void)0 437a5ec427Smrg# define RESET_IOPL() (void)0 447a5ec427Smrg# endif 457a5ec427Smrg# endif 467a5ec427Smrg#endif 47