#ifndef __PARITY_H
#define __PARITY_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#include <stdint.h>
extern const uint8_t OddByteParity[256];
-
-#define oddparity8(x) (OddByteParity[(x)])
-
-
extern const uint8_t EvenByteParity[256];
-static inline bool /*__attribute__((always_inline))*/ evenparity8(const uint8_t x) {
-#if !defined __i386__ || !defined __GNUC__
- return EvenByteParity[x];
-#else
- uint8_t y;
- __asm( "testb $255, %1\n"
- "setpo %0\n" : "=r"(y) : "r"(x): );
- return y;
-#endif
+static inline uint8_t oddparity8(uint8_t bt)
+{
+ return OddByteParity[bt];
}
+static inline uint8_t evenparity8(const uint8_t bt)
+{
+ return EvenByteParity[bt];
+}
static inline uint8_t evenparity32(uint32_t x)
{
return EvenByteParity[x & 0xff];
}
+#ifdef __cplusplus
+}
+#endif
#endif /* __PARITY_H */