From 3d42e04d74bea7bb2965a81c8d9799a8c8b9f21b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 23 Sep 1998 18:52:55 +0000 Subject: Update. 1998-09-23 17:28 -0400 Zack Weinberg * misc/sys/mman.h: New file. * sysdeps/generic/bits/mman.h: New file. * sysdeps/unix/bsd/osf/bits/mman.h: New file. * sysdeps/unix/bsd/sun/sunos4/bits/mman.h: New file. * sysdeps/unix/bsd/ultrix4/bits/mman.h: New file. * sysdeps/unix/sysv/irix4/bits/mman.h: New file. * sysdeps/generic/sys/mman.h: Removed. * sysdeps/unix/bsd/osf/sys/mman.h: Removed. * sysdeps/unix/bsd/sun/sunos4/sys/mman.h: Removed. * sysdeps/unix/bsd/ultrix4/sys/mman.h: Removed. * sysdeps/unix/sysv/irix4/sys/mman.h: Removed. * sysdeps/unix/sysv/linux/sys/mman.h: Removed. * include/sys/mman.h: Look directly for misc/sys/mman.h. * misc/Makefile (headers): Add bits/mman.h. * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove bits/mman.h. * sysdeps/unix/sysv/linux/alpha/Dist: Don't mention bits/mman.h. * sysdeps/unix/sysv/linux/arm/Dist: Likewise. * sysdeps/unix/sysv/linux/i386/Dist: Likewise. * sysdeps/unix/sysv/linux/m68k/Dist: Likewise. * sysdeps/unix/sysv/linux/mips/Dist: Likewise. * sysdeps/unix/sysv/linux/powerpc/Dist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Likewise. 1998-09-23 16:27 -0400 Zack Weinberg * sysdeps/mach/alpha/sysdep.h: Don't use #include_next. * sysdeps/mach/alpha/thread_state.h: Likewise. * sysdeps/mach/i386/sysdep.h: Likewise. * sysdeps/mach/i386/thread_state.h: Likewise. * sysdeps/mach/mips/sysdep.h: Likewise. * sysdeps/mach/mips/thread_state.h: Likewise. * sysdeps/posix/profil.c: Likewise. * sysdeps/i386/i586/memcopy.h: Likewise. * sysdeps/mach/pagecopy.h: Likewise. --- ChangeLog | 43 ++++++++++ bits/mman.h | 70 ++++++++++++++++ include/sys/mman.h | 2 +- misc/Makefile | 2 +- misc/sys/mman.h | 102 +++++++++++++++++++++++ posix/getopt.h | 2 +- sysdeps/generic/bits/mman.h | 70 ++++++++++++++++ sysdeps/generic/sys/mman.h | 128 ----------------------------- sysdeps/i386/i586/memcopy.h | 3 +- sysdeps/mach/alpha/sysdep.h | 2 +- sysdeps/mach/alpha/thread_state.h | 2 +- sysdeps/mach/i386/sysdep.h | 2 +- sysdeps/mach/i386/thread_state.h | 2 +- sysdeps/mach/mips/sysdep.h | 2 +- sysdeps/mach/mips/thread_state.h | 2 +- sysdeps/mach/pagecopy.h | 2 +- sysdeps/posix/profil.c | 2 +- sysdeps/unix/bsd/osf/bits/mman.h | 71 ++++++++++++++++ sysdeps/unix/bsd/osf/sys/mman.h | 119 --------------------------- sysdeps/unix/bsd/sun/sunos4/bits/mman.h | 68 +++++++++++++++ sysdeps/unix/bsd/sun/sunos4/sys/mman.h | 116 -------------------------- sysdeps/unix/bsd/ultrix4/bits/mman.h | 51 ++++++++++++ sysdeps/unix/bsd/ultrix4/sys/mman.h | 102 ----------------------- sysdeps/unix/sysv/irix4/bits/mman.h | 64 +++++++++++++++ sysdeps/unix/sysv/irix4/sys/mman.h | 110 ------------------------- sysdeps/unix/sysv/linux/Makefile | 2 +- sysdeps/unix/sysv/linux/alpha/Dist | 1 - sysdeps/unix/sysv/linux/arm/Dist | 1 - sysdeps/unix/sysv/linux/i386/Dist | 1 - sysdeps/unix/sysv/linux/m68k/Dist | 1 - sysdeps/unix/sysv/linux/mips/Dist | 1 - sysdeps/unix/sysv/linux/powerpc/Dist | 1 - sysdeps/unix/sysv/linux/sparc/sparc32/Dist | 1 - sysdeps/unix/sysv/linux/sparc/sparc64/Dist | 1 - sysdeps/unix/sysv/linux/sys/mman.h | 103 ----------------------- 35 files changed, 552 insertions(+), 700 deletions(-) create mode 100644 bits/mman.h create mode 100644 misc/sys/mman.h create mode 100644 sysdeps/generic/bits/mman.h delete mode 100644 sysdeps/generic/sys/mman.h create mode 100644 sysdeps/unix/bsd/osf/bits/mman.h delete mode 100644 sysdeps/unix/bsd/osf/sys/mman.h create mode 100644 sysdeps/unix/bsd/sun/sunos4/bits/mman.h delete mode 100644 sysdeps/unix/bsd/sun/sunos4/sys/mman.h create mode 100644 sysdeps/unix/bsd/ultrix4/bits/mman.h delete mode 100644 sysdeps/unix/bsd/ultrix4/sys/mman.h create mode 100644 sysdeps/unix/sysv/irix4/bits/mman.h delete mode 100644 sysdeps/unix/sysv/irix4/sys/mman.h delete mode 100644 sysdeps/unix/sysv/linux/sys/mman.h diff --git a/ChangeLog b/ChangeLog index 6f9517cac0..df655a3912 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,46 @@ +1998-09-23 17:28 -0400 Zack Weinberg + + * misc/sys/mman.h: New file. + + * sysdeps/generic/bits/mman.h: New file. + * sysdeps/unix/bsd/osf/bits/mman.h: New file. + * sysdeps/unix/bsd/sun/sunos4/bits/mman.h: New file. + * sysdeps/unix/bsd/ultrix4/bits/mman.h: New file. + * sysdeps/unix/sysv/irix4/bits/mman.h: New file. + + * sysdeps/generic/sys/mman.h: Removed. + * sysdeps/unix/bsd/osf/sys/mman.h: Removed. + * sysdeps/unix/bsd/sun/sunos4/sys/mman.h: Removed. + * sysdeps/unix/bsd/ultrix4/sys/mman.h: Removed. + * sysdeps/unix/sysv/irix4/sys/mman.h: Removed. + * sysdeps/unix/sysv/linux/sys/mman.h: Removed. + + * include/sys/mman.h: Look directly for misc/sys/mman.h. + * misc/Makefile (headers): Add bits/mman.h. + * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove + bits/mman.h. + + * sysdeps/unix/sysv/linux/alpha/Dist: Don't mention bits/mman.h. + * sysdeps/unix/sysv/linux/arm/Dist: Likewise. + * sysdeps/unix/sysv/linux/i386/Dist: Likewise. + * sysdeps/unix/sysv/linux/m68k/Dist: Likewise. + * sysdeps/unix/sysv/linux/mips/Dist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/Dist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Likewise. + +1998-09-23 16:27 -0400 Zack Weinberg + + * sysdeps/mach/alpha/sysdep.h: Don't use #include_next. + * sysdeps/mach/alpha/thread_state.h: Likewise. + * sysdeps/mach/i386/sysdep.h: Likewise. + * sysdeps/mach/i386/thread_state.h: Likewise. + * sysdeps/mach/mips/sysdep.h: Likewise. + * sysdeps/mach/mips/thread_state.h: Likewise. + * sysdeps/posix/profil.c: Likewise. + * sysdeps/i386/i586/memcopy.h: Likewise. + * sysdeps/mach/pagecopy.h: Likewise. + 1998-09-23 15:25 Ulrich Drepper * libio/stdio.h: Define __need_getopt and include getopt.h to define diff --git a/bits/mman.h b/bits/mman.h new file mode 100644 index 0000000000..0afdf202a1 --- /dev/null +++ b/bits/mman.h @@ -0,0 +1,70 @@ +/* Definitions for BSD-style memory management. + Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* These are the bits used by 4.4 BSD and its derivatives. On systems + (such as GNU) where these facilities are not system services but can be + emulated in the C library, these are the definitions we emulate. */ + +#ifndef _BITS_MMAN_H +#define _BITS_MMAN_H 1 + +/* Protections are chosen from these bits, OR'd together. The + implementation does not necessarily support PROT_EXEC or PROT_WRITE + without PROT_READ. The only guarantees are that no writing will be + allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ + +#define PROT_NONE 0x00 /* No access. */ +#define PROT_READ 0x04 /* Pages can be read. */ +#define PROT_WRITE 0x02 /* Pages can be written. */ +#define PROT_EXEC 0x01 /* Pages can be executed. */ + +/* Flags contain mapping type, sharing type and options. */ + +/* Mapping type (must choose one and only one of these). */ +#ifdef __USE_BSD +# define MAP_FILE 0x0001 /* Mapped from a file or device. */ +# define MAP_ANON 0x0002 /* Allocated from anonymous virtual memory. */ +# define MAP_TYPE 0x000f /* Mask for type field. */ +#endif + +/* Sharing types (must choose one and only one of these). */ +#ifdef __USE_BSD +# define MAP_COPY 0x0020 /* Virtual copy of region at mapping time. */ +#endif +#define MAP_SHARED 0x0010 /* Share changes. */ +#define MAP_PRIVATE 0x0000 /* Changes private; copy pages on write. */ + +/* Other flags. */ +#define MAP_FIXED 0x0100 /* Map address must be exactly as requested. */ +#ifdef __USE_BSD +# define MAP_NOEXTEND 0x0200 /* For MAP_FILE, don't change file size. */ +# define MAP_HASSEMPHORE 0x0400 /* Region may contain semaphores. */ +# define MAP_INHERIT 0x0800 /* Region is retained after exec. */ +#endif + +/* Advice to `madvise'. */ +#ifdef __USE_BSD +# define MADV_NORMAL 0 /* No further special treatment. */ +# define MADV_RANDOM 1 /* Expect random page references. */ +# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ +# define MADV_WILLNEED 3 /* Will need these pages. */ +# define MADV_DONTNEED 4 /* Don't need these pages. */ +#endif + +#endif /* bits/mman.h */ diff --git a/include/sys/mman.h b/include/sys/mman.h index 32c2084bdd..374de36211 100644 --- a/include/sys/mman.h +++ b/include/sys/mman.h @@ -1,5 +1,5 @@ #ifndef _SYS_MMAN_H -#include_next +#include /* Now define the internal interfaces. */ extern __ptr_t __mmap __P ((__ptr_t __addr, size_t __len, int __prot, diff --git a/misc/Makefile b/misc/Makefile index d7982d2b79..948c087edf 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -29,7 +29,7 @@ headers := sys/uio.h bits/uio.h sys/ioctl.h bits/ioctls.h bits/ioctl-types.h \ sys/mman.h sys/param.h fstab.h mntent.h search.h err.h error.h \ sys/queue.h sysexits.h syscall.h sys/syscall.h sys/swap.h \ sys/select.h ustat.h sys/ustat.h bits/ustat.h sys/sysinfo.h \ - regexp.h bits/select.h + regexp.h bits/select.h bits/mman.h routines := brk sbrk sstk ioctl \ readv writev \ diff --git a/misc/sys/mman.h b/misc/sys/mman.h new file mode 100644 index 0000000000..44d0d26340 --- /dev/null +++ b/misc/sys/mman.h @@ -0,0 +1,102 @@ +/* Definitions for BSD-style memory management. + Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _SYS_MMAN_H +#define _SYS_MMAN_H 1 + +#include +#include +#define __need_size_t +#include + +#include + +/* Return value of `mmap' in case of an error. */ +#define MAP_FAILED ((__ptr_t) -1) + +__BEGIN_DECLS +/* Map addresses starting near ADDR and extending for LEN bytes. from + OFFSET into the file FD describes according to PROT and FLAGS. If ADDR + is nonzero, it is the desired mapping address. If the MAP_FIXED bit is + set in FLAGS, the mapping will be at ADDR exactly (which must be + page-aligned); otherwise the system chooses a convenient nearby address. + The return value is the actual mapping address chosen or MAP_FAILED + for errors (in which case `errno' is set). A successful `mmap' call + deallocates any previous mapping for the affected region. */ + +#ifndef __USE_FILE_OFFSET64 +extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot, + int __flags, int __fd, __off_t __offset)); +#else +extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot, + int __flags, int __fd, __off_t __offset)) + __asm__ ("mmap64"); +#endif +#ifdef __USE_LARGEFILE64 +extern __ptr_t mmap64 __P ((__ptr_t __addr, size_t __len, int __prot, + int __flags, int __fd, __off64_t __offset)); +#endif + +/* Deallocate any mapping for the region starting at ADDR and extending LEN + bytes. Returns 0 if successful, -1 for errors (and sets errno). */ +extern int munmap __P ((__ptr_t __addr, size_t __len)); + +/* Change the memory protection of the region starting at ADDR and + extending LEN bytes to PROT. Returns 0 if successful, -1 for errors + (and sets errno). */ +extern int mprotect __P ((__ptr_t __addr, size_t __len, int __prot)); + +/* Synchronize the region starting at ADDR and extending LEN bytes with the + file it maps. Filesystem operations on a file being mapped are + unpredictable before this is done. Flags are from the MS_* set. */ +extern int msync __P ((__ptr_t __addr, size_t __len, int __flags)); + +#ifdef __USE_BSD +/* Advise the system about particular usage patterns the program follows + for the region starting at ADDR and extending LEN bytes. */ +extern int madvise __P ((__ptr_t __addr, size_t __len, int __advice)); +#endif + +/* Guarantee all whole pages mapped by the range [ADDR,ADDR+LEN) to + be memory resident. */ +extern int mlock __P ((__const __ptr_t __addr, size_t __len)); + +/* Unlock whole pages previously mapped by the range [ADDR,ADDR+LEN). */ +extern int munlock __P ((__const __ptr_t __addr, size_t __len)); + +/* Cause all currently mapped pages of the process to be memory resident + until unlocked by a call to the `munlockall', until the process exits, + or until the process calls `execve'. */ +extern int mlockall __P ((int __flags)); + +/* All currently mapped pages of the process' address space become + unlocked. */ +extern int munlockall __P ((void)); + +#ifdef __USE_MISC +/* Remap pages mapped by the range [ADDR,ADDR+OLD_LEN) to new length + NEW_LEN. If MAY_MOVE is MREMAP_MAYMOVE the returned address may + differ from ADDR. */ +extern __ptr_t mremap __P ((__ptr_t __addr, size_t __old_len, + size_t __new_len, int __may_move)); +#endif + +__END_DECLS + +#endif /* sys/mman.h */ diff --git a/posix/getopt.h b/posix/getopt.h index c8950ee4a1..47a601ec3d 100644 --- a/posix/getopt.h +++ b/posix/getopt.h @@ -136,7 +136,7 @@ extern int getopt (int argc, char *const *argv, const char *shortopts); extern int getopt (); # endif /* __GNU_LIBRARY__ */ -# ifdef __need_getopt +# ifndef __need_getopt extern int getopt_long (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); extern int getopt_long_only (int argc, char *const *argv, diff --git a/sysdeps/generic/bits/mman.h b/sysdeps/generic/bits/mman.h new file mode 100644 index 0000000000..0afdf202a1 --- /dev/null +++ b/sysdeps/generic/bits/mman.h @@ -0,0 +1,70 @@ +/* Definitions for BSD-style memory management. + Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* These are the bits used by 4.4 BSD and its derivatives. On systems + (such as GNU) where these facilities are not system services but can be + emulated in the C library, these are the definitions we emulate. */ + +#ifndef _BITS_MMAN_H +#define _BITS_MMAN_H 1 + +/* Protections are chosen from these bits, OR'd together. The + implementation does not necessarily support PROT_EXEC or PROT_WRITE + without PROT_READ. The only guarantees are that no writing will be + allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ + +#define PROT_NONE 0x00 /* No access. */ +#define PROT_READ 0x04 /* Pages can be read. */ +#define PROT_WRITE 0x02 /* Pages can be written. */ +#define PROT_EXEC 0x01 /* Pages can be executed. */ + +/* Flags contain mapping type, sharing type and options. */ + +/* Mapping type (must choose one and only one of these). */ +#ifdef __USE_BSD +# define MAP_FILE 0x0001 /* Mapped from a file or device. */ +# define MAP_ANON 0x0002 /* Allocated from anonymous virtual memory. */ +# define MAP_TYPE 0x000f /* Mask for type field. */ +#endif + +/* Sharing types (must choose one and only one of these). */ +#ifdef __USE_BSD +# define MAP_COPY 0x0020 /* Virtual copy of region at mapping time. */ +#endif +#define MAP_SHARED 0x0010 /* Share changes. */ +#define MAP_PRIVATE 0x0000 /* Changes private; copy pages on write. */ + +/* Other flags. */ +#define MAP_FIXED 0x0100 /* Map address must be exactly as requested. */ +#ifdef __USE_BSD +# define MAP_NOEXTEND 0x0200 /* For MAP_FILE, don't change file size. */ +# define MAP_HASSEMPHORE 0x0400 /* Region may contain semaphores. */ +# define MAP_INHERIT 0x0800 /* Region is retained after exec. */ +#endif + +/* Advice to `madvise'. */ +#ifdef __USE_BSD +# define MADV_NORMAL 0 /* No further special treatment. */ +# define MADV_RANDOM 1 /* Expect random page references. */ +# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ +# define MADV_WILLNEED 3 /* Will need these pages. */ +# define MADV_DONTNEED 4 /* Don't need these pages. */ +#endif + +#endif /* bits/mman.h */ diff --git a/sysdeps/generic/sys/mman.h b/sysdeps/generic/sys/mman.h deleted file mode 100644 index 8596e70211..0000000000 --- a/sysdeps/generic/sys/mman.h +++ /dev/null @@ -1,128 +0,0 @@ -/* Definitions for BSD-style memory management. Generic/4.4 BSD version. - Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* These are the bits used by 4.4 BSD and its derivatives. On systems - (such as GNU) where these facilities are not system services but can be - emulated in the C library, these are the definitions we emulate. */ - -#ifndef _SYS_MMAN_H - -#define _SYS_MMAN_H 1 -#include - -#include -#define __need_size_t -#include - - -/* Protections are chosen from these bits, OR'd together. The - implementation does not necessarily support PROT_EXEC or PROT_WRITE - without PROT_READ. The only guarantees are that no writing will be - allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ - -#define PROT_NONE 0x00 /* No access. */ -#define PROT_READ 0x04 /* Pages can be read. */ -#define PROT_WRITE 0x02 /* Pages can be written. */ -#define PROT_EXEC 0x01 /* Pages can be executed. */ - - -/* Flags contain mapping type, sharing type and options. */ - -/* Mapping type (must choose one and only one of these). */ -#ifdef __USE_BSD -# define MAP_FILE 0x0001 /* Mapped from a file or device. */ -# define MAP_ANON 0x0002 /* Allocated from anonymous virtual memory. */ -# define MAP_TYPE 0x000f /* Mask for type field. */ -#endif - -/* Sharing types (must choose one and only one of these). */ -#ifdef __USE_BSD -# define MAP_COPY 0x0020 /* Virtual copy of region at mapping time. */ -#endif -#define MAP_SHARED 0x0010 /* Share changes. */ -#define MAP_PRIVATE 0x0000 /* Changes private; copy pages on write. */ - -/* Other flags. */ -#define MAP_FIXED 0x0100 /* Map address must be exactly as requested. */ -#ifdef __USE_BSD -# define MAP_NOEXTEND 0x0200 /* For MAP_FILE, don't change file size. */ -# define MAP_HASSEMPHORE 0x0400 /* Region may contain semaphores. */ -# define MAP_INHERIT 0x0800 /* Region is retained after exec. */ -#endif - -/* Advice to `madvise'. */ -#ifdef __USE_BSD -# define MADV_NORMAL 0 /* No further special treatment. */ -# define MADV_RANDOM 1 /* Expect random page references. */ -# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define MADV_WILLNEED 3 /* Will need these pages. */ -# define MADV_DONTNEED 4 /* Don't need these pages. */ -#endif - -/* Return value of `mmap' in case of an error. */ -#define MAP_FAILED ((__ptr_t) -1) - - -__BEGIN_DECLS -/* Map addresses starting near ADDR and extending for LEN bytes. from - OFFSET into the file FD describes according to PROT and FLAGS. If ADDR - is nonzero, it is the desired mapping address. If the MAP_FIXED bit is - set in FLAGS, the mapping will be at ADDR exactly (which must be - page-aligned); otherwise the system chooses a convenient nearby address. - The return value is the actual mapping address chosen or MAP_FAILED - for errors (in which case `errno' is set). A successful `mmap' call - deallocates any previous mapping for the affected region. */ - -#ifndef __USE_FILE_OFFSET64 -extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot, - int __flags, int __fd, __off_t __offset)); -#else -extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot, - int __flags, int __fd, __off_t __offset)) - __asm__ ("mmap64"); -#endif -#ifdef __USE_LARGEFILE64 -extern __ptr_t mmap64 __P ((__ptr_t __addr, size_t __len, int __prot, - int __flags, int __fd, __off64_t __offset)); -#endif - -/* Deallocate any mapping for the region starting at ADDR and extending LEN - bytes. Returns 0 if successful, -1 for errors (and sets errno). */ -extern int munmap __P ((__ptr_t __addr, size_t __len)); - -/* Change the memory protection of the region starting at ADDR and - extending LEN bytes to PROT. Returns 0 if successful, -1 for errors - (and sets errno). */ -extern int mprotect __P ((__ptr_t __addr, size_t __len, int __prot)); - -/* Synchronize the region starting at ADDR and extending LEN bytes with the - file it maps. Filesystem operations on a file being mapped are - unpredictable before this is done. Flags are from the MS_* set. */ -extern int msync __P ((__ptr_t __addr, size_t __len, int __flags)); - -#ifdef __USE_BSD -/* Advise the system about particular usage patterns the program follows - for the region starting at ADDR and extending LEN bytes. */ -extern int madvise __P ((__ptr_t __addr, size_t __len, int __advice)); -#endif - -__END_DECLS - - -#endif /* sys/mman.h */ diff --git a/sysdeps/i386/i586/memcopy.h b/sysdeps/i386/i586/memcopy.h index a0a9b4a5ad..ef6d0746a9 100644 --- a/sysdeps/i386/i586/memcopy.h +++ b/sysdeps/i386/i586/memcopy.h @@ -19,8 +19,7 @@ Boston, MA 02111-1307, USA. */ /* Get the i386 definitions. We will override some of them below. */ -#include_next - +#include /* Written like this, the Pentium pipeline can execute the loop at a sustained rate of 2 instructions/clock, or asymptotically 480 diff --git a/sysdeps/mach/alpha/sysdep.h b/sysdeps/mach/alpha/sysdep.h index 6c1035a5e3..55130754aa 100644 --- a/sysdeps/mach/alpha/sysdep.h +++ b/sysdeps/mach/alpha/sysdep.h @@ -38,4 +38,4 @@ #define STACK_GROWTH_DOWN -#include_next +#include diff --git a/sysdeps/mach/alpha/thread_state.h b/sysdeps/mach/alpha/thread_state.h index ea9f944064..dc30a79926 100644 --- a/sysdeps/mach/alpha/thread_state.h +++ b/sysdeps/mach/alpha/thread_state.h @@ -36,4 +36,4 @@ struct machine_thread_all_state struct alpha_float_state fpu; }; -#include_next +#include diff --git a/sysdeps/mach/i386/sysdep.h b/sysdeps/mach/i386/sysdep.h index 00769c657f..d00390afc3 100644 --- a/sysdeps/mach/i386/sysdep.h +++ b/sysdeps/mach/i386/sysdep.h @@ -50,7 +50,7 @@ #define STACK_GROWTH_DOWN /* Get the machine-independent Mach definitions. */ -#include_next +#include /* This should be rearranged, but at the moment this file provides diff --git a/sysdeps/mach/i386/thread_state.h b/sysdeps/mach/i386/thread_state.h index 1ab0b9ce8d..72e0062483 100644 --- a/sysdeps/mach/i386/thread_state.h +++ b/sysdeps/mach/i386/thread_state.h @@ -35,4 +35,4 @@ struct machine_thread_all_state struct i386_float_state fpu; }; -#include_next +#include diff --git a/sysdeps/mach/mips/sysdep.h b/sysdeps/mach/mips/sysdep.h index 7bacb02cf4..45cbf6920c 100644 --- a/sysdeps/mach/mips/sysdep.h +++ b/sysdeps/mach/mips/sysdep.h @@ -80,4 +80,4 @@ _start:\n\ #define ret j ra; nop #endif -#include_next +#include diff --git a/sysdeps/mach/mips/thread_state.h b/sysdeps/mach/mips/thread_state.h index a72848dfc0..17334cf810 100644 --- a/sysdeps/mach/mips/thread_state.h +++ b/sysdeps/mach/mips/thread_state.h @@ -39,4 +39,4 @@ struct machine_thread_all_state struct mips_float_state fpu; }; -#include_next +#include diff --git a/sysdeps/mach/pagecopy.h b/sysdeps/mach/pagecopy.h index 51fda50944..93f563be56 100644 --- a/sysdeps/mach/pagecopy.h +++ b/sysdeps/mach/pagecopy.h @@ -33,4 +33,4 @@ : 0))) /* Get the generic macro. */ -#include_next +#include diff --git a/sysdeps/posix/profil.c b/sysdeps/posix/profil.c index beb5ae47cd..6c8adbcd0b 100644 --- a/sysdeps/posix/profil.c +++ b/sysdeps/posix/profil.c @@ -25,7 +25,7 @@ #ifndef SIGPROF -#include_next +#include #else diff --git a/sysdeps/unix/bsd/osf/bits/mman.h b/sysdeps/unix/bsd/osf/bits/mman.h new file mode 100644 index 0000000000..fd5d79deef --- /dev/null +++ b/sysdeps/unix/bsd/osf/bits/mman.h @@ -0,0 +1,71 @@ +/* Flags for BSD-style memory management. OSF/1 version. + Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _BITS_MMAN_H +#define _BITS_MMAN_H 1 + +/* Protections are chosen from these bits, OR'd together. The + implementation does not necessarily support PROT_EXEC or PROT_WRITE + without PROT_READ. The only guarantees are that no writing will be + allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ + +#define PROT_NONE 0x00 /* No access. */ +#define PROT_READ 0x01 /* Pages can be read. */ +#define PROT_WRITE 0x02 /* Pages can be written. */ +#define PROT_EXEC 0x04 /* Pages can be executed. */ + +/* Flags contain mapping type, sharing type and options. */ + +/* Mapping type (must choose one and only one of these). */ +#ifdef __USE_BSD +# define MAP_FILE 0x00 /* Mapped from a file or device. */ +# define MAP_ANON 0x10 /* Allocated from anonymous virtual memory. */ +# define MAP_ANONYMOUS MAP_ANON +# define MAP_TYPE 0xf0 /* Mask for type field. */ +#endif + +/* Sharing types (must choose one and only one of these). */ +#define MAP_SHARED 0x01 /* Share changes. */ +#define MAP_PRIVATE 0x02 /* Changes private; copy pages on write. */ + +/* Other flags. */ +#define MAP_FIXED 0x0100 /* Map address must be exactly as requested. */ +#ifdef __USE_BSD +# define MAP_VARIABLE 0 /* Absence of MAP_FIXED. */ +# define MAP_HASSEMPHORE 0x0200 /* Region may contain semaphores. */ +# define MAP_INHERIT 0x0400 /* Region is retained after exec. */ +# define MAP_UNALIGNED 0x0800 /* File offset need not be page-aligned. */ +#endif + +/* Advice to `madvise'. */ +#ifdef __USE_BSD +# define MADV_NORMAL 0 /* No further special treatment. */ +# define MADV_RANDOM 1 /* Expect random page references. */ +# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ +# define MADV_WILLNEED 3 /* Will need these pages. */ +# define MADV_DONTNEED 4 /* Don't need these pages. */ +# define MADV_SPACEAVAIL 5 /* Ensure that resources are available. */ +#endif + +/* Flags to `msync'. */ +#define MS_ASYNC 1 /* Asynchronous cache flush. */ +#define MS_SYNC 3 /* Synchronous cache flush. */ +#define MS_INVALIDATE 4 /* Invalidate cached pages. */ + +#endif /* bits/mman.h */ diff --git a/sysdeps/unix/bsd/osf/sys/mman.h b/sysdeps/unix/bsd/osf/sys/mman.h deleted file mode 100644 index 6ada4e6497..0000000000 --- a/sysdeps/unix/bsd/osf/sys/mman.h +++ /dev/null @@ -1,119 +0,0 @@ -/* Definitions for BSD-style memory management. OSF/1 version. - Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _SYS_MMAN_H - -#define _SYS_MMAN_H 1 -#include - -#include -#define __need_size_t -#include - - -/* Protections are chosen from these bits, OR'd together. The - implementation does not necessarily support PROT_EXEC or PROT_WRITE - without PROT_READ. The only guarantees are that no writing will be - allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ - -#define PROT_NONE 0x00 /* No access. */ -#define PROT_READ 0x01 /* Pages can be read. */ -#define PROT_WRITE 0x02 /* Pages can be written. */ -#define PROT_EXEC 0x04 /* Pages can be executed. */ - - -/* Flags contain mapping type, sharing type and options. */ - -/* Mapping type (must choose one and only one of these). */ -#ifdef __USE_BSD -# define MAP_FILE 0x00 /* Mapped from a file or device. */ -# define MAP_ANON 0x10 /* Allocated from anonymous virtual memory. */ -# define MAP_ANONYMOUS MAP_ANON -# define MAP_TYPE 0xf0 /* Mask for type field. */ -#endif - -/* Sharing types (must choose one and only one of these). */ -#define MAP_SHARED 0x01 /* Share changes. */ -#define MAP_PRIVATE 0x02 /* Changes private; copy pages on write. */ - -/* Other flags. */ -#define MAP_FIXED 0x0100 /* Map address must be exactly as requested. */ -#ifdef __USE_BSD -# define MAP_VARIABLE 0 /* Absence of MAP_FIXED. */ -# define MAP_HASSEMPHORE 0x0200 /* Region may contain semaphores. */ -# define MAP_INHERIT 0x0400 /* Region is retained after exec. */ -# define MAP_UNALIGNED 0x0800 /* File offset need not be page-aligned. */ -#endif - -/* Advice to `madvise'. */ -#ifdef __USE_BSD -# define MADV_NORMAL 0 /* No further special treatment. */ -# define MADV_RANDOM 1 /* Expect random page references. */ -# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define MADV_WILLNEED 3 /* Will need these pages. */ -# define MADV_DONTNEED 4 /* Don't need these pages. */ -# define MADV_SPACEAVAIL 5 /* Ensure that resources are available. */ -#endif - -/* Flags to `msync'. */ -#define MS_ASYNC 1 /* Asynchronous cache flush. */ -#define MS_SYNC 3 /* Synchronous cache flush. */ -#define MS_INVALIDATE 4 /* Invalidate cached pages. */ - -/* Return value of `mmap' in case of an error. */ -#define MAP_FAILED ((__ptr_t) -1) - - -__BEGIN_DECLS -/* Map addresses starting near ADDR and extending for LEN bytes. from - OFFSET into the file FD describes according to PROT and FLAGS. If ADDR - is nonzero, it is the desired mapping address. If the MAP_FIXED bit is - set in FLAGS, the mapping will be at ADDR exactly (which must be - page-aligned); otherwise the system chooses a convenient nearby address. - The return value is the actual mapping address chosen or MAP_FAILED - for errors (in which case `errno' is set). A successful `mmap' call - deallocates any previous mapping for the affected region. */ - -extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot, - int __flags, int __fd, off_t __offset)); - -/* Deallocate any mapping for the region starting at ADDR and extending LEN - bytes. Returns 0 if successful, -1 for errors (and sets errno). */ -extern int munmap __P ((__ptr_t __addr, size_t __len)); - -/* Change the memory protection of the region starting at ADDR and - extending LEN bytes to PROT. Returns 0 if successful, -1 for errors - (and sets errno). */ -extern int mprotect __P ((__ptr_t __addr, size_t __len, int __prot)); - -/* Synchronize the region starting at ADDR and extending LEN bytes with the - file it maps. Filesystem operations on a file being mapped are - unpredictable before this is done. */ -extern int msync __P ((__ptr_t __addr, size_t __len, int __flags)); - -#ifdef __USE_BSD -/* Advise the system about particular usage patterns the program follows - for the region starting at ADDR and extending LEN bytes. */ -extern int madvise __P ((__ptr_t __addr, size_t __len, int __advice)); -#endif - -__END_DECLS - - -#endif /* sys/mman.h */ diff --git a/sysdeps/unix/bsd/sun/sunos4/bits/mman.h b/sysdeps/unix/bsd/sun/sunos4/bits/mman.h new file mode 100644 index 0000000000..ed80baf2e3 --- /dev/null +++ b/sysdeps/unix/bsd/sun/sunos4/bits/mman.h @@ -0,0 +1,68 @@ +/* Definitions for BSD-style memory management. SunOS 4 version. + Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _BITS_MMAN_H +#define _BITS_MMAN_H 1 + +/* Protections are chosen from these bits, OR'd together. The + implementation does not necessarily support PROT_EXEC or PROT_WRITE + without PROT_READ. The only guarantees are that no writing will be + allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ + +#define PROT_NONE 0x00 /* No access. */ +#define PROT_READ 0x01 /* Pages can be read. */ +#define PROT_WRITE 0x02 /* Pages can be written. */ +#define PROT_EXEC 0x04 /* Pages can be executed. */ + +/* Sharing types (must choose one and only one of these). */ +#define MAP_SHARED 0x01 /* Share changes. */ +#define MAP_PRIVATE 0x02 /* Changes private; copy pages on write. */ +#ifdef __USE_BSD +# define MAP_TYPE 0x0f /* Mask for sharing type. */ +#endif + +/* Other flags. */ +#define MAP_FIXED 0x10 /* Map address must be exactly as requested. */ +/* The following three flags are not actually implemented in SunOS 4.1. */ +#ifdef __USE_BSD +# define MAP_RENAME 0x20 /* Rename private pages to file. */ +# define MAP_NORESERVE 0x40 /* Don't reserve needed swap area. */ +# define MAP_INHERIT 0x80 /* Region is retained after exec. */ +#endif + +/* This is an internal flag that is always set in `mmap' system calls. In + older versions of SunOS 4 `mmap' did not return the actual mapping + address, but always returned zero. This flag says to return the + address; the `mmap' C library function always sets it. */ +#define _MAP_NEW 0x80000000 + +/* Advice to `madvise'. */ +#ifdef __USE_BSD +# define MADV_NORMAL 0 /* No further special treatment. */ +# define MADV_RANDOM 1 /* Expect random page references. */ +# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ +# define MADV_WILLNEED 3 /* Will need these pages. */ +# define MADV_DONTNEED 4 /* Don't need these pages. */ +#endif + +/* Flags to `msync'. */ +#define MS_ASYNC 0x1 /* Return immediately, don't fsync. */ +#define MS_INVALIDATE 0x2 /* Invalidate caches. */ + +#endif /* bits/mman.h */ diff --git a/sysdeps/unix/bsd/sun/sunos4/sys/mman.h b/sysdeps/unix/bsd/sun/sunos4/sys/mman.h deleted file mode 100644 index 15608e5f24..0000000000 --- a/sysdeps/unix/bsd/sun/sunos4/sys/mman.h +++ /dev/null @@ -1,116 +0,0 @@ -/* Definitions for BSD-style memory management. SunOS 4 version. - Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _SYS_MMAN_H - -#define _SYS_MMAN_H 1 -#include - -#include -#define __need_size_t -#include - - -/* Protections are chosen from these bits, OR'd together. The - implementation does not necessarily support PROT_EXEC or PROT_WRITE - without PROT_READ. The only guarantees are that no writing will be - allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ - -#define PROT_NONE 0x00 /* No access. */ -#define PROT_READ 0x01 /* Pages can be read. */ -#define PROT_WRITE 0x02 /* Pages can be written. */ -#define PROT_EXEC 0x04 /* Pages can be executed. */ - - -/* Sharing types (must choose one and only one of these). */ -#define MAP_SHARED 0x01 /* Share changes. */ -#define MAP_PRIVATE 0x02 /* Changes private; copy pages on write. */ -#ifdef __USE_BSD -# define MAP_TYPE 0x0f /* Mask for sharing type. */ -#endif - -/* Other flags. */ -#define MAP_FIXED 0x10 /* Map address must be exactly as requested. */ -/* The following three flags are not actually implemented in SunOS 4.1. */ -#ifdef __USE_BSD -# define MAP_RENAME 0x20 /* Rename private pages to file. */ -# define MAP_NORESERVE 0x40 /* Don't reserve needed swap area. */ -# define MAP_INHERIT 0x80 /* Region is retained after exec. */ -#endif - -/* This is an internal flag that is always set in `mmap' system calls. In - older versions of SunOS 4 `mmap' did not return the actual mapping - address, but always returned zero. This flag says to return the - address; the `mmap' C library function always sets it. */ -#define _MAP_NEW 0x80000000 - -/* Advice to `madvise'. */ -#ifdef __USE_BSD -# define MADV_NORMAL 0 /* No further special treatment. */ -# define MADV_RANDOM 1 /* Expect random page references. */ -# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define MADV_WILLNEED 3 /* Will need these pages. */ -# define MADV_DONTNEED 4 /* Don't need these pages. */ -#endif - -/* Flags to `msync'. */ -#define MS_ASYNC 0x1 /* Return immediately, don't fsync. */ -#define MS_INVALIDATE 0x2 /* Invalidate caches. */ - -/* Return value of `mmap' in case of an error. */ -#define MAP_FAILED ((__ptr_t) -1) - - -__BEGIN_DECLS -/* Map addresses starting near ADDR and extending for LEN bytes. from - OFFSET into the file FD describes according to PROT and FLAGS. If ADDR - is nonzero, it is the desired mapping address. If the MAP_FIXED bit is - set in FLAGS, the mapping will be at ADDR exactly (which must be - page-aligned); otherwise the system chooses a convenient nearby address. - The return value is the actual mapping address chosen or MAP_FAILED - for errors (in which case `errno' is set). A successful `mmap' call - deallocates any previous mapping for the affected region. */ - -extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot, - int __flags, int __fd, __off_t __offset)); - -/* Deallocate any mapping for the region starting at ADDR and extending LEN - bytes. Returns 0 if successful, -1 for errors (and sets errno). */ -extern int munmap __P ((__ptr_t __addr, size_t __len)); - -/* Change the memory protection of the region starting at ADDR and - extending LEN bytes to PROT. Returns 0 if successful, -1 for errors - (and sets errno). */ -extern int mprotect __P ((__ptr_t __addr, size_t __len, int __prot)); - -/* Synchronize the region starting at ADDR and extending LEN bytes with the - file it maps. Filesystem operations on a file being mapped are - unpredictable before this is done. */ -extern int msync __P ((__ptr_t __addr, size_t __len, int __flags)); - -#ifdef __USE_BSD -/* Advise the system about particular usage patterns the program follows - for the region starting at ADDR and extending LEN bytes. */ -extern int madvise __P ((__ptr_t __addr, size_t __len, int __advice)); -#endif - -__END_DECLS - - -#endif /* sys/mman.h */ diff --git a/sysdeps/unix/bsd/ultrix4/bits/mman.h b/sysdeps/unix/bsd/ultrix4/bits/mman.h new file mode 100644 index 0000000000..9acb6ceed5 --- /dev/null +++ b/sysdeps/unix/bsd/ultrix4/bits/mman.h @@ -0,0 +1,51 @@ +/* Definitions for BSD-style memory management. Ultrix 4 version. + Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _BITS_MMAN_H +#define _BITS_MMAN_H 1 + +/* Protections are chosen from these bits, OR'd together. The + implementation does not necessarily support PROT_EXEC or PROT_WRITE + without PROT_READ. The only guarantees are that no writing will be + allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ + +#define PROT_NONE 0x00 /* No access. */ +#define PROT_READ 0x01 /* Pages can be read. */ +#define PROT_WRITE 0x02 /* Pages can be written. */ +#define PROT_EXEC 0x04 /* Pages can be executed. */ +/* Sharing types (must choose one and only one of these). */ +#define MAP_SHARED 0x01 /* Share changes. */ +#define MAP_PRIVATE 0x02 /* Changes private; copy pages on write. */ +#ifdef __USE_BSD +# define MAP_TYPE 0x0f /* Mask for sharing type. */ +#endif + +/* Other flags. */ +#define MAP_FIXED 0x10 /* Map address must be exactly as requested. */ + +/* Advice to `madvise'. */ +#ifdef __USE_BSD +# define MADV_NORMAL 0 /* No further special treatment. */ +# define MADV_RANDOM 1 /* Expect random page references. */ +# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ +# define MADV_WILLNEED 3 /* Will need these pages. */ +# define MADV_DONTNEED 4 /* Don't need these pages. */ +#endif + +#endif /* bits/mman.h */ diff --git a/sysdeps/unix/bsd/ultrix4/sys/mman.h b/sysdeps/unix/bsd/ultrix4/sys/mman.h deleted file mode 100644 index 142509455c..0000000000 --- a/sysdeps/unix/bsd/ultrix4/sys/mman.h +++ /dev/null @@ -1,102 +0,0 @@ -/* Definitions for BSD-style memory management. Ultrix 4 version. - Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _SYS_MMAN_H - -#define _SYS_MMAN_H 1 -#include - -#include -#define __need_size_t -#include - - -/* Protections are chosen from these bits, OR'd together. The - implementation does not necessarily support PROT_EXEC or PROT_WRITE - without PROT_READ. The only guarantees are that no writing will be - allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ - -#define PROT_NONE 0x00 /* No access. */ -#define PROT_READ 0x01 /* Pages can be read. */ -#define PROT_WRITE 0x02 /* Pages can be written. */ -#define PROT_EXEC 0x04 /* Pages can be executed. */ - - -/* Sharing types (must choose one and only one of these). */ -#define MAP_SHARED 0x01 /* Share changes. */ -#define MAP_PRIVATE 0x02 /* Changes private; copy pages on write. */ -#ifdef __USE_BSD -# define MAP_TYPE 0x0f /* Mask for sharing type. */ -#endif - -/* Other flags. */ -#define MAP_FIXED 0x10 /* Map address must be exactly as requested. */ - -/* Advice to `madvise'. */ -#ifdef __USE_BSD -# define MADV_NORMAL 0 /* No further special treatment. */ -# define MADV_RANDOM 1 /* Expect random page references. */ -# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define MADV_WILLNEED 3 /* Will need these pages. */ -# define MADV_DONTNEED 4 /* Don't need these pages. */ -#endif - -/* Return value of `mmap' in case of an error. */ -#define MAP_FAILED ((__ptr_t) -1) - - -__BEGIN_DECLS -/* Map addresses starting near ADDR and extending for LEN bytes. from - OFFSET into the file FD describes according to PROT and FLAGS. If ADDR - is nonzero, it is the desired mapping address. If the MAP_FIXED bit is - set in FLAGS, the mapping will be at ADDR exactly (which must be - page-aligned); otherwise the system chooses a convenient nearby address. - The return value is the actual mapping address chosen or MAP_FAILED - for errors (in which case `errno' is set). A successful `mmap' call - deallocates any previous mapping for the affected region. */ - -extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot, - int __flags, int __fd, off_t __offset)); - -/* Deallocate any mapping for the region starting at ADDR and extending LEN - bytes. Returns 0 if successful, -1 for errors (and sets errno). */ -extern int munmap __P ((__ptr_t __addr, size_t __len)); - -/* Change the memory protection of the region starting at ADDR and - extending LEN bytes to PROT. Returns 0 if successful, -1 for errors - (and sets errno). */ -extern int mprotect __P ((__ptr_t __addr, size_t __len, int __prot)); - -/* Ultrix 4 does not implement `msync' or `madvise'. */ - -/* Synchronize the region starting at ADDR and extending LEN bytes with the - file it maps. Filesystem operations on a file being mapped are - unpredictable before this is done. */ -extern int msync __P ((__ptr_t __addr, size_t __len)); - -#ifdef __USE_BSD -/* Advise the system about particular usage patterns the program follows - for the region starting at ADDR and extending LEN bytes. */ -extern int madvise __P ((__ptr_t __addr, size_t __len, int __advice)); -#endif - -__END_DECLS - - -#endif /* sys/mman.h */ diff --git a/sysdeps/unix/sysv/irix4/bits/mman.h b/sysdeps/unix/sysv/irix4/bits/mman.h new file mode 100644 index 0000000000..c378cce648 --- /dev/null +++ b/sysdeps/unix/sysv/irix4/bits/mman.h @@ -0,0 +1,64 @@ +/* Definitions for BSD-style memory management. Irix 4 version. + Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _BITS_MMAN_H +#define _BITS_MMAN_H 1 + +/* Protections are chosen from these bits, OR'd together. The + implementation does not necessarily support PROT_EXEC or PROT_WRITE + without PROT_READ. The only guarantees are that no writing will be + allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ + +#define PROT_NONE 0x00 /* No access. */ +#define PROT_READ 0x04 /* Pages can be read. */ +#define PROT_WRITE 0x02 /* Pages can be written. */ +#define PROT_EXEC 0x01 /* Pages can be executed. */ +#ifdef __USE_MISC +# define PROT_EXECUTE PROT_EXEC +#endif + +/* Sharing types (must choose one and only one of these). */ +#define MAP_SHARED 0x01 /* Share changes. */ +#define MAP_PRIVATE 0x02 /* Changes private; copy pages on write. */ +#ifdef __USE_BSD +# define MAP_TYPE 0x0f /* Mask for sharing type. */ +#endif + +/* Other flags. */ +#define MAP_FIXED 0x10 /* Map address must be exactly as requested. */ +#ifdef __USE_MISC +# define MAP_RENAME 0x20 /* Rename private pages to file. */ +# define MAP_AUTOGROW 0x40 /* Grow file as pages are written. */ +# define MAP_LOCAL 0x80 /* Copy the mapped region on fork. */ +#endif + +/* Advice to `madvise'. */ +#ifdef __USE_BSD +# define MADV_NORMAL 0 /* No further special treatment. */ +# define MADV_RANDOM 1 /* Expect random page references. */ +# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ +# define MADV_WILLNEED 3 /* Will need these pages. */ +# define MADV_DONTNEED 4 /* Don't need these pages. */ +#endif + +/* Flags to `msync'. */ +#define MS_ASYNC 0x1 /* Return immediately, don't fsync. */ +#define MS_INVALIDATE 0x2 /* Invalidate caches. */ + +#endif /* bits/mman.h */ diff --git a/sysdeps/unix/sysv/irix4/sys/mman.h b/sysdeps/unix/sysv/irix4/sys/mman.h deleted file mode 100644 index 9147aa7e58..0000000000 --- a/sysdeps/unix/sysv/irix4/sys/mman.h +++ /dev/null @@ -1,110 +0,0 @@ -/* Definitions for BSD-style memory management. Irix 4 version. - Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _SYS_MMAN_H - -#define _SYS_MMAN_H 1 -#include - -#include - - -/* Protections are chosen from these bits, OR'd together. The - implementation does not necessarily support PROT_EXEC or PROT_WRITE - without PROT_READ. The only guarantees are that no writing will be - allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ - -#define PROT_NONE 0x00 /* No access. */ -#define PROT_READ 0x04 /* Pages can be read. */ -#define PROT_WRITE 0x02 /* Pages can be written. */ -#define PROT_EXEC 0x01 /* Pages can be executed. */ -#ifdef __USE_MISC -# define PROT_EXECUTE PROT_EXEC -#endif - - -/* Sharing types (must choose one and only one of these). */ -#define MAP_SHARED 0x01 /* Share changes. */ -#define MAP_PRIVATE 0x02 /* Changes private; copy pages on write. */ -#ifdef __USE_BSD -# define MAP_TYPE 0x0f /* Mask for sharing type. */ -#endif - -/* Other flags. */ -#define MAP_FIXED 0x10 /* Map address must be exactly as requested. */ -#ifdef __USE_MISC -# define MAP_RENAME 0x20 /* Rename private pages to file. */ -# define MAP_AUTOGROW 0x40 /* Grow file as pages are written. */ -# define MAP_LOCAL 0x80 /* Copy the mapped region on fork. */ -#endif - -/* Advice to `madvise'. */ -#ifdef __USE_BSD -# define MADV_NORMAL 0 /* No further special treatment. */ -# define MADV_RANDOM 1 /* Expect random page references. */ -# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define MADV_WILLNEED 3 /* Will need these pages. */ -# define MADV_DONTNEED 4 /* Don't need these pages. */ -#endif - -/* Flags to `msync'. */ -#define MS_ASYNC 0x1 /* Return immediately, don't fsync. */ -#define MS_INVALIDATE 0x2 /* Invalidate caches. */ - -/* Return value of `mmap' in case of an error. */ -#define MAP_FAILED ((__ptr_t) -1) - - -__BEGIN_DECLS -/* Map addresses starting near ADDR and extending for LEN bytes. from - OFFSET into the file FD describes according to PROT and FLAGS. If ADDR - is nonzero, it is the desired mapping address. If the MAP_FIXED bit is - set in FLAGS, the mapping will be at ADDR exactly (which must be - page-aligned); otherwise the system chooses a convenient nearby address. - The return value is the actual mapping address chosen or MAP_FAILED - for errors (in which case `errno' is set). A successful `mmap' call - deallocates any previous mapping for the affected region. */ - -extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot, - int __flags, int __fd, __off_t __offset)); - -/* Deallocate any mapping for the region starting at ADDR and extending LEN - bytes. Returns 0 if successful, -1 for errors (and sets errno). */ -extern int munmap __P ((__ptr_t __addr, size_t __len)); - -/* Change the memory protection of the region starting at ADDR and - extending LEN bytes to PROT. Returns 0 if successful, -1 for errors - (and sets errno). */ -extern int mprotect __P ((__ptr_t __addr, size_t __len, int __prot)); - -/* Synchronize the region starting at ADDR and extending LEN bytes with the - file it maps. Filesystem operations on a file being mapped are - unpredictable before this is done. */ -extern int msync __P ((__ptr_t __addr, size_t __len, int __flags)); - -#ifdef __USE_BSD -/* Advise the system about particular usage patterns the program follows - for the region starting at ADDR and extending LEN bytes. */ -extern int madvise __P ((__ptr_t __addr, size_t __len, int __advice)); -#endif - -__END_DECLS - - -#endif /* sys/mman.h */ diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index fa12c056e2..8efda034e5 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -15,7 +15,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h sys/mtio.h \ sys/io.h sys/klog.h sys/kdaemon.h \ sys/user.h sys/sysmacros.h sys/procfs.h sys/prctl.h \ sys/kd.h sys/soundcard.h sys/vt.h \ - sys/quota.h sys/fsuid.h bits/mman.h \ + sys/quota.h sys/fsuid.h \ scsi/sg.h scsi/scsi.h sys/pci.h sys/ultrasound.h \ sys/sendfile.h diff --git a/sysdeps/unix/sysv/linux/alpha/Dist b/sysdeps/unix/sysv/linux/alpha/Dist index d20860445c..21e134024f 100644 --- a/sysdeps/unix/sysv/linux/alpha/Dist +++ b/sysdeps/unix/sysv/linux/alpha/Dist @@ -1,6 +1,5 @@ alpha/ptrace.h alpha/regdef.h -bits/mman.h clone.S ieee_get_fp_control.S ieee_set_fp_control.S diff --git a/sysdeps/unix/sysv/linux/arm/Dist b/sysdeps/unix/sysv/linux/arm/Dist index 6e1be78f3a..3217436f25 100644 --- a/sysdeps/unix/sysv/linux/arm/Dist +++ b/sysdeps/unix/sysv/linux/arm/Dist @@ -1,3 +1,2 @@ -bits/mman.h clone.S init-first.h diff --git a/sysdeps/unix/sysv/linux/i386/Dist b/sysdeps/unix/sysv/linux/i386/Dist index 53a6b338fb..646be1baaa 100644 --- a/sysdeps/unix/sysv/linux/i386/Dist +++ b/sysdeps/unix/sysv/linux/i386/Dist @@ -1,4 +1,3 @@ -bits/mman.h clone.S s_pread64.S s_pwrite64.S diff --git a/sysdeps/unix/sysv/linux/m68k/Dist b/sysdeps/unix/sysv/linux/m68k/Dist index 103e273817..6059865f54 100644 --- a/sysdeps/unix/sysv/linux/m68k/Dist +++ b/sysdeps/unix/sysv/linux/m68k/Dist @@ -1,4 +1,3 @@ -bits/mman.h clone.S mremap.S sys/reg.h diff --git a/sysdeps/unix/sysv/linux/mips/Dist b/sysdeps/unix/sysv/linux/mips/Dist index 0f106cf8fa..f3ae821129 100644 --- a/sysdeps/unix/sysv/linux/mips/Dist +++ b/sysdeps/unix/sysv/linux/mips/Dist @@ -1,4 +1,3 @@ -bits/mman.h clone.S kernel_sigaction.h kernel_stat.h diff --git a/sysdeps/unix/sysv/linux/powerpc/Dist b/sysdeps/unix/sysv/linux/powerpc/Dist index 71eb76f0c0..081b6d2ebe 100644 --- a/sysdeps/unix/sysv/linux/powerpc/Dist +++ b/sysdeps/unix/sysv/linux/powerpc/Dist @@ -1,4 +1,3 @@ -bits/mman.h clone.S kernel_stat.h kernel_termios.h diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/Dist b/sysdeps/unix/sysv/linux/sparc/sparc32/Dist index b5928d86f2..5122b16230 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/Dist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/Dist @@ -1,4 +1,3 @@ -bits/mman.h clone.S pipe.S fork.S diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Dist b/sysdeps/unix/sysv/linux/sparc/sparc64/Dist index c22b73ebd2..7364de645f 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/Dist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Dist @@ -1,4 +1,3 @@ -bits/mman.h clone.S kernel_stat.h getcontext.S diff --git a/sysdeps/unix/sysv/linux/sys/mman.h b/sysdeps/unix/sysv/linux/sys/mman.h deleted file mode 100644 index ac17af71c0..0000000000 --- a/sysdeps/unix/sysv/linux/sys/mman.h +++ /dev/null @@ -1,103 +0,0 @@ -/* Definitions for POSIX-style memory management. Linux version. - Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _SYS_MMAN_H -#define _SYS_MMAN_H 1 - -#include -#include -#define __need_size_t -#include - -/* Get the bit values from the kernel header file. */ -#include - -/* Return value of `mmap' in case of an error. */ -#define MAP_FAILED ((__ptr_t) -1) - -__BEGIN_DECLS -/* Map addresses starting near ADDR and extending for LEN bytes. from - OFFSET into the file FD describes according to PROT and FLAGS. If ADDR - is nonzero, it is the desired mapping address. If the MAP_FIXED bit is - set in FLAGS, the mapping will be at ADDR exactly (which must be - page-aligned); otherwise the system chooses a convenient nearby address. - The return value is the actual mapping address chosen or MAP_FAILED - for errors (in which case `errno' is set). A successful `mmap' call - deallocates any previous mapping for the affected region. */ - -#ifndef __USE_FILE_OFFSET64 -extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot, - int __flags, int __fd, __off_t __offset)); -#else -extern __ptr_t mmap __P ((__ptr_t __addr, size_t __len, int __prot, - int __flags, int __fd, __off64_t __offset)) - __asm__ ("mmap64"); -#endif -#ifdef __USE_LARGEFILE64 -extern __ptr_t mmap64 __P ((__ptr_t __addr, size_t __len, int __prot, - int __flags, int __fd, __off64_t __offset)); -#endif - -/* Deallocate any mapping for the region starting at ADDR and extending LEN - bytes. Returns 0 if successful, -1 for errors (and sets errno). */ -extern int munmap __P ((__ptr_t __addr, size_t __len)); - -/* Change the memory protection of the region starting at ADDR and - extending LEN bytes to PROT. Returns 0 if successful, -1 for errors - (and sets errno). */ -extern int mprotect __P ((__ptr_t __addr, size_t __len, int __prot)); - -/* Synchronize the region starting at ADDR and extending LEN bytes with the - file it maps. Filesystem operations on a file being mapped are - unpredictable before this is done. Flags are from the MS_* set. */ -extern int msync __P ((__ptr_t __addr, size_t __len, int __flags)); - -#ifdef __USE_BSD -/* Advise the system about particular usage patterns the program follows - for the region starting at ADDR and extending LEN bytes. */ -extern int madvise __P ((__ptr_t __addr, size_t __len, int __advice)); -#endif - -/* Cause all currently mapped pages of the process to be memory resident - until unlocked by a call to the `munlockall', until the process exits, - or until the process calls `execve'. */ -extern int mlockall __P ((int __flags)); - -/* All currently mapped pages of the process' address space become - unlocked. */ -extern int munlockall __P ((void)); - -/* Guarantee all whole pages mapped by the range [ADDR,ADDR+LEN) to - be memory resident. */ -extern int mlock __P ((__const __ptr_t __addr, size_t __len)); - -/* Unlock whole pages previously mapped by the range [ADDR,ADDR+LEN). */ -extern int munlock __P ((__const __ptr_t __addr, size_t __len)); - -#ifdef __USE_MISC -/* Remap pages mapped by the range [ADDR,ADDR+OLD_LEN) to new length - NEW_LEN. If MAY_MOVE is MREMAP_MAYMOVE the returned address may - differ from ADDR. */ -extern __ptr_t mremap __P ((__ptr_t __addr, size_t __old_len, - size_t __new_len, int __may_move)); -#endif - -__END_DECLS - -#endif /* _SYS_MMAN_H */ -- cgit 1.4.1