xref: /unit/src/nxt_mem_map.c (revision 0:a63ceefd6ab0)
1*0Sigor@sysoev.ru 
2*0Sigor@sysoev.ru /*
3*0Sigor@sysoev.ru  * Copyright (C) Igor Sysoev
4*0Sigor@sysoev.ru  * Copyright (C) NGINX, Inc.
5*0Sigor@sysoev.ru  */
6*0Sigor@sysoev.ru 
7*0Sigor@sysoev.ru #include <nxt_main.h>
8*0Sigor@sysoev.ru 
9*0Sigor@sysoev.ru 
10*0Sigor@sysoev.ru void *
nxt_mem_mmap(void * addr,size_t len,nxt_uint_t protection,nxt_uint_t flags,nxt_fd_t fd,nxt_off_t offset)11*0Sigor@sysoev.ru nxt_mem_mmap(void *addr, size_t len, nxt_uint_t protection, nxt_uint_t flags,
12*0Sigor@sysoev.ru     nxt_fd_t fd, nxt_off_t offset)
13*0Sigor@sysoev.ru {
14*0Sigor@sysoev.ru     void  *p;
15*0Sigor@sysoev.ru 
16*0Sigor@sysoev.ru     p = mmap(addr, len, protection, flags, fd, offset);
17*0Sigor@sysoev.ru 
18*0Sigor@sysoev.ru     if (nxt_fast_path(p != MAP_FAILED)) {
19*0Sigor@sysoev.ru         nxt_thread_log_debug("mmap(%p, %uz, %uxi, %uxi, %FD, %O): %p",
20*0Sigor@sysoev.ru                        addr, len, protection, flags, fd, offset, p);
21*0Sigor@sysoev.ru 
22*0Sigor@sysoev.ru     } else {
23*0Sigor@sysoev.ru         nxt_thread_log_alert("mmap(%p, %uz, %ui, %ui, %FD, %O) failed %E",
24*0Sigor@sysoev.ru                        addr, len, protection, flags, fd, offset, nxt_errno);
25*0Sigor@sysoev.ru     }
26*0Sigor@sysoev.ru 
27*0Sigor@sysoev.ru     return p;
28*0Sigor@sysoev.ru }
29*0Sigor@sysoev.ru 
30*0Sigor@sysoev.ru 
31*0Sigor@sysoev.ru void
nxt_mem_munmap(void * addr,size_t len)32*0Sigor@sysoev.ru nxt_mem_munmap(void *addr, size_t len)
33*0Sigor@sysoev.ru {
34*0Sigor@sysoev.ru     if (nxt_fast_path(munmap(addr, len) == 0)) {
35*0Sigor@sysoev.ru         nxt_thread_log_debug("munmap(%p, %uz)", addr, len);
36*0Sigor@sysoev.ru 
37*0Sigor@sysoev.ru     } else {
38*0Sigor@sysoev.ru         nxt_thread_log_alert("munmap(%p, %uz) failed %E", addr, len, nxt_errno);
39*0Sigor@sysoev.ru     }
40*0Sigor@sysoev.ru }
41