diff options
Diffstat (limited to 'zutil.h')
-rw-r--r-- | zutil.h | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -245,4 +245,17 @@ extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ | |||
245 | #define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) | 245 | #define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) |
246 | #define TRY_FREE(s, p) {if (p) ZFREE(s, p);} | 246 | #define TRY_FREE(s, p) {if (p) ZFREE(s, p);} |
247 | 247 | ||
248 | /* Reverse the bytes in a 64-bit or 32-bit or 16-bit value */ | ||
249 | #if defined(_WIN32) && (_MSC_VER >= 1300) && (defined(_M_IX86) || defined(_M_X64)) | ||
250 | # include <stdlib.h> | ||
251 | # pragma intrinsic(_byteswap_ulong) | ||
252 | # define ZSWAP32(q) _byteswap_ulong(q) | ||
253 | #elif defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) | ||
254 | # include <byteswap.h> | ||
255 | # define ZSWAP32(q) __builtin_bswap32(q) | ||
256 | #else | ||
257 | # define ZSWAP32(q) ((((q) >> 24) & 0xff) + (((q) >> 8) & 0xff00) + \ | ||
258 | (((q) & 0xff00) << 8) + (((q) & 0xff) << 24)) | ||
259 | #endif | ||
260 | |||
248 | #endif /* ZUTIL_H */ | 261 | #endif /* ZUTIL_H */ |