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)16int 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