%ifndef __ASM_GENERIC_MMAN_COMMON_INC__
%define __ASM_GENERIC_MMAN_COMMON_INC__ 1
; Author: Michael S. Tsirkin <This email address is being protected from spambots. You need JavaScript enabled to view it.>, Mellanox Technologies Ltd.
; Based on: asm-xxx/mman.h
; converted for nasm by Roberto Aguas Guerreiro <This email address is being protected from spambots. You need JavaScript enabled to view it.>
%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_SEM 0x8 ; page may be used for atomic ops
%define PROT_NONE 0x0 ; page can not be accessed
%define PROT_GROWSDOWN 0x01000000 ; mprotect flag: extend change to start of growsdown vma
%define PROT_GROWSUP 0x02000000 ; mprotect flag: extend change to end of growsup vma
%define MAP_SHARED 0x01 ; Share changes
%define MAP_PRIVATE 0x02 ; Changes are private
%define MAP_TYPE 0x0f ; Mask for type of mapping
%define MAP_FIXED 0x10 ; Interpret addr exactly
%define MAP_ANONYMOUS 0x20 ; don't use a file
%ifdef CONFIG_MMAP_ALLOW_UNINITIALIZED
%define MAP_UNINITIALIZED 0x4000000 ; For anonymous mmap, memory could be uninitialized
%else
%define MAP_UNINITIALIZED 0x0 ; Don't support this flag
%endif
%define MS_ASYNC 1 ; sync memory asynchronously
%define MS_INVALIDATE 2 ; invalidate the caches
%define MS_SYNC 4 ; synchronous memory sync
%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
; common parameters: try to keep these consistent across architectures
%define MADV_REMOVE 9 ; remove these pages & resources
%define MADV_DONTFORK 10 ; don't inherit across fork
%define MADV_DOFORK 11 ; do inherit across fork
%define MADV_HWPOISON 100 ; poison a page for testing
%define MADV_SOFT_OFFLINE 101 ; soft offline page for testing
%define MADV_MERGEABLE 12 ; KSM may merge identical pages
%define MADV_UNMERGEABLE 13 ; KSM may not merge identical pages
%define MADV_HUGEPAGE 14 ; Worth backing with hugepages
%define MADV_NOHUGEPAGE 15 ; Not worth backing with hugepages
%define MADV_DONTDUMP 16 ; Explicity exclude from the core dump, overrides the coredump filter bits
%define MADV_DODUMP 17 ; Clear the MADV_NODUMP flag
; compatibility flags
%define MAP_FILE 0
; When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size.
; This gives us 6 bits, which is enough until someone invents 128 bit address
; spaces.
;
; Assume these are all power of twos.
; When 0 use the default page size.
%define MAP_HUGE_SHIFT 26
%define MAP_HUGE_MASK 0x3f
%endif ; __ASM_GENERIC_MMAN_COMMON_INC__