swh:1:snp:c3bf2749e3476071fa748f67b0ffa2fdc5fe49d9
Raw File
Tip revision: f2c7c76c5d0a443053e94adb9f0918fa2fb85c3a authored by Linus Torvalds on 02 June 2019, 20:55:33 UTC
Linux 5.2-rc3
Tip revision: f2c7c76
xfs_mru_cache.h
// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2006-2007 Silicon Graphics, Inc.
 * All Rights Reserved.
 */
#ifndef __XFS_MRU_CACHE_H__
#define __XFS_MRU_CACHE_H__

struct xfs_mru_cache;

struct xfs_mru_cache_elem {
	struct list_head list_node;
	unsigned long	key;
};

/* Function pointer type for callback to free a client's data pointer. */
typedef void (*xfs_mru_cache_free_func_t)(void *, struct xfs_mru_cache_elem *);

int xfs_mru_cache_init(void);
void xfs_mru_cache_uninit(void);
int xfs_mru_cache_create(struct xfs_mru_cache **mrup, void *data,
		unsigned int lifetime_ms, unsigned int grp_count,
		xfs_mru_cache_free_func_t free_func);
void xfs_mru_cache_destroy(struct xfs_mru_cache *mru);
int xfs_mru_cache_insert(struct xfs_mru_cache *mru, unsigned long key,
		struct xfs_mru_cache_elem *elem);
struct xfs_mru_cache_elem *
xfs_mru_cache_remove(struct xfs_mru_cache *mru, unsigned long key);
void xfs_mru_cache_delete(struct xfs_mru_cache *mru, unsigned long key);
struct xfs_mru_cache_elem *
xfs_mru_cache_lookup(struct xfs_mru_cache *mru, unsigned long key);
void xfs_mru_cache_done(struct xfs_mru_cache *mru);

#endif /* __XFS_MRU_CACHE_H__ */
back to top