Poster of Linux kernelThe best gift for a Linux geek
ZZIP_DISK_MMAP

ZZIP_DISK_MMAP

Section: zziplib Function List (3) Updated: 0.13.56
Local index Up
zzip_disk_mmap, zzip_disk_init, zzip_disk_new, zzip_disk_munmap, zzip_disk_open, zzip_disk_close - turn a filehandle into a mmapped zip disk archive handle  

Synopsis

#include <zzip/mmapped.h>
zzip__new__ ZZIP_DISK * zzip_disk_mmap((int fd));
int zzip_disk_init((ZZIP_DISK * disk, void *buffer,  zzip_size_t buflen));
zzip__new__ ZZIP_DISK * zzip_disk_new((void));
int zzip_disk_munmap((ZZIP_DISK * disk));
ZZIP_DISK *zzip__new__ zzip_disk_open((char *filename));
int zzip_disk_close((ZZIP_DISK * disk));
 

Description

The zzip_disk_mmap function uses the given file-descriptor to detect the length of the file and calls the system mmap(2) to put it in main memory. If it is successful then a newly allocated ZZIP_DISK* is returned with disk->buffer pointing to the mapview of the zipdisk content.

The zzip_disk_init function does primary initialization of a disk-buffer struct.

The zzip_disk_new function allocates a new disk-buffer with malloc(3)

The zzip_disk_munmap function is the inverse of zzip_disk_mmap and using the system munmap(2) on the buffer area and free(3) on the ZZIP_DISK structure.

The zzip_disk_open function opens the given archive by name and turn the filehandle to zzip_disk_mmap for bringing it to main memory. If it can not be mmap(2)'ed then we slurp the whole file into a newly malloc(2)'ed memory block. Only if that fails too then we return null. Since handling of disk->buffer is ambigous it should not be snatched away please.

The zzip_disk_close function will release all data needed to access a (mmapped) zip archive, including any malloc()ed blocks, sharedmem mappings and it dumps the handle struct as well.  

Author

• Guido Draheim <guidod@gmx.de>
 

Copyright

Copyright (c) 2003,2004,2006 Guido Draheim All rights reserved, use under the restrictions of the Lesser GNU General Public License or alternatively the restrictions of the Mozilla Public License 1.1


 

Index

Synopsis
Description
Author
Copyright

This document was created by man2html, using the manual pages.
Time: 21:59:33 GMT, April 16, 2011