|  | #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. | 
|  | */ | 
|  |  | 
|  | #define	__LITTLE_ENDIAN		/* x86 */ | 
|  |  | 
|  | /* Taken from /usr/include/linux/hfs_sysdep.h */ | 
|  | #if defined(__BIG_ENDIAN) | 
|  | #	if !defined(__constant_htonl) | 
|  | #		define __constant_htonl(x) (x) | 
|  | #	endif | 
|  | #	if !defined(__constant_htons) | 
|  | #		define __constant_htons(x) (x) | 
|  | #	endif | 
|  | #elif defined(__LITTLE_ENDIAN) | 
|  | #	if !defined(__constant_htonl) | 
|  | #		define __constant_htonl(x) \ | 
|  | ((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \ | 
|  | (((unsigned long int)(x) & 0x0000ff00U) <<  8) | \ | 
|  | (((unsigned long int)(x) & 0x00ff0000U) >>  8) | \ | 
|  | (((unsigned long int)(x) & 0xff000000U) >> 24))) | 
|  | #	endif | 
|  | #	if !defined(__constant_htons) | 
|  | #		define __constant_htons(x) \ | 
|  | ((unsigned short int)((((unsigned short int)(x) & 0x00ff) << 8) | \ | 
|  | (((unsigned short int)(x) & 0xff00) >> 8))) | 
|  | #	endif | 
|  | #else | 
|  | #	error "Don't know if bytes are big- or little-endian!" | 
|  | #endif | 
|  |  | 
|  | #define ntohl(x) \ | 
|  | (__builtin_constant_p(x) ? \ | 
|  | __constant_htonl((x)) : \ | 
|  | __swap32(x)) | 
|  | #define htonl(x) \ | 
|  | (__builtin_constant_p(x) ? \ | 
|  | __constant_htonl((x)) : \ | 
|  | __swap32(x)) | 
|  | #define ntohs(x) \ | 
|  | (__builtin_constant_p(x) ? \ | 
|  | __constant_htons((x)) : \ | 
|  | __swap16(x)) | 
|  | #define htons(x) \ | 
|  | (__builtin_constant_p(x) ? \ | 
|  | __constant_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; | 
|  | } | 
|  |  | 
|  | /* Make routines available to all */ | 
|  | #define	swap32(x)	__swap32(x) | 
|  | #define	swap16(x)	__swap16(x) | 
|  |  | 
|  | #include "linux-asm-io.h" | 
|  |  | 
|  | 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: | 
|  | */ |