mirror of
https://sourceware.org/git/glibc.git
synced 2025-09-07 01:26:44 +03:00
This patch updates the hppa definition of MAP_TYPE to reflect a corresponding change in the Linux kernel in 4.17 (so the value now has four bits set, as it does on other architectures, although they are different from other architectures because of hppa differences in other MAP_* bits). Tested with build-many-glibcs.py for hppa. * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_MISC] (MAP_TYPE): Change value to 0x2b.
119 lines
4.9 KiB
C
119 lines
4.9 KiB
C
/* Definitions for POSIX memory map interface. Linux/HPPA version.
|
|
Copyright (C) 1997-2018 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 Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 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
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with the GNU C Library. If not, see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef _SYS_MMAN_H
|
|
# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
|
|
#endif
|
|
|
|
/* These are taken from the kernel definitions. */
|
|
|
|
#define PROT_READ 0x1 /* Page can be read */
|
|
#define PROT_WRITE 0x2 /* Page can be written */
|
|
#define PROT_EXEC 0x4 /* Page can be executed */
|
|
#define PROT_NONE 0x0 /* Page can not be accessed */
|
|
#define PROT_GROWSDOWN 0x01000000 /* Extend change to start of
|
|
growsdown vma (mprotect only). */
|
|
#define PROT_GROWSUP 0x02000000 /* Extend change to start of
|
|
growsup vma (mprotect only). */
|
|
|
|
#define MAP_SHARED 0x01 /* Share changes */
|
|
#define MAP_PRIVATE 0x02 /* Changes are private */
|
|
#ifdef __USE_MISC
|
|
# define MAP_SHARED_VALIDATE 0x03 /* Share changes and validate
|
|
extension flags. */
|
|
# define MAP_TYPE 0x2b /* Mask for type of mapping */
|
|
#endif
|
|
|
|
/* Other flags. */
|
|
#define MAP_FIXED 0x04 /* Interpret addr exactly */
|
|
#ifdef __USE_MISC
|
|
# define MAP_FILE 0x0
|
|
# define MAP_ANONYMOUS 0x10 /* Don't use a file */
|
|
# define MAP_ANON MAP_ANONYMOUS
|
|
# define MAP_VARIABLE 0
|
|
/* When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size. */
|
|
# define MAP_HUGE_SHIFT 26
|
|
# define MAP_HUGE_MASK 0x3f
|
|
#endif
|
|
|
|
/* These are Linux-specific. */
|
|
#ifdef __USE_MISC
|
|
# define MAP_DENYWRITE 0x0800 /* ETXTBSY */
|
|
# define MAP_EXECUTABLE 0x1000 /* Mark it as an executable */
|
|
# define MAP_LOCKED 0x2000 /* Pages are locked */
|
|
# define MAP_NORESERVE 0x4000 /* Don't check for reservations */
|
|
# define MAP_GROWSDOWN 0x8000 /* Stack-like segment */
|
|
# define MAP_POPULATE 0x10000 /* Populate (prefault) pagetables */
|
|
# define MAP_NONBLOCK 0x20000 /* Do not block on IO */
|
|
# define MAP_STACK 0x40000 /* Create for process/thread stacks */
|
|
# define MAP_HUGETLB 0x80000 /* Create a huge page mapping */
|
|
# define MAP_FIXED_NOREPLACE 0x100000 /* MAP_FIXED but do not unmap
|
|
underlying mapping. */
|
|
#endif
|
|
|
|
/* Flags to "msync" */
|
|
#define MS_SYNC 1 /* Synchronous memory sync */
|
|
#define MS_ASYNC 2 /* Sync memory asynchronously */
|
|
#define MS_INVALIDATE 4 /* Invalidate the caches */
|
|
|
|
/* Flags to "mlockall" */
|
|
#define MCL_CURRENT 1 /* Lock all current mappings */
|
|
#define MCL_FUTURE 2 /* Lock all future mappings */
|
|
#define MCL_ONFAULT 4 /* Lock all pages that are faulted in */
|
|
|
|
/* Flags for `mremap'. */
|
|
#ifdef __USE_GNU
|
|
# define MREMAP_MAYMOVE 1
|
|
# define MREMAP_FIXED 2
|
|
#endif
|
|
|
|
/* Advice to "madvise" */
|
|
#ifdef __USE_MISC
|
|
# 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 /* Dont need these pages */
|
|
# define MADV_FREE 8 /* Free pages only if memory pressure. */
|
|
# define MADV_REMOVE 9 /* Remove these pages and resources. */
|
|
# define MADV_DONTFORK 10 /* Do not inherit across fork. */
|
|
# define MADV_DOFORK 11 /* Do inherit across fork. */
|
|
# define MADV_MERGEABLE 65 /* KSM may merge identical pages */
|
|
# define MADV_UNMERGEABLE 66 /* KSM may not merge identical pages */
|
|
# define MADV_HUGEPAGE 67 /* Worth backing with hugepages */
|
|
# define MADV_NOHUGEPAGE 68 /* Not worth backing with hugepages */
|
|
# define MADV_DONTDUMP 69 /* Explicity exclude from the core dump,
|
|
overrides the coredump filter bits */
|
|
# define MADV_DODUMP 70 /* Clear the MADV_NODUMP flag */
|
|
# define MADV_WIPEONFORK 71 /* Zero memory on fork, child only. */
|
|
# define MADV_KEEPONFORK 72 /* Undo MADV_WIPEONFORK. */
|
|
# define MADV_HWPOISON 100 /* Poison a page for testing. */
|
|
# define MADV_SOFT_OFFLINE 101 /* Soft offline page for testing. */
|
|
#endif
|
|
|
|
/* The POSIX people had to invent similar names for the same things. */
|
|
#ifdef __USE_XOPEN2K
|
|
# define POSIX_MADV_NORMAL 0 /* No further special treatment. */
|
|
# define POSIX_MADV_RANDOM 1 /* Expect random page references. */
|
|
# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references. */
|
|
# define POSIX_MADV_WILLNEED 3 /* Will need these pages. */
|
|
# define POSIX_MADV_DONTNEED 4 /* Don't need these pages. */
|
|
#endif
|
|
|
|
#include <bits/mman-shared.h>
|