From: Stefan Hajnoczi Date: Thu, 17 Nov 2011 13:40:25 +0000 (+0000) Subject: qemu-common: add QEMU_ALIGN_DOWN() and QEMU_ALIGN_UP() macros X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=3951690a4a29e031492090131d001e5047938631;p=qemu.git qemu-common: add QEMU_ALIGN_DOWN() and QEMU_ALIGN_UP() macros Add macros for aligning a number to a multiple, for example: QEMU_ALIGN_DOWN(500, 2000) = 0 QEMU_ALIGN_UP(500, 2000) = 2000 Since ALIGN_UP() is a common macro name use the QEMU_* namespace prefix. Hopefully this will protect us from included headers that leak something with a similar name. Signed-off-by: Stefan Hajnoczi Signed-off-by: Kevin Wolf --- diff --git a/qemu-common.h b/qemu-common.h index 2ce47aa12d..44870fe523 100644 --- a/qemu-common.h +++ b/qemu-common.h @@ -341,6 +341,12 @@ static inline uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c) return res.ll; } +/* Round number down to multiple */ +#define QEMU_ALIGN_DOWN(n, m) ((n) / (m) * (m)) + +/* Round number up to multiple */ +#define QEMU_ALIGN_UP(n, m) QEMU_ALIGN_DOWN((n) + (m) - 1, (m)) + #include "module.h" #endif