1 /*
2  * $smu-mark$
3  * $name: memunlock.c$
4  * $other_author: Alfonso De Gregorio <dira@speedcom.it>
5  * $other_copyright: Copyright (C) 1999 by Alfonso De Gregorio
6  * $license: This software is under GPL version 2 of license$
7  * $date: Fri Nov  5 11:55:48 MET 1999$
8  * $rev: 2$
9  */
10 
11 /* $Id: memunlock.c,v 1.2 2003/09/01 00:22:06 antirez Exp $ */
12 
13 #include <unistd.h>
14 #include <sys/mman.h>
15 
memunlock(char * addr,size_t size)16 int memunlock(char *addr, size_t size)
17 {
18 #ifdef _POSIX_MEMLOCK_RANGE
19 	unsigned long    page_offset, page_size;
20 
21 	page_size = sysconf(_SC_PAGESIZE);
22 	page_offset = (unsigned long) addr % page_size;
23 
24 	addr -= page_offset;
25 	size += page_offset;
26 
27 	return ( munlock(addr, size) );
28 #endif
29 	return (-1);
30 }
31