projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
align.h: Implement ALIGN_FLOOR macro
[lttng-tools.git]
/
src
/
common
/
align.h
diff --git
a/src/common/align.h
b/src/common/align.h
index 928c5b6c131ec36061662f7624fd74a000a87224..c8d9d51766906e15cfe444258778872e0a5ad143 100644
(file)
--- a/
src/common/align.h
+++ b/
src/common/align.h
@@
-21,13
+21,26
@@
#include <unistd.h>
#include <limits.h>
#include <unistd.h>
#include <limits.h>
-#ifndef PAGE_SIZE /* Cygwin limits.h defines its own PAGE_SIZE */
+#ifndef PAGE_SIZE /* Cygwin limits.h defines its own PAGE_SIZE
.
*/
#define PAGE_SIZE sysconf(_SC_PAGE_SIZE)
#endif
#define PAGE_SIZE sysconf(_SC_PAGE_SIZE)
#endif
+#ifndef PAGE_MASK /* macOS defines its own PAGE_MASK. */
#define PAGE_MASK (~(PAGE_SIZE - 1))
#define PAGE_MASK (~(PAGE_SIZE - 1))
+#endif
+
#define __ALIGN_MASK(v, mask) (((v) + (mask)) & ~(mask))
#define __ALIGN_MASK(v, mask) (((v) + (mask)) & ~(mask))
+
+#ifndef ALIGN /* macOS defines its own ALIGN. */
#define ALIGN(v, align) __ALIGN_MASK(v, (__typeof__(v)) (align) - 1)
#define ALIGN(v, align) __ALIGN_MASK(v, (__typeof__(v)) (align) - 1)
+#endif
+
+#define __ALIGN_FLOOR_MASK(v, mask) ((v) & ~(mask))
+
+#ifndef ALIGN_FLOOR
+#define ALIGN_FLOOR(v, align) __ALIGN_FLOOR_MASK(v, (__typeof__(v)) (align) - 1)
+#endif
+
#define PAGE_ALIGN(addr) ALIGN(addr, PAGE_SIZE)
/**
#define PAGE_ALIGN(addr) ALIGN(addr, PAGE_SIZE)
/**
This page took
0.026373 seconds
and
4
git commands to generate.