prboom/data/rd_util.h
2024-09-08 18:03:02 +12:00

38 lines
1,006 B
C

// Copyright (c) 1993-2011 PrBoom developers (see AUTHORS)
// Licence: GPLv2 or later (see COPYING)
// Useful utility functions
#ifdef __GNUC__
#define ATTR(x) __attribute__(x)
#else
#define ATTR(x)
#endif
#ifdef WORDS_BIGENDIAN
# ifdef __GNUC__
#define LONG(x) __builtin_bswap32((x))
#define SHORT(x) (__builtin_bswap32((x))>>16)
# else
#define LONG(x) ( (((x) & 0x000000FF) << 24) \
+(((x) & 0x0000FF00) << 8) \
+(((x) & 0x00FF0000) >> 8) \
+(((x) & 0xFF000000) >> 24) )
#define SHORT(x) ( (((x) & 0x00FF) << 8) \
+(((x) & 0xFF00) >> 8) )
# endif
#else
#define LONG(x) (x)
#define SHORT(x) (x)
#endif
void ATTR((noreturn)) die(const char *error, ...);
void *xmalloc(size_t size);
void *xrealloc(void *ptr, size_t size);
void *xcalloc(size_t n, size_t size);
char *xstrdup(const char *s);
// slurp an entire file into memory or kill yourself
size_t read_or_die(void **ptr, const char *file);
void search_path(const char *path);