|  | #ifndef	__OSDEP_H__ | 
|  | #define __OSDEP_H__ | 
|  |  | 
|  | /* | 
|  | * This program is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU General Public License as | 
|  | * published by the Free Software Foundation; either version 2, or (at | 
|  | * your option) any later version. | 
|  | */ | 
|  |  | 
|  | #if	defined(__linux__) || defined(__FreeBSD__) || defined(GRUB) | 
|  | #define	ETHERBOOT32 | 
|  | #define ntohl(x) swap32(x) | 
|  | #define htonl(x) swap32(x) | 
|  | #define ntohs(x) swap16(x) | 
|  | #define htons(x) swap16(x) | 
|  |  | 
|  | static inline unsigned long int swap32(unsigned long int x) | 
|  | { | 
|  | __asm__("xchgb %b0,%h0\n\t" | 
|  | "rorl $16,%0\n\t" | 
|  | "xchgb %b0,%h0" | 
|  | : "=q" (x) | 
|  | : "0" (x)); | 
|  | return x; | 
|  | } | 
|  |  | 
|  | static inline unsigned short int swap16(unsigned short int x) | 
|  | { | 
|  | __asm__("xchgb %b0,%h0" | 
|  | : "=q" (x) | 
|  | : "0" (x)); | 
|  | return x; | 
|  | } | 
|  |  | 
|  | #ifndef GRUB | 
|  | # include "linux-asm-string.h" | 
|  | #endif /* ! GRUB */ | 
|  | #include "linux-asm-io.h" | 
|  | #ifndef GRUB | 
|  | #define	_edata	edata			/* ELF does not prepend a _ */ | 
|  | #define	_end	end | 
|  | #endif /* ! GRUB */ | 
|  | #endif | 
|  |  | 
|  | #ifdef	__BCC__ | 
|  | #define	ETHERBOOT16 | 
|  | #define	inline | 
|  | #define	const | 
|  | #define	volatile | 
|  | #define	setjmp	_setjmp		/* they are that way in libc.a */ | 
|  | #define	longjmp	_longjmp | 
|  |  | 
|  | /* BCC include files are missing these. */ | 
|  | typedef unsigned char u_char; | 
|  | typedef unsigned short u_short; | 
|  | typedef unsigned int u_int; | 
|  | typedef unsigned long u_long; | 
|  | #endif | 
|  |  | 
|  | #if	!defined(ETHERBOOT16) && !defined(ETHERBOOT32) | 
|  | Error, neither ETHERBOOT16 nor ETHERBOOT32 defined | 
|  | #endif | 
|  |  | 
|  | #if	defined(ETHERBOOT16) && defined(ETHERBOOT32) | 
|  | Error, both ETHERBOOT16 and ETHERBOOT32 defined | 
|  | #endif | 
|  |  | 
|  | typedef	unsigned long Address; | 
|  |  | 
|  | /* ANSI prototyping macro */ | 
|  | #ifdef	__STDC__ | 
|  | #define	P(x)	x | 
|  | #else | 
|  | #define	P(x)	() | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  | /* | 
|  | * Local variables: | 
|  | *  c-basic-offset: 8 | 
|  | * End: | 
|  | */ |