mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-02 01:40:07 +00:00
729f34028a
After my patch to move SHMLBA to its own header, the bits/shm.h headers for architectures using the Linux kernel still vary in a few ways: the use of __syscall_ulong_t; whether padding for 32-bit systems is present before or after time fields, or missing altogether (mips, x32); whether shm_segsz is before or after the time fields; whether, if after time fields, there is extra padding before shm_segsz. This patch arranges for a single header to be used. __syscall_ulong_t is safe to use everywhere, while bits/shm-pad.h is added with new macros __SHM_PAD_AFTER_TIME, __SHM_PAD_BEFORE_TIME, __SHM_SEGSZ_AFTER_TIME and __SHM_PAD_BETWEEN_TIME_AND_SEGSZ to describe the differences. Tested for x86_64 and x86, and with build-many-glibcs.py. * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add bits/shm-pad.h. * sysdeps/unix/sysv/linux/bits/shm.h: Include <bits/shm-pad.h>. (shmatt_t): Define as __syscall_ulong_t. (__SHM_PAD_TIME): New macro, depending on [__SHM_PAD_BEFORE_TIME] and [__SHM_PAD_AFTER_TIME]. (struct shmid_ds): Define time fields using __SHM_PAD_TIME. Define shm_segsz and associated padding based on [__SHM_SEGSZ_AFTER_TIME] and [__SHM_PAD_BETWEEN_TIME_AND_SEGSZ]. Use __syscall_ulong_t instead of unsigned long int. [__USE_MISC] (struct shminfo): Use __syscall_ulong_t instead of unsigned long int. [__USE_MISC] (struct shm_info): Likewise. * sysdeps/unix/sysv/linux/bits/shm-pad.h: New file. * sysdeps/unix/sysv/linux/hppa/bits/shm-pad.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/shm-pad.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/shm-pad.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/shm-pad.h: Likewise. * sysdeps/unix/sysv/linux/x86/bits/shm-pad.h: Likewise. * sysdeps/unix/sysv/linux/hppa/bits/shm.h: Remove. * sysdeps/unix/sysv/linux/mips/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/x86/bits/shm.h: Likewise. |
||
---|---|---|
.. | ||
types | ||
a.out.h | ||
dirent.h | ||
epoll.h | ||
errno.h | ||
eventfd.h | ||
fcntl-linux.h | ||
fcntl.h | ||
in.h | ||
initspin.h | ||
inotify.h | ||
ioctl-types.h | ||
ioctls.h | ||
ipc.h | ||
local_lim.h | ||
mman-linux.h | ||
mman-map-flags-generic.h | ||
mman-shared.h | ||
mman.h | ||
mqueue.h | ||
msq-pad.h | ||
msq.h | ||
param.h | ||
poll.h | ||
posix_opt.h | ||
procfs-extra.h | ||
procfs-id.h | ||
procfs-prregset.h | ||
procfs.h | ||
ptrace-shared.h | ||
resource.h | ||
sched.h | ||
sem-pad.h | ||
sem.h | ||
shm-pad.h | ||
shm.h | ||
shmlba.h | ||
sigaction.h | ||
sigcontext.h | ||
sigevent-consts.h | ||
siginfo-arch.h | ||
siginfo-consts-arch.h | ||
siginfo-consts.h | ||
signalfd.h | ||
signum.h | ||
sigstack.h | ||
socket_type.h | ||
socket.h | ||
ss_flags.h | ||
stat.h | ||
statfs.h | ||
statvfs.h | ||
sys_errlist.h | ||
sysctl.h | ||
termios.h | ||
time.h | ||
timerfd.h | ||
timex.h | ||
uio_lim.h | ||
uio-ext.h | ||
utsname.h | ||
waitflags.h |