X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fapi%2Fsys_mman.c;h=62b17229284359c70454e881be9c5eb09835b72d;hb=2113a3ed8217775797dd9a82aa420c10ef1712d5;hp=421722350c695a969a791a063d03c7ebbeed1d5c;hpb=f81126942f3b97eec5bdf2fb57a45579946be59d;p=libc-test diff --git a/src/api/sys_mman.c b/src/api/sys_mman.c index 4217223..62b1722 100644 --- a/src/api/sys_mman.c +++ b/src/api/sys_mman.c @@ -1,4 +1,5 @@ #include +#include "options.h" #define T(t) (t*)0; #define F(t,n) {t *y = &x.n;} #define C(n) switch(n){case n:;} @@ -7,6 +8,7 @@ static void f() T(mode_t) T(off_t) T(size_t) + C(PROT_EXEC) C(PROT_NONE) C(PROT_READ) @@ -27,27 +29,33 @@ C(POSIX_MADV_NORMAL) C(POSIX_MADV_RANDOM) C(POSIX_MADV_SEQUENTIAL) C(POSIX_MADV_WILLNEED) -//C(POSIX_TYPED_MEM_ALLOCATE) -//C(POSIX_TYPED_MEM_ALLOCATE_CONTIG) -//C(POSIX_TYPED_MEM_MAP_ALLOCATABLE) -//{ -//struct posix_typed_mem_info x; -//F(size_t,posix_tmi_length) -//} -int(*p_mlock)(const void*,size_t) = mlock; -int(*p_mlockall)(int) = mlockall; -void*(*p_mmap)(void*,size_t,int,int,int,off_t) = mmap; -int(*p_mprotect)(void*,size_t,int) = mprotect; + +#ifdef POSIX_TYPED_MEMORY_OBJECTS +C(POSIX_TYPED_MEM_ALLOCATE) +C(POSIX_TYPED_MEM_ALLOCATE_CONTIG) +C(POSIX_TYPED_MEM_MAP_ALLOCATABLE) +{ +struct posix_typed_mem_info x; +F(size_t,posix_tmi_length) +} +int(*p)(const void*restrict,size_t,off_t*restrict,size_t*restrict,int*restrict) = posix_mem_offset; +int(*p)(int,struct posix_typed_mem_info*) = posix_typed_mem_get_info; +int(*p)(const char*,int,int) = posix_typed_mem_open; +#endif + +{int(*p)(const void*,size_t) = mlock;} +{int(*p)(int) = mlockall;} +{void*(*p)(void*,size_t,int,int,int,off_t) = mmap;} +{int(*p)(void*,size_t,int) = mprotect;} #ifdef _XOPEN_SOURCE -int(*p_msync)(void*,size_t,int) = msync; +{int(*p)(void*,size_t,int) = msync;} +#endif +{int(*p)(const void*,size_t) = munlock;} +{int(*p)(void) = munlockall;} +{int(*p)(void*,size_t) = munmap;} +{int(*p)(void*,size_t,int) = posix_madvise;} +#ifdef POSIX_SHARED_MEMORY_OBJECTS +{int(*p)(const char*,int,mode_t) = shm_open;} +{int(*p)(const char*) = shm_unlink;} #endif -int(*p_munlock)(const void*,size_t) = munlock; -int(*p_munlockall)(void) = munlockall; -int(*p_munmap)(void*,size_t) = munmap; -int(*p_posix_madvise)(void*,size_t,int) = posix_madvise; -//int(*p_posix_mem_offset)(const void*restrict,size_t,off_t*restrict,size_t*restrict,int*restrict) = posix_mem_offset; -//int(*p_posix_typed_mem_get_info)(int,struct posix_typed_mem_info*) = posix_typed_mem_get_info; -//int(*p_posix_typed_mem_open)(const char*,int,int) = posix_typed_mem_open; -int(*p_shm_open)(const char*,int,mode_t) = shm_open; -int(*p_shm_unlink)(const char*) = shm_unlink; }