lfn
serial
ticket/834-toolchain-update
topic/msim-upgrade
topic/simplify-dev-export
Last change
on this file since 24f27bb was cb0ea39, checked in by Lenka Trochtova <trochtova.lenka@…>, 16 years ago |
dd: initial import of the original svn branch
|
-
Property mode
set to
100644
|
File size:
1.1 KB
|
Line | |
---|
1 | /*
|
---|
2 | * The PCI Library -- System-Dependent Stuff
|
---|
3 | *
|
---|
4 | * Copyright (c) 1997--2004 Martin Mares <mj@ucw.cz>
|
---|
5 | *
|
---|
6 | * May 8, 2006 - Modified and ported to HelenOS by Jakub Jermar.
|
---|
7 | *
|
---|
8 | * Can be freely distributed and used under the terms of the GNU GPL.
|
---|
9 | */
|
---|
10 |
|
---|
11 | #ifdef __GNUC__
|
---|
12 | #define UNUSED __attribute__((unused))
|
---|
13 | #define NONRET __attribute__((noreturn))
|
---|
14 | #else
|
---|
15 | #define UNUSED
|
---|
16 | #define NONRET
|
---|
17 | #define inline
|
---|
18 | #endif
|
---|
19 |
|
---|
20 | typedef u8 byte;
|
---|
21 | typedef u16 word;
|
---|
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
|
---|
51 | #define cpu_to_le16(x) (x)
|
---|
52 | #define cpu_to_le32(x) (x)
|
---|
53 | #define le16_to_cpu(x) (x)
|
---|
54 | #define le32_to_cpu(x) (x)
|
---|
55 | #endif
|
---|
Note:
See
TracBrowser
for help on using the repository browser.