1. Address space management
Start python section to spkgs/mmap.py[1
/1
]
1: #line 9 "./lpsrc/flx_mmap.pak"
2: if HAVE_MMAP:
3: unit_tests = glob.glob('test/mmap/mmap-*.flx')
4:
5: iscr_source = ['lpsrc/flx_mmap.pak']
6: weaver_directory = 'doc/mmap/'
7:
Start data section to config/mmap.fpc[1
/1
]
Start felix section to lib/mmap.flx[1
/1
]
1: #line 21 "./lpsrc/flx_mmap.pak"
2:
3:
4: module Mmap
5: {
6: header """
7: #include <sys/mman.h>
8: #include <unistd.h>
9:
10: // MAP_ANON is an older form of MAP_ANONYMOUS, and should be compatible
11: #if !defined(MAP_ANONYMOUS) && defined(MAP_ANON)
12: # define MAP_ANONYMOUS MAP_ANON
13: #endif
14: """;
15:
16: typedef off_t = unsigned long;
17:
18: #line 55 "./lpsrc/flx_mmap.pak"
19: const PROT_EXEC : int;
20: #line 55 "./lpsrc/flx_mmap.pak"
21: const PROT_READ : int;
22: #line 55 "./lpsrc/flx_mmap.pak"
23: const PROT_WRITE : int;
24: #line 55 "./lpsrc/flx_mmap.pak"
25: const MAP_DENYWRITE: int;
26: #line 55 "./lpsrc/flx_mmap.pak"
27: const MAP_ANONYMOUS: int;
28: #line 55 "./lpsrc/flx_mmap.pak"
29: const MAP_FILE: int;
30: #line 55 "./lpsrc/flx_mmap.pak"
31: const MAP_FIXED: int;
32: #line 55 "./lpsrc/flx_mmap.pak"
33: const MAP_SHARED : int;
34: #line 55 "./lpsrc/flx_mmap.pak"
35: const MAP_PRIVATE : int;
36: #line 55 "./lpsrc/flx_mmap.pak"
37: const MAP_NORESERVE: int;
38: #line 55 "./lpsrc/flx_mmap.pak"
39: const MAP_LOCKED: int;
40: #line 55 "./lpsrc/flx_mmap.pak"
41: const MAP_GROWSDOWN: int;
42: #line 55 "./lpsrc/flx_mmap.pak"
43: const MAP_POPULATE: int;
44: #line 55 "./lpsrc/flx_mmap.pak"
45: const MAP_NONBLOCK: int;
46:
47: const MAP_FAILED : address;
48:
49:
50: const _SC_PAGESIZE : long = "sysconf(_SC_PAGESIZE)";
51:
52: fun mmap:
53: address *
54: size *
55: int *
56: int *
57: int *
58: off_t
59: -> address;
60:
61: fun munmap: address * size -> int;
62: }
63: