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. --- 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 --------------------------- 6 files changed, 190 insertions(+), 337 deletions(-) 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 (limited to 'sysdeps/unix/bsd') 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 */ -- cgit 1.4.1