Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4973 right-hear 1
#ifndef _I386_BYTEORDER_H
2
#define _I386_BYTEORDER_H
3
 
4
#include 
5
#include __DEV_CONFIG_H
6
 
7
#ifdef __GNUC__
8
 
9
static __inline__ __const__ __u32 ___arch__swab32(__u32 x)
10
{
11
#ifdef CONFIG_X86_BSWAP
12
	__asm__("bswap %0" : "=r" (x) : "0" (x));
13
#else
14
	__asm__("xchgb %b0,%h0\n\t"	/* swap lower bytes	*/
15
		"rorl $16,%0\n\t"	/* swap words		*/
16
		"xchgb %b0,%h0"		/* swap higher bytes	*/
17
		:"=q" (x)
18
		: "0" (x));
19
#endif
20
	return x;
21
}
22
 
23
static __inline__ __const__ __u16 ___arch__swab16(__u16 x)
24
{
25
	__asm__("xchgb %b0,%h0"		/* swap bytes		*/ \
26
		: "=q" (x) \
27
		:  "0" (x)); \
28
		return x;
29
}
30
 
31
#define __arch__swab32(x) ___arch__swab32(x)
32
#define __arch__swab16(x) ___arch__swab16(x)
33
 
34
#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
35
#  define __BYTEORDER_HAS_U64__
36
#  define __SWAB_64_THRU_32__
37
#endif
38
 
39
#endif /* __GNUC__ */
40
 
41
#include 
42
 
43
#endif /* _I386_BYTEORDER_H */