mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 08:11:08 +00:00
libc-internal.h: add ALIGN helper macros
Rather than open coding the masks, add helper macros to do the magic. This makes code easier to read. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
e1f0b2cfa1
commit
d605071ebf
@ -1,3 +1,10 @@
|
||||
2013-06-24 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* include/libc-internal.h (ALIGN_DOWN): New helper macro.
|
||||
(ALIGN_UP): Likewise.
|
||||
(PTR_ALIGN_DOWN): Likewise.
|
||||
(PTR_ALIGN_UP): Likewise.
|
||||
|
||||
2013-06-24 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_platforms): Add "power8"
|
||||
|
@ -50,4 +50,24 @@ extern void __init_misc (int, char **, char **);
|
||||
/* Cast an integer or a pointer VAL to integer with proper type. */
|
||||
# define cast_to_integer(val) ((__integer_if_pointer_type (val)) (val))
|
||||
|
||||
/* Align a value by rounding down to closest size.
|
||||
e.g. Using size of 4096, we get this behavior:
|
||||
{4095, 4096, 4097} = {0, 4096, 4096}. */
|
||||
#define ALIGN_DOWN(base, size) ((base) & -((__typeof__ (base)) (size)))
|
||||
|
||||
/* Align a value by rounding up to closest size.
|
||||
e.g. Using size of 4096, we get this behavior:
|
||||
{4095, 4096, 4097} = {4096, 4096, 8192}.
|
||||
|
||||
Note: The size argument has side effects (expanded multiple times). */
|
||||
#define ALIGN_UP(base, size) ALIGN_DOWN ((base) + (size) - 1, (size))
|
||||
|
||||
/* Same as ALIGN_DOWN(), but automatically casts when base is a pointer. */
|
||||
#define PTR_ALIGN_DOWN(base, size) \
|
||||
((__typeof__ (base)) ALIGN_DOWN ((uintptr_t) (base), (size)))
|
||||
|
||||
/* Same as ALIGN_UP(), but automatically casts when base is a pointer. */
|
||||
#define PTR_ALIGN_UP(base, size) \
|
||||
((__typeof__ (base)) ALIGN_UP ((uintptr_t) (base), (size)))
|
||||
|
||||
#endif /* _LIBC_INTERNAL */
|
||||
|
Loading…
Reference in New Issue
Block a user