67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#ifndef _WIN32
# define OF_PATH_DELIM '/'
#else
# define OF_PATH_DELIM '\\'
#endif
#define OF_IVAR_OFFSET(ivar) ((char*)&ivar - (char*)self)
#define OF_GETTER(ivar, atomic) \
return objc_getProperty(self, _cmd, OF_IVAR_OFFSET(ivar), atomic);
#define OF_SETTER(ivar, value, atomic, copy) \
objc_setProperty(self, _cmd, OF_IVAR_OFFSET(ivar), value, atomic, copy);
static OF_INLINE uint16_t OF_CONST_FUNC
of_bswap16_const(uint16_t i)
|
|
|
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#ifndef _WIN32
# define OF_PATH_DELIM '/'
#else
# define OF_PATH_DELIM '\\'
#endif
#define OF_IVAR_OFFSET(ivar) ((intptr_t)&ivar - (intptr_t)self)
#define OF_GETTER(ivar, atomic) \
return objc_getProperty(self, _cmd, OF_IVAR_OFFSET(ivar), atomic);
#define OF_SETTER(ivar, value, atomic, copy) \
objc_setProperty(self, _cmd, OF_IVAR_OFFSET(ivar), value, atomic, copy);
static OF_INLINE uint16_t OF_CONST_FUNC
of_bswap16_const(uint16_t i)
|
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
|
"bswap %%eax\n\t"
"bswap %%edx\n\t"
"xchgl %%eax, %%edx"
: "=A"(i)
: "0"(i)
);
#else
i = (uint64_t)of_bswap32_nonconst(i & 0xFFFFFFFF) << 32 |
of_bswap32_nonconst(i >> 32);
#endif
return i;
}
#ifdef __GNUC__
# define of_bswap16(i) \
(__builtin_constant_p(i) ? of_bswap16_const(i) : of_bswap16_nonconst(i))
|
|
|
|
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
|
"bswap %%eax\n\t"
"bswap %%edx\n\t"
"xchgl %%eax, %%edx"
: "=A"(i)
: "0"(i)
);
#else
i = (uint64_t)of_bswap32_nonconst((uint32_t)(i & 0xFFFFFFFF)) << 32 |
of_bswap32_nonconst((uint32_t)(i >> 32));
#endif
return i;
}
#ifdef __GNUC__
# define of_bswap16(i) \
(__builtin_constant_p(i) ? of_bswap16_const(i) : of_bswap16_nonconst(i))
|
224
225
226
227
228
229
230
231
232
233
234
235
236
237
|
# define of_bswap64_if_be(i) (i)
# define of_bswap16_if_le(i) of_bswap16(i)
# define of_bswap32_if_le(i) of_bswap32(i)
# define of_bswap64_if_le(i) of_bswap64(i)
# define of_bswap32_vec_if_be(buf, len)
#endif
#define OF_ROL(val, bits) \
(((val) << ((bits) % (sizeof(val) * 8))) | \
(val) >> (sizeof(val) * 8 - ((bits) % (sizeof(val) * 8))))
#define OF_HASH_INIT(hash) hash = 0
#define OF_HASH_ADD(hash, byte) \
{ \
|
>
>
>
>
>
>
>
>
|
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
|
# define of_bswap64_if_be(i) (i)
# define of_bswap16_if_le(i) of_bswap16(i)
# define of_bswap32_if_le(i) of_bswap32(i)
# define of_bswap64_if_le(i) of_bswap64(i)
# define of_bswap32_vec_if_be(buf, len)
#endif
/*
* We define it here and not in objfw-defs.h, as it would be theoretically
* possible to build a universal binary for Mac OS X and iOS.
*/
#if defined(__MACH__) && defined(__arm__)
# define OF_IOS
#endif
#define OF_ROL(val, bits) \
(((val) << ((bits) % (sizeof(val) * 8))) | \
(val) >> (sizeof(val) * 8 - ((bits) % (sizeof(val) * 8))))
#define OF_HASH_INIT(hash) hash = 0
#define OF_HASH_ADD(hash, byte) \
{ \
|