chiark / gitweb /
tmpfiles: add 'a' type to set ACLs
[elogind.git] / src / journal / mmap-cache.h
index aae4544357281c52c504475d03440baed777729f..a85c2b6063b4f0887501389eb026d1eaef30dfbe 100644 (file)
 ***/
 
 #include <inttypes.h>
+#include <stdbool.h>
+#include <sys/stat.h>
+
+/* One context per object type, plus one of the header, plus one "additional" one */
+#define MMAP_CACHE_MAX_CONTEXTS 9
 
 typedef struct MMapCache MMapCache;
 
@@ -29,7 +34,19 @@ MMapCache* mmap_cache_new(void);
 MMapCache* mmap_cache_ref(MMapCache *m);
 MMapCache* mmap_cache_unref(MMapCache *m);
 
-int mmap_cache_get(MMapCache *m, int fd, int prot, unsigned context, uint64_t offset, uint64_t size, void **ret);
+int mmap_cache_get(
+        MMapCache *m,
+        int fd,
+        int prot,
+        unsigned context,
+        bool keep_always,
+        uint64_t offset,
+        size_t size,
+        struct stat *st,
+        void **ret);
 void mmap_cache_close_fd(MMapCache *m, int fd);
-void mmap_cache_close_fd_range(MMapCache *m, int fd, uint64_t range);
-void mmap_cache_close_context(MMapCache *m, unsigned context);
+
+unsigned mmap_cache_get_hit(MMapCache *m);
+unsigned mmap_cache_get_missed(MMapCache *m);
+
+bool mmap_cache_got_sigbus(MMapCache *m, int fd);