diff options
Diffstat (limited to 'libguile/whippet/src/gc-align.h')
-rw-r--r-- | libguile/whippet/src/gc-align.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libguile/whippet/src/gc-align.h b/libguile/whippet/src/gc-align.h new file mode 100644 index 000000000..c0758b1e0 --- /dev/null +++ b/libguile/whippet/src/gc-align.h @@ -0,0 +1,22 @@ +#ifndef GC_ALIGN_H +#define GC_ALIGN_H + +#ifndef GC_IMPL +#error internal header file, not part of API +#endif + +#include <stdint.h> + +static inline uintptr_t align_down(uintptr_t addr, size_t align) { + return addr & ~(align - 1); +} +static inline uintptr_t align_up(uintptr_t addr, size_t align) { + return align_down(addr + align - 1, align); +} + +// Poor man's equivalent of std::hardware_destructive_interference_size. +#define AVOID_FALSE_SHARING 128 +#define ALIGNED_TO_AVOID_FALSE_SHARING \ + __attribute__((aligned(AVOID_FALSE_SHARING))) + +#endif // GC_ALIGN_H |