glibc/sysdeps/unix/sysv/linux/x86/bits
Joseph Myers 729f34028a Use single bits/shm.h for all architectures.
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.
2018-10-17 11:56:28 +00:00
..
a.out.h Use x86_64 bits/a.out.h for both i386 and x86_64 2012-05-31 15:57:54 -07:00
environments.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
epoll.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fcntl.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ipctypes.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mman.h Share MAP_* flags between more architectures. 2018-09-26 12:33:14 +00:00
msq-pad.h Use single bits/msq.h for all architectures. 2018-10-11 12:07:27 +00:00
procfs-id.h Unify more sys/procfs.h headers. 2018-09-25 16:49:25 +00:00
procfs.h Unify more sys/procfs.h headers. 2018-09-25 16:49:25 +00:00
sem-pad.h Use single bits/sem.h for all architectures. 2018-10-15 19:28:04 +00:00
shm-pad.h Use single bits/shm.h for all architectures. 2018-10-17 11:56:28 +00:00
sigcontext.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
siginfo-arch.h Fix a bug in 'Remove __need macros from signal.h' (a992f506) 2017-05-22 22:32:09 -04:00
stat.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sysctl.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
typesizes.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00