Differences From Artifact [776fab6bc8]:
- File
src/OFMacros.h
— part of check-in
[5903c87d36]
at
2009-08-17 21:13:21
on branch trunk
— Ensure in the headers that we got the required definitions.
This prevents compiling stuff using libobjfw without objfw-config,
which could generate strange bugs. (user: js, size: 1460) [annotate] [blame] [check-ins using]
To Artifact [f80e6add7a]:
- File src/OFMacros.h — part of check-in [c38fc9bb14] at 2009-08-28 00:05:24 on branch trunk — Add OF_BSWAP{16,32,64}. (user: js, size: 2052) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | */ #ifndef OF_CONFIGURED #error You are missing the libobjfw definitions! #error Please use objfw-config! #endif #ifdef __GNUC__ #define OF_INLINE inline __attribute__((always_inline)) #define OF_LIKELY(cond) __builtin_expect(!!(cond), 1) #define OF_UNLIKELY(cond) __builtin_expect(!!(cond), 0) #else #define OF_INLINE inline #define OF_LIKELY(cond) cond #define OF_UNLIKELY(cond) cond #endif | > > > | > > > > > | > > | > > > > > > > | | > > > > > > > > > > > > > | | < < | | < < | | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | */ #ifndef OF_CONFIGURED #error You are missing the libobjfw definitions! #error Please use objfw-config! #endif #include <stdint.h> #ifdef __GNUC__ #define OF_INLINE inline __attribute__((always_inline)) #define OF_LIKELY(cond) __builtin_expect(!!(cond), 1) #define OF_UNLIKELY(cond) __builtin_expect(!!(cond), 0) #else #define OF_INLINE inline #define OF_LIKELY(cond) cond #define OF_UNLIKELY(cond) cond #endif static OF_INLINE uint16_t OF_BSWAP16(uint16_t i) { i = (i & UINT16_C(0xFF00)) >> 8 | (i & UINT16_C(0x00FF)) << 8; return i; } static OF_INLINE uint32_t OF_BSWAP32(uint32_t i) { i = (i & UINT32_C(0xFF000000)) >> 24 | (i & UINT32_C(0x00FF0000)) >> 8 | (i & UINT32_C(0x0000FF00)) << 8 | (i & UINT32_C(0x000000FF)) << 24; return i; } static OF_INLINE uint64_t OF_BSWAP64(uint64_t i) { i = (i & UINT64_C(0xFF00000000000000)) >> 56 | (i & UINT64_C(0x00FF000000000000)) >> 40 | (i & UINT64_C(0x0000FF0000000000)) >> 24 | (i & UINT64_C(0x000000FF00000000)) >> 8 | (i & UINT64_C(0x00000000FF000000)) << 8 | (i & UINT64_C(0x0000000000FF0000)) << 24 | (i & UINT64_C(0x000000000000FF00)) << 40 | (i & UINT64_C(0x00000000000000FF)) << 56; return i; } #ifdef OF_BIG_ENDIAN static OF_INLINE void OF_BSWAP32_V(uint32_t *buf, size_t len) { while (len--) { *buf = OF_BSWAP32(*buf); buf++; } } #else #define OF_BSWAP32_V(buf, len) #endif #define OF_ROL(val, bits) \ (((val) << (bits)) | ((val) >> (32 - (bits)))) #define OF_HASH_INIT(hash) hash = 0 #define OF_HASH_ADD(hash, byte) \ |
︙ | ︙ |