00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef LUMIERA_MMAPINGS_H
00023 #define LUMIERA_MMAPINGS_H
00024
00025 #include "lib/mutex.h"
00026 #include "lib/llist.h"
00027
00028 typedef struct lumiera_mmapings_struct lumiera_mmapings;
00029 typedef lumiera_mmapings* LumieraMMapings;
00030
00031 #include "backend/filedescriptor.h"
00032 #include "backend/mmap.h"
00033
00034 #include <nobug.h>
00035
00036
00043 struct lumiera_mmapings_struct
00044 {
00046 llist mmaps;
00047
00049
00050
00056 size_t chunksize;
00057
00058 LumieraFiledescriptor descriptor;
00059 lumiera_mutex lock;
00060 RESOURCE_HANDLE (rh);
00061 };
00062
00067 LumieraMMapings
00068 lumiera_mmapings_init (LumieraMMapings self, LumieraFile file, size_t chunksize);
00069
00074 LumieraMMapings
00075 lumiera_mmapings_destroy (LumieraMMapings self);
00076
00081 LumieraMMapings
00082 lumiera_mmapings_new (LumieraFile file, size_t chunksize);
00083
00088 void
00089 lumiera_mmapings_delete (LumieraMMapings self);
00090
00099 LumieraMMap
00100 lumiera_mmapings_mmap_acquire (LumieraMMapings self, LumieraFile file, LList acquirer, off_t start, size_t size);
00101
00108 void
00109 lumiera_mmapings_release_mmap (LumieraMMapings self, LList acquirer, LumieraMMap map);
00110
00111 #endif
00112
00113
00114
00115
00116
00117
00118