root/mmc.h
/*INCLUDED FROM
1 /* mmc.h - header file for mmap cache package 2 ** 3 ** Copyright (c) 1998,2014 by Jef Poskanzer <jef@mail.acme.com>. 4 ** Copyright (c) 2023 by Amelia Zabardast Ziabari <ame@psianesia.org>. 5 ** All rights reserved. 6 ** 7 ** Redistribution and use in source and binary forms, with or without 8 ** modification, are permitted provided that the following conditions 9 ** are met: 10 ** 1. Redistributions of source code must retain the above copyright 11 ** notice, this list of conditions and the following disclaimer. 12 ** 2. Redistributions in binary form must reproduce the above copyright 13 ** notice, this list of conditions and the following disclaimer in the 14 ** documentation and/or other materials provided with the distribution. 15 ** 16 ** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17 ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 ** ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20 ** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 ** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22 ** OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 ** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 ** OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 ** SUCH DAMAGE. 27 */ 28 29 #ifndef _MMC_H_ 30 #define _MMC_H_ 31 32 /* Returns an mmap()ed area for the given file, or (void*) 0 on errors. 33 ** If you have a stat buffer on the file, pass it in, otherwise pass 0. 34 ** Same for the current time. 35 */ 36 void* mmc_map( char* filename, struct stat* sbP, struct timeval* nowP ); 37 38 /* Done with an mmap()ed area that was returned by mmc_map(). 39 ** If you have a stat buffer on the file, pass it in, otherwise pass 0. 40 ** Same for the current time. 41 */ 42 void mmc_unmap( void* addr, struct stat* sbP, struct timeval* nowP ); 43 44 /* Clean up the mmc package, freeing any unused storage. 45 ** This should be called periodically, say every five minutes. 46 ** If you have the current time, pass it in, otherwise pass 0. 47 */ 48 void mmc_cleanup( struct timeval* nowP ); 49 50 /* Free all storage, usually in preparation for exitting. */ 51 void mmc_term( void ); 52 53 /* Generate debugging statistics syslog message. */ 54 void mmc_logstats( long secs ); 55 56 #endif /* _MMC_H_ */
/*