Annotation of embedaddon/pciutils/lib/sysdep.h, revision 1.1

1.1     ! misho       1: /*
        !             2:  *     The PCI Library -- System-Dependent Stuff
        !             3:  *
        !             4:  *     Copyright (c) 1997--2004 Martin Mares <mj@ucw.cz>
        !             5:  *
        !             6:  *     Can be freely distributed and used under the terms of the GNU GPL.
        !             7:  */
        !             8: 
        !             9: #ifdef __GNUC__
        !            10: #define UNUSED __attribute__((unused))
        !            11: #define NONRET __attribute__((noreturn))
        !            12: #else
        !            13: #define UNUSED
        !            14: #define NONRET
        !            15: #define inline
        !            16: #endif
        !            17: 
        !            18: typedef u8 byte;
        !            19: typedef u16 word;
        !            20: 
        !            21: #ifdef PCI_OS_WINDOWS
        !            22: #define strcasecmp strcmpi
        !            23: #endif
        !            24: 
        !            25: #ifdef PCI_HAVE_LINUX_BYTEORDER_H
        !            26: 
        !            27: #include <asm/byteorder.h>
        !            28: #define cpu_to_le16 __cpu_to_le16
        !            29: #define cpu_to_le32 __cpu_to_le32
        !            30: #define le16_to_cpu __le16_to_cpu
        !            31: #define le32_to_cpu __le32_to_cpu
        !            32: 
        !            33: #else
        !            34: 
        !            35: #ifdef PCI_OS_LINUX
        !            36: #include <endian.h>
        !            37: #define BYTE_ORDER __BYTE_ORDER
        !            38: #define BIG_ENDIAN __BIG_ENDIAN
        !            39: #endif
        !            40: 
        !            41: #ifdef PCI_OS_SUNOS
        !            42: #include <sys/byteorder.h>
        !            43: #define BIG_ENDIAN 4321
        !            44: #ifdef _LITTLE_ENDIAN
        !            45: #define BYTE_ORDER 1234
        !            46: #else
        !            47: #define BYTE_ORDER 4321
        !            48: #endif
        !            49: #endif
        !            50: 
        !            51: #ifdef PCI_OS_WINDOWS
        !            52: #ifdef __MINGW32__
        !            53:   #include <sys/param.h>
        !            54: #else
        !            55:   #include <io.h>
        !            56:   #define BIG_ENDIAN 4321
        !            57:   #define LITTLE_ENDIAN        1234
        !            58:   #define BYTE_ORDER LITTLE_ENDIAN
        !            59:   #define snprintf _snprintf
        !            60: #endif
        !            61: #endif
        !            62: 
        !            63: #if BYTE_ORDER == BIG_ENDIAN
        !            64: #define cpu_to_le16 swab16
        !            65: #define cpu_to_le32 swab32
        !            66: #define le16_to_cpu swab16
        !            67: #define le32_to_cpu swab32
        !            68: 
        !            69: static inline word swab16(word w)
        !            70: {
        !            71:   return (w << 8) | ((w >> 8) & 0xff);
        !            72: }
        !            73: 
        !            74: static inline u32 swab32(u32 w)
        !            75: {
        !            76:   return ((w & 0xff000000) >> 24) |
        !            77:          ((w & 0x00ff0000) >> 8) |
        !            78:          ((w & 0x0000ff00) << 8)  |
        !            79:          ((w & 0x000000ff) << 24);
        !            80: }
        !            81: #else
        !            82: #define cpu_to_le16(x) (x)
        !            83: #define cpu_to_le32(x) (x)
        !            84: #define le16_to_cpu(x) (x)
        !            85: #define le32_to_cpu(x) (x)
        !            86: #endif
        !            87: 
        !            88: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>