source: mainline/uspace/app/lspci/libpci/sysdep.h@ 24f27bb

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
20typedef u8 byte;
21typedef u16 word;
22
23static inline void swap(u8 *x, u8 *y)
24{
25 u8 z = *x;
26 *x = *y;
27 *y = z;
28}
29
30static inline u16 invert_endianess_16(u16 x)
31{
32 u8 *px = (u8 *)&x;
33 swap(&px[0], &px[1]);
34 return x;
35}
36
37static 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.