X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fmmap-cache.h;h=a85c2b6063b4f0887501389eb026d1eaef30dfbe;hb=56e6c2abb8f18bba2bb9d96d66ac7e633349ddfb;hp=0c42fb88e6ebbbfcd97f4fb57dd073c524e58b38;hpb=f274ece0f76b5709408821e317e87aef76123db6;p=elogind.git diff --git a/src/journal/mmap-cache.h b/src/journal/mmap-cache.h index 0c42fb88e..a85c2b606 100644 --- a/src/journal/mmap-cache.h +++ b/src/journal/mmap-cache.h @@ -25,12 +25,28 @@ #include #include +/* One context per object type, plus one of the header, plus one "additional" one */ +#define MMAP_CACHE_MAX_CONTEXTS 9 + typedef struct MMapCache MMapCache; 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, bool keep_always, uint64_t offset, size_t size, struct stat *st, 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_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);