diff options
Diffstat (limited to 'prb_macros.h')
-rw-r--r-- | prb_macros.h | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/prb_macros.h b/prb_macros.h deleted file mode 100644 index 8324919..0000000 --- a/prb_macros.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -#ifndef assert -#define assert(expr) if (!(expr)) { *(int *)0 = 0; } -#endif -*/ -#include <assert.h> - -#define array_count(array) (sizeof(array)/sizeof(*(array))) - -#ifndef offsetof -#define offsetof(type, element) ((size_t)(&(((type *)0)->element))) -#endif - -#define min(a, b) (((a) < (b)) ? (a) : (b)) -#define max(a, b) (((a) > (b)) ? (a) : (b)) - -#define clamp(a, x, b) \ - (((x) < (a)) ? (a) : \ - (((x) > (b)) ? (b) : (x))) - -#define swap(type, a, b) { type tmp = (a); (a) = (b); (b) = tmp; } - -/* NOTE(pryazha): Memory */ -#define memzero(ptr, size) prb_memset((ptr), 0, (size)) -#define memzero_struct(ptr) memzero((ptr), sizeof(*(ptr))) - -#define kilobytes(n) n*1024 -#define megabytes(n) kilobytes(n)*1024 -#define gigabytes(n) megabytes(n)*1024 - -/* NOTE(pryazha): Singly linked list */ -#define sllpush(first, last, node) \ - ((first) == 0 ? \ - ((first) = (last) = (node), (node)->next = 0) : \ - ((last)->next = (node), (last) = (node), (node)->next = 0)) -#define sllpop(first, last) \ - ((first) == (last) ? \ - ((first) = (last) = 0) : \ - ((first) = (first)->next)) - -/* NOTE(pryazha): Doubly linked list */ -#define dllpushback_np(first, last, node, next, prev) \ - ((first) == 0 ? \ - ((first) = (last) = (node), (node)->next = (node)->prev = 0) : \ - ((node)->prev = (last), (last)->next = (node), (last) = (node), (node)->next = 0)) -#define dllpushback(first, last, node) dllpushback_np(first, last, node, next, prev) -#define dllpushfront(first, last, node) dllpushback_np(last, first, node, prev, next) - -#define dllremove(first, last, node) \ - ((first) == (node) ? \ - ((first) == (last) ? (first) = (last) = 0 : \ - ((first) = (first)->next, (first)->prev = 0)) : \ - ((last) == (node) ? ((last) = (last)->prev, (last)->next = 0) : \ - ((node)->next->prev = (node)->prev, (node)->prev->next = (node)->next))) |