1 /*- 2 * Cronyx DDK: platform dependent definitions. 3 * 4 * Copyright (C) 1998-1999 Cronyx Engineering 5 * Author: Alexander Kvitchenko, <aak@cronyx.ru> 6 * 7 * Copyright (C) 2001-2003 Cronyx Engineering. 8 * Author: Roman Kurakin, <rik@cronyx.ru> 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: stable/9/sys/dev/cx/machdep.h 143063 2005-03-02 21:33:29Z joerg $ 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> __ddk_outb(unsigned port,unsigned char byte)57 static inline void __ddk_outb (unsigned port, unsigned char byte) 58 { outb (byte, port); } __ddk_outw(unsigned port,unsigned short word)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 memset(a,b,c) bzero (a,c) 77 # define port_t int 78 79 #ifndef _SYS_CDEFS_H_ 80 #error this file needs sys/cdefs.h as a prerequisite 81 #endif 82 #endif 83 84 #endif 85 #endif 86 #endif 87 88 #ifndef inline 89 # ifdef __CC_SUPPORTS___INLINE__ 90 # define inline __inline__ 91 # else 92 # define inline /**/ 93 # endif 94 #endif 95 96 #ifndef ulong64 97 #define ulong64 unsigned long long 98 #endif 99