]> mj.ucw.cz Git - pciutils.git/blobdiff - lib/sysdep.h
CXL: Capability vendor ID changed
[pciutils.git] / lib / sysdep.h
index a54222f6bb1f8023706695874193b2734f811e04..1a5cb16c82df9b6c1a8f0ccb22db22313e0f9fdf 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *     The PCI Library -- System-Dependent Stuff
  *
- *     Copyright (c) 1997--2004 Martin Mares <mj@ucw.cz>
+ *     Copyright (c) 1997--2020 Martin Mares <mj@ucw.cz>
  *
  *     Can be freely distributed and used under the terms of the GNU GPL.
  */
@@ -9,9 +9,11 @@
 #ifdef __GNUC__
 #define UNUSED __attribute__((unused))
 #define NONRET __attribute__((noreturn))
+#define FORMAT_CHECK(x,y,z) __attribute__((format(x,y,z)))
 #else
 #define UNUSED
 #define NONRET
+#define FORMAT_CHECK(x,y,z)
 #define inline
 #endif
 
@@ -19,7 +21,6 @@ typedef u8 byte;
 typedef u16 word;
 
 #ifdef PCI_OS_WINDOWS
-#define bzero(x,y) memset(x,0,y)
 #define strcasecmp strcmpi
 #endif
 
@@ -41,13 +42,21 @@ typedef u16 word;
 
 #ifdef PCI_OS_SUNOS
 #include <sys/byteorder.h>
+#if defined(__i386) && defined(LITTLE_ENDIAN)
+# define BYTE_ORDER LITTLE_ENDIAN
+#elif defined(__sparc) && defined(BIG_ENDIAN)
+# define BYTE_ORDER BIG_ENDIAN
+#else
 #define BIG_ENDIAN 4321
+#endif
+#ifndef BYTE_ORDER
 #ifdef _LITTLE_ENDIAN
 #define BYTE_ORDER 1234
 #else
 #define BYTE_ORDER 4321
 #endif
-#endif
+#endif /* BYTE_ORDER */
+#endif /* PCI_OS_SUNOS */
 
 #ifdef PCI_OS_WINDOWS
 #ifdef __MINGW32__
@@ -61,6 +70,20 @@ typedef u16 word;
 #endif
 #endif
 
+#ifdef PCI_OS_SYLIXOS
+#include <endian.h>
+#endif
+
+#ifdef PCI_OS_DJGPP
+  #define BIG_ENDIAN 4321
+  #define LITTLE_ENDIAN        1234
+  #define BYTE_ORDER LITTLE_ENDIAN
+#endif
+
+#if !defined(BYTE_ORDER)
+#error "BYTE_ORDER not defined for your platform"
+#endif
+
 #if BYTE_ORDER == BIG_ENDIAN
 #define cpu_to_le16 swab16
 #define cpu_to_le32 swab32