1 /** 2 * D header file for Darwin 3 * 4 * Authors: Martin Nowak 5 */ 6 module core.sys.darwin.sys.mman; 7 8 version (OSX) 9 version = Darwin; 10 else version (iOS) 11 version = Darwin; 12 else version (TVOS) 13 version = Darwin; 14 else version (WatchOS) 15 version = Darwin; 16 17 version (Darwin): 18 extern (C): 19 nothrow: 20 @nogc: 21 22 public import core.sys.posix.sys.mman; 23 import core.sys.darwin.sys.cdefs; 24 import core.sys.posix.sys.types; 25 26 // already in core.sys.posix.sys.mman 27 // enum PROT_NONE = 0x00; 28 // enum PROT_READ = 0x01; 29 // enum PROT_WRITE = 0x02; 30 // enum PROT_EXEC = 0x04; 31 32 // already in core.sys.posix.sys.mman 33 // enum MAP_SHARED = 0x0001; 34 // enum MAP_PRIVATE = 0x0002; 35 static if (_DARWIN_C_SOURCE) 36 alias MAP_COPY = MAP_PRIVATE; 37 // enum MAP_FIXED = 0x0010; 38 39 static if (_DARWIN_C_SOURCE) 40 { 41 enum MAP_RENAME = 0x0020; 42 enum MAP_NORESERVE = 0x0040; 43 enum MAP_RESERVED0080 = 0x0080; 44 enum MAP_NOEXTEND = 0x0100; 45 enum MAP_HASSEMAPHORE = 0x0200; 46 enum MAP_NOCACHE = 0x0400; 47 enum MAP_JIT = 0x0800; 48 } 49 50 // already in core.sys.posix.sys.mman 51 // enum MCL_CURRENT = 0x0001; 52 // enum MCL_FUTURE = 0x0002; 53 54 // enum MAP_FAILED = cast(void*)-1; 55 56 // enum MS_ASYNC = 0x0001; 57 // enum MS_INVALIDATE = 0x0002; 58 // enum MS_SYNC = 0x0010; 59 60 static if (_DARWIN_C_SOURCE) 61 { 62 enum MS_KILLPAGES = 0x0004; 63 enum MS_DEACTIVATE = 0x0008; 64 65 enum MAP_FILE = 0x0000; 66 67 // already in core.sys.posix.sys.mman 68 // enum MAP_ANON = 0x1000; 69 70 // enum POSIX_MADV_NORMAL = 0; 71 // enum POSIX_MADV_RANDOM = 1; 72 // enum POSIX_MADV_SEQUENTIAL = 2; 73 // enum POSIX_MADV_WILLNEED = 3; 74 // enum POSIX_MADV_DONTNEED = 4; 75 76 alias MADV_NORMAL = POSIX_MADV_NORMAL; 77 alias MADV_RANDOM = POSIX_MADV_RANDOM; 78 alias MADV_SEQUENTIAL = POSIX_MADV_SEQUENTIAL; 79 alias MADV_WILLNEED = POSIX_MADV_WILLNEED; 80 alias MADV_DONTNEED = POSIX_MADV_DONTNEED; 81 enum MADV_FREE = 5; 82 enum MADV_ZERO_WIRED_PAGES = 6; 83 enum MADV_FREE_REUSABLE = 7; 84 enum MADV_FREE_REUSE = 8; 85 enum MADV_CAN_REUSE = 9; 86 87 enum MINCORE_INCORE = 0x1; 88 enum MINCORE_REFERENCED = 0x2; 89 enum MINCORE_MODIFIED = 0x4; 90 enum MINCORE_REFERENCED_OTHER = 0x8; 91 enum MINCORE_MODIFIED_OTHER = 0x10; 92 } 93 94 // already in core.sys.posix.sys.mman 95 // int mlockall(int); 96 // int munlockall(void); 97 // int mlock(const void *, size_t); 98 // void * mmap(void *, size_t, int, int, int, off_t); 99 // int mprotect(void *, size_t, int); 100 // int msync(void *, size_t, int); 101 // int munlock(const void *, size_t); 102 // int munmap(void *, size_t); 103 // int shm_open(const char *, int, ...); 104 // int shm_unlink(const char *); 105 // int posix_madvise(void *, size_t, int); 106 107 static if (_DARWIN_C_SOURCE) 108 { 109 int madvise(void *, size_t, int); 110 int mincore(const(void)*, size_t, char *); 111 int minherit(void *, size_t, int); 112 }