00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef LUMIERA_MMAP_H
00023 #define LUMIERA_MMAP_H
00024
00025 #include "lib/llist.h"
00026
00027
00028 typedef struct lumiera_mmap_struct lumiera_mmap;
00029 typedef lumiera_mmap* LumieraMMap;
00030
00031
00032 #include "backend/filedescriptor.h"
00033
00034
00035 #include <nobug.h>
00036 #include <sys/mman.h>
00037
00038 NOBUG_DECLARE_FLAG (mmap);
00039
00051 struct lumiera_mmap_struct
00052 {
00054 llist cachenode;
00055
00057 llist searchnode;
00058
00059 off_t start;
00060 size_t size;
00061 void* address;
00062
00064 unsigned short* refmap;
00065
00067 unsigned use_cnt;
00068
00069 };
00070
00071
00072 LumieraMMap
00073 lumiera_mmap_init (LumieraMMap self, LumieraFile file, LList acquirer, off_t start, size_t size, size_t chunksize);
00074
00075 LumieraMMap
00076 lumiera_mmap_new (LumieraFile file, LList acquirer, off_t start, size_t size, size_t chunksize);
00077
00078 void*
00079 lumiera_mmap_destroy_node (LList node);
00080
00081 #endif
00082
00083
00084
00085
00086
00087
00088