mmap_cache: add customizable search function
* mmap_cache.c (mmap_cache_search_custom): New function. * mmap_cache.h (mmap_cache_search_fn): New type. (mmap_cache_search_custom): New function prototype. Signed-off-by: Masatake YAMATO <yamato@redhat.com>
This commit is contained in:
parent
ba9d45c374
commit
ba5656519f
10
mmap_cache.c
10
mmap_cache.c
@ -235,3 +235,13 @@ mmap_cache_search(struct tcb *tcp, unsigned long ip)
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct mmap_cache_entry_t *
|
||||
mmap_cache_search_custom(struct tcb *tcp, mmap_cache_search_fn fn, void *data)
|
||||
{
|
||||
for (unsigned int i = 0; i < tcp->mmap_cache->size; i++) {
|
||||
if (fn(tcp->mmap_cache->entry + i, data))
|
||||
return tcp->mmap_cache->entry + i;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@ -73,6 +73,8 @@ enum mmap_cache_rebuild_result {
|
||||
MMAP_CACHE_REBUILD_RENEWED,
|
||||
};
|
||||
|
||||
typedef bool (*mmap_cache_search_fn)(struct mmap_cache_entry_t *, void *);
|
||||
|
||||
extern void
|
||||
mmap_cache_enable(void);
|
||||
|
||||
@ -82,4 +84,7 @@ mmap_cache_rebuild_if_invalid(struct tcb *, const char *caller);
|
||||
extern struct mmap_cache_entry_t *
|
||||
mmap_cache_search(struct tcb *, unsigned long ip);
|
||||
|
||||
extern struct mmap_cache_entry_t *
|
||||
mmap_cache_search_custom(struct tcb *, mmap_cache_search_fn, void *);
|
||||
|
||||
#endif /* !STRACE_MMAP_CACHE_H */
|
||||
|
Loading…
x
Reference in New Issue
Block a user