aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/cython/Cython/Includes/posix/mman.pxd
blob: 483547621af50430909c78b6537dcfaace2404f1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/mman.h.html 
 
from posix.types cimport off_t, mode_t 
 
cdef extern from "<sys/mman.h>" nogil: 
    enum: PROT_EXEC                 # protection bits for mmap/mprotect 
    enum: PROT_READ 
    enum: PROT_WRITE 
    enum: PROT_NONE 
 
    enum: MAP_PRIVATE               # flag bits for mmap 
    enum: MAP_SHARED 
    enum: MAP_FIXED 
    enum: MAP_ANON                  # These three are not in POSIX, but are 
    enum: MAP_ANONYMOUS             # fairly common in spelling/semantics 
    enum: MAP_STACK 
 
    enum: MAP_LOCKED                # Typically available only on Linux 
    enum: MAP_HUGETLB 
    enum: MAP_POPULATE 
    enum: MAP_NORESERVE 
    enum: MAP_GROWSDOWN 
 
    enum: MAP_NOCORE                #  Typically available only on BSD 
    enum: MAP_NOSYNC 
 
    void *MAP_FAILED 
 
    void *mmap(void *addr, size_t Len, int prot, int flags, int fd, off_t off) 
    int   munmap(void *addr, size_t Len) 
    int   mprotect(void *addr, size_t Len, int prot) 
 
    enum: MS_ASYNC 
    enum: MS_SYNC 
    enum: MS_INVALIDATE 
    int   msync(void *addr, size_t Len, int flags) 
 
    enum: POSIX_MADV_NORMAL         # POSIX advice flags 
    enum: POSIX_MADV_SEQUENTIAL 
    enum: POSIX_MADV_RANDOM 
    enum: POSIX_MADV_WILLNEED 
    enum: POSIX_MADV_DONTNEED 
    int   posix_madvise(void *addr, size_t Len, int advice) 
 
    enum: MCL_CURRENT 
    enum: MCL_FUTURE 
    int   mlock(const void *addr, size_t Len) 
    int   munlock(const void *addr, size_t Len) 
    int   mlockall(int flags) 
    int   munlockall() 
    # Linux-specific 
    enum: MLOCK_ONFAULT 
    enum: MCL_ONFAULT 
    int   mlock2(const void *addr, size_t len, int flags) 
 
    int shm_open(const char *name, int oflag, mode_t mode) 
    int shm_unlink(const char *name) 
 
    # often available 
    enum: MADV_NORMAL               # pre-POSIX advice flags; should translate 1-1 to POSIX_* 
    enum: MADV_RANDOM               # but in practice it is not always the same. 
    enum: MADV_SEQUENTIAL 
    enum: MADV_WILLNEED 
    enum: MADV_DONTNEED 
    enum: MADV_REMOVE               # other pre-POSIX advice flags; often available 
    enum: MADV_DONTFORK 
    enum: MADV_DOFORK 
    enum: MADV_HWPOISON 
    enum: MADV_MERGEABLE, 
    enum: MADV_UNMERGEABLE 
    enum: MADV_SOFT_OFFLINE 
    enum: MADV_HUGEPAGE 
    enum: MADV_NOHUGEPAGE 
    enum: MADV_DONTDUMP 
    enum: MADV_DODUMP 
    enum: MADV_FREE 
    enum: MADV_WIPEONFORK 
    enum: MADV_KEEPONFORK 
    int   madvise(void *addr, size_t Len, int advice) 
 
    # sometimes available 
    int   mincore(void *addr, size_t Len, unsigned char *vec) 
 
    # These two are Linux specific but sometimes very efficient 
    void *mremap(void *old_addr, size_t old_len, size_t new_len, int flags, ...) 
    int   remap_file_pages(void *addr, size_t Len, int prot, 
                           size_t pgoff, int flags) 
 
    # The rare but standardized typed memory option 
    enum: POSIX_TYPED_MEM_ALLOCATE 
    enum: POSIX_TYPED_MEM_ALLOCATE_CONTIG 
    enum: POSIX_TYPED_MEM_MAP_ALLOCATABLE 
    int posix_typed_mem_open(const char *name, int oflag, int tflag) 
    int posix_mem_offset(const void *addr, size_t Len, off_t *off, 
                         size_t *contig_len, int *fildes) 
 
    cdef struct posix_typed_mem_info: 
        size_t posix_tmi_length 
    int posix_typed_mem_get_info(int fildes, posix_typed_mem_info *info)