#include #include #include typedef struct { int fh; unsigned char *addr; size_t size; } *MAP; /* Mapps a file into memory returns pointer to the mapping struct, containing the file's size, the mapped address and its file handle. If readonly is true, the file will be opened and mapped read only. File is opened and mapped writable, if false. Returns NULL if memory could not be allocated, file could not be opened or mapped. Gives out an diagnostic message on stderr */ MAP map_file( char *filename, int readonly ); /* Unmapps a file from memory. NULL pointer checks are being done, so this is safe to be called from cleanup without knowing whether there actually is a map. */ void unmap_file ( MAP *pMap ); /* Gets file size of open file returns != 0 in case of error */ inline int getfilesize( int fd, unsigned long *size );