aboutsummaryrefslogtreecommitdiff
path: root/include/libc-internal.h
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2017-02-26 20:17:52 -0500
committerZack Weinberg <zackw@panix.com>2017-03-01 20:33:46 -0500
commit9090848d0607e93fb08a1d68d9f263846ee33f02 (patch)
treed6cd846fff1640a49ef071cfd0bfabb8efa5352c /include/libc-internal.h
parent5e4e10636cf999c251b623c3be143a22156721d6 (diff)
downloadglibc-9090848d0607e93fb08a1d68d9f263846ee33f02.tar
glibc-9090848d0607e93fb08a1d68d9f263846ee33f02.tar.gz
glibc-9090848d0607e93fb08a1d68d9f263846ee33f02.tar.bz2
glibc-9090848d0607e93fb08a1d68d9f263846ee33f02.zip
Narrowing the visibility of libc-internal.h even further.
posix/wordexp-test.c used libc-internal.h for PTR_ALIGN_DOWN; similar to what was done with libc-diag.h, I have split the definitions of cast_to_integer, ALIGN_UP, ALIGN_DOWN, PTR_ALIGN_UP, and PTR_ALIGN_DOWN to a new header, libc-pointer-arith.h. It then occurred to me that the remaining declarations in libc-internal.h are mostly to do with early initialization, and probably most of the files including it, even in the core code, don't need it anymore. Indeed, only 19 files actually need what remains of libc-internal.h. 23 others need libc-diag.h instead, and 12 need libc-pointer-arith.h instead. No file needs more than one of them, and 16 don't need any of them! So, with this patch, libc-internal.h stops including libc-diag.h as well as losing the pointer arithmetic macros, and all including files are adjusted. * include/libc-pointer-arith.h: New file. Define cast_to_integer, ALIGN_UP, ALIGN_DOWN, PTR_ALIGN_UP, and PTR_ALIGN_DOWN here. * include/libc-internal.h: Definitions of above macros moved from here. Don't include libc-diag.h anymore either. * posix/wordexp-test.c: Include stdint.h and libc-pointer-arith.h. Don't include libc-internal.h. * debug/pcprofile.c, elf/dl-tunables.c, elf/soinit.c, io/openat.c * io/openat64.c, misc/ptrace.c, nptl/pthread_clock_gettime.c * nptl/pthread_clock_settime.c, nptl/pthread_cond_common.c * string/strcoll_l.c, sysdeps/nacl/brk.c * sysdeps/unix/clock_settime.c * sysdeps/unix/sysv/linux/i386/get_clockfreq.c * sysdeps/unix/sysv/linux/ia64/get_clockfreq.c * sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c * sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c: Don't include libc-internal.h. * elf/get-dynamic-info.h, iconv/loop.c * iconvdata/iso-2022-cn-ext.c, locale/weight.h, locale/weightwc.h * misc/reboot.c, nis/nis_table.c, nptl_db/thread_dbP.h * nscd/connections.c, resolv/res_send.c, soft-fp/fmadf4.c * soft-fp/fmasf4.c, soft-fp/fmatf4.c, stdio-common/vfscanf.c * sysdeps/ieee754/dbl-64/e_lgamma_r.c * sysdeps/ieee754/dbl-64/k_rem_pio2.c * sysdeps/ieee754/flt-32/e_lgammaf_r.c * sysdeps/ieee754/flt-32/k_rem_pio2f.c * sysdeps/ieee754/ldbl-128/k_tanl.c * sysdeps/ieee754/ldbl-128ibm/k_tanl.c * sysdeps/ieee754/ldbl-96/e_lgammal_r.c * sysdeps/ieee754/ldbl-96/k_tanl.c, sysdeps/nptl/futex-internal.h: Include libc-diag.h instead of libc-internal.h. * elf/dl-load.c, elf/dl-reloc.c, locale/programs/locarchive.c * nptl/nptl-init.c, string/strcspn.c, string/strspn.c * malloc/malloc.c, sysdeps/i386/nptl/tls.h * sysdeps/nacl/dl-map-segments.h, sysdeps/x86_64/atomic-machine.h * sysdeps/unix/sysv/linux/spawni.c * sysdeps/x86_64/nptl/tls.h: Include libc-pointer-arith.h instead of libc-internal.h. * elf/get-dynamic-info.h, sysdeps/nacl/dl-map-segments.h * sysdeps/x86_64/atomic-machine.h: Add multiple include guard.
Diffstat (limited to 'include/libc-internal.h')
-rw-r--r--include/libc-internal.h38
1 files changed, 0 insertions, 38 deletions
diff --git a/include/libc-internal.h b/include/libc-internal.h
index be6c02186f..cd2f2622ed 100644
--- a/include/libc-internal.h
+++ b/include/libc-internal.h
@@ -53,42 +53,4 @@ extern void __init_misc (int, char **, char **);
extern __typeof (__profile_frequency) __profile_frequency attribute_hidden;
# endif
-/* 1 if 'type' is a pointer type, 0 otherwise. */
-# define __pointer_type(type) (__builtin_classify_type ((type) 0) == 5)
-
-/* __intptr_t if P is true, or T if P is false. */
-# define __integer_if_pointer_type_sub(T, P) \
- __typeof__ (*(0 ? (__typeof__ (0 ? (T *) 0 : (void *) (P))) 0 \
- : (__typeof__ (0 ? (__intptr_t *) 0 : (void *) (!(P)))) 0))
-
-/* __intptr_t if EXPR has a pointer type, or the type of EXPR otherwise. */
-# define __integer_if_pointer_type(expr) \
- __integer_if_pointer_type_sub(__typeof__ ((__typeof__ (expr)) 0), \
- __pointer_type (__typeof__ (expr)))
-
-/* 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)))
-
-#include <libc-diag.h>
-
#endif /* _LIBC_INTERNAL */