Subversion Repositories HelenOS

Rev

Rev 3022 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3022 Rev 4242
Line 18... Line 18...
18
#endif
18
#endif
19
 
19
 
20
typedef u8 byte;
20
typedef u8 byte;
21
typedef u16 word;
21
typedef u16 word;
22
 
22
 
-
 
23
static inline void swap(u8 *x, u8 *y)
-
 
24
{
-
 
25
    u8 z = *x;
-
 
26
    *x = *y;
-
 
27
    *y = z;
-
 
28
}
-
 
29
 
-
 
30
static inline u16 invert_endianess_16(u16 x)
-
 
31
{
-
 
32
    u8 *px = (u8 *)&x;
-
 
33
    swap(&px[0], &px[1]);
-
 
34
    return x;
-
 
35
}
-
 
36
 
-
 
37
static inline u32 invert_endianess_32(u32 x)
-
 
38
{
-
 
39
    u8 *px = (u8 *)&x;
-
 
40
    swap(&px[0], &px[3]);
-
 
41
    swap(&px[1], &px[2]);
-
 
42
    return x;
-
 
43
}
-
 
44
 
-
 
45
#ifdef UARCH_sparc64
-
 
46
    #define cpu_to_le16(x) (invert_endianess_16(x))
-
 
47
    #define cpu_to_le32(x) (invert_endianess_32(x))
-
 
48
    #define le16_to_cpu(x) (invert_endianess_16(x))
-
 
49
    #define le32_to_cpu(x) (invert_endianess_32(x))
-
 
50
#else
23
#define cpu_to_le16(x) (x)
51
    #define cpu_to_le16(x) (x)
24
#define cpu_to_le32(x) (x)
52
    #define cpu_to_le32(x) (x)
25
#define le16_to_cpu(x) (x)
53
    #define le16_to_cpu(x) (x)
26
#define le32_to_cpu(x) (x)
54
    #define le32_to_cpu(x) (x)
-
 
55
#endif