1 /*- 2 * Cronyx DDK: platform dependent definitions. 3 * 4 * Copyright (C) 1998-1999 Cronyx Engineering 5 * Author: Alexander Kvitchenko, <[email protected]> 6 * 7 * Copyright (C) 2001-2003 Cronyx Engineering. 8 * Author: Roman Kurakin, <[email protected]> 9 * 10 * This software is distributed with NO WARRANTIES, not even the implied 11 * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 * 13 * Authors grant any other persons or organisations permission to use 14 * or modify this software as long as this message is kept with the software, 15 * all derivative works or modified versions. 16 * 17 * Cronyx Id: machdep.h,v 1.3.4.3 2003/11/27 14:21:58 rik Exp $ 18 * $FreeBSD$ 19 */ 20 21 /* 22 * DOS (Borland Turbo C++ 1.0) 23 */ 24 #if defined (MSDOS) || defined (__MSDOS__) 25 # include <dos.h> 26 # include <string.h> 27 # define inb(port) inportb(port) 28 # define inw(port) inport(port) 29 # define outb(port,b) outportb(port,b) 30 # define outw(port,w) outport(port,w) 31 # define GETTICKS() biostime(0,0L) 32 #else 33 34 /* 35 * Windows NT 36 */ 37 #ifdef NDIS_MINIPORT_DRIVER 38 # include <string.h> 39 # define inb(port) inp((unsigned short)(port)) 40 # define inw(port) inpw((unsigned short)(port)) 41 # define outb(port,b) outp((unsigned short)(port),b) 42 # define outw(port,w) outpw((unsigned short)(port),(unsigned short)(w)) 43 #pragma warning (disable: 4761) 44 #pragma warning (disable: 4242) 45 #pragma warning (disable: 4244) 46 #define ulong64 unsigned __int64 47 #else 48 49 /* 50 * Linux 51 */ 52 #ifdef __linux__ 53 # undef REALLY_SLOW_IO 54 # include <asm/io.h> /* should swap outb() arguments */ 55 # include <linux/string.h> 56 # include <linux/delay.h> 57 static inline void __ddk_outb (unsigned port, unsigned char byte) 58 { outb (byte, port); } 59 static inline void __ddk_outw (unsigned port, unsigned short word) 60 { outw (word, port); } 61 # undef outb 62 # undef outw 63 # define outb(port,val) __ddk_outb(port, val) 64 # define outw(port,val) __ddk_outw(port, val) 65 # define GETTICKS() (jiffies * 200 / 11 / HZ) 66 #else 67 68 /* 69 * FreeBSD and BSD/OS 70 */ 71 #ifdef __FreeBSD__ 72 # include <sys/param.h> 73 # include <machine/cpufunc.h> 74 # include <sys/libkern.h> 75 # include <sys/systm.h> 76 # define port_t int 77 78 #ifndef _SYS_CDEFS_H_ 79 #error this file needs sys/cdefs.h as a prerequisite 80 #endif 81 #endif 82 83 #endif 84 #endif 85 #endif 86 87 #ifndef inline 88 # ifdef __CC_SUPPORTS___INLINE__ 89 # define inline __inline__ 90 # else 91 # define inline /**/ 92 # endif 93 #endif 94 95 #ifndef ulong64 96 #define ulong64 unsigned long long 97 #endif 98