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 |