diff options
author | Zhang Yanfei <zhangyanfei@cn.fujitsu.com> | 2013-03-14 01:19:13 +0800 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2013-03-14 09:39:06 +0100 |
commit | 9ea6e0577b67febf117c8340d4bb69fa8bf24554 (patch) | |
tree | 2b4af545daf53370fa7427aa16f09e8804a178fc | |
parent | 5db7ba5dbc87daf361397ac727f146e0565db1a9 (diff) | |
download | kexec-tools-9ea6e0577b67febf117c8340d4bb69fa8bf24554.tar.gz |
kexec: add _ALIGN* marcos for align operation
This patch imports Macros for align operation:
- _ALIGN_UP(addr, size): align addr up on a size boundary
- _ALIGN_DOWN(addr, size): align addr down on a size boundary
- _ALIGN(addr, size): align addr up on a size boundary
Signed-off-by: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r-- | kexec/kexec.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/kexec/kexec.h b/kexec/kexec.h index 94c62c19..916a24be 100644 --- a/kexec/kexec.h +++ b/kexec/kexec.h @@ -100,6 +100,18 @@ do { \ } \ } while(0) +#define _ALIGN_UP_MASK(addr, mask) (((addr) + (mask)) & ~(mask)) +#define _ALIGN_DOWN_MASK(addr, mask) ((addr) & ~(mask)) + +/* align addr on a size boundary - adjust address up/down if needed */ +#define _ALIGN_UP(addr, size) \ + _ALIGN_UP_MASK(addr, (typeof(addr))(size) - 1) +#define _ALIGN_DOWN(addr, size) \ + _ALIGN_DOWN_MASK(addr, (typeof(addr))(size) - 1) + +/* align addr on a size boundary - adjust address up if needed */ +#define _ALIGN(addr, size) _ALIGN_UP(addr, size) + extern unsigned long long mem_min, mem_max; extern int kexec_debug; |