#ifndef _NILFS_BMAP_H
#define _NILFS_BMAP_H
#include <linux/types.h>
#include <linux/fs.h>
#include <linux/buffer_head.h>
#include <linux/nilfs2_ondisk.h>
#include "alloc.h"
#include "dat.h"
#define NILFS_BMAP_INVALID_PTR …
#define nilfs_bmap_keydiff_abs(diff) …
struct nilfs_bmap;
nilfs_bmap_ptr_req;
struct nilfs_bmap_stats { … };
struct nilfs_bmap_operations { … };
#define NILFS_BMAP_SIZE …
#define NILFS_BMAP_KEY_BIT …
#define NILFS_BMAP_NEW_PTR_INIT …
static inline int nilfs_bmap_is_new_ptr(unsigned long ptr)
{ … }
struct nilfs_bmap { … };
#define NILFS_BMAP_PTR_P …
#define NILFS_BMAP_PTR_VS …
#define NILFS_BMAP_PTR_VM …
#define NILFS_BMAP_PTR_U …
#define NILFS_BMAP_USE_VBN(bmap) …
#define NILFS_BMAP_DIRTY …
struct nilfs_bmap_store { … };
int nilfs_bmap_test_and_clear_dirty(struct nilfs_bmap *);
int nilfs_bmap_read(struct nilfs_bmap *, struct nilfs_inode *);
void nilfs_bmap_write(struct nilfs_bmap *, struct nilfs_inode *);
int nilfs_bmap_lookup_contig(struct nilfs_bmap *, __u64, __u64 *, unsigned int);
int nilfs_bmap_insert(struct nilfs_bmap *bmap, __u64 key, unsigned long rec);
int nilfs_bmap_delete(struct nilfs_bmap *bmap, __u64 key);
int nilfs_bmap_seek_key(struct nilfs_bmap *bmap, __u64 start, __u64 *keyp);
int nilfs_bmap_last_key(struct nilfs_bmap *bmap, __u64 *keyp);
int nilfs_bmap_truncate(struct nilfs_bmap *bmap, __u64 key);
void nilfs_bmap_clear(struct nilfs_bmap *);
int nilfs_bmap_propagate(struct nilfs_bmap *, struct buffer_head *);
void nilfs_bmap_lookup_dirty_buffers(struct nilfs_bmap *, struct list_head *);
int nilfs_bmap_assign(struct nilfs_bmap *, struct buffer_head **,
unsigned long, union nilfs_binfo *);
int nilfs_bmap_lookup_at_level(struct nilfs_bmap *, __u64, int, __u64 *);
int nilfs_bmap_mark(struct nilfs_bmap *, __u64, int);
void nilfs_bmap_init_gc(struct nilfs_bmap *);
void nilfs_bmap_save(const struct nilfs_bmap *, struct nilfs_bmap_store *);
void nilfs_bmap_restore(struct nilfs_bmap *, const struct nilfs_bmap_store *);
static inline int nilfs_bmap_lookup(struct nilfs_bmap *bmap, __u64 key,
__u64 *ptr)
{ … }
struct inode *nilfs_bmap_get_dat(const struct nilfs_bmap *);
static inline int nilfs_bmap_prepare_alloc_ptr(struct nilfs_bmap *bmap,
union nilfs_bmap_ptr_req *req,
struct inode *dat)
{ … }
static inline void nilfs_bmap_commit_alloc_ptr(struct nilfs_bmap *bmap,
union nilfs_bmap_ptr_req *req,
struct inode *dat)
{ … }
static inline void nilfs_bmap_abort_alloc_ptr(struct nilfs_bmap *bmap,
union nilfs_bmap_ptr_req *req,
struct inode *dat)
{ … }
static inline int nilfs_bmap_prepare_end_ptr(struct nilfs_bmap *bmap,
union nilfs_bmap_ptr_req *req,
struct inode *dat)
{ … }
static inline void nilfs_bmap_commit_end_ptr(struct nilfs_bmap *bmap,
union nilfs_bmap_ptr_req *req,
struct inode *dat)
{ … }
static inline void nilfs_bmap_abort_end_ptr(struct nilfs_bmap *bmap,
union nilfs_bmap_ptr_req *req,
struct inode *dat)
{ … }
static inline void nilfs_bmap_set_target_v(struct nilfs_bmap *bmap, __u64 key,
__u64 ptr)
{ … }
__u64 nilfs_bmap_data_get_key(const struct nilfs_bmap *,
const struct buffer_head *);
__u64 nilfs_bmap_find_target_seq(const struct nilfs_bmap *, __u64);
__u64 nilfs_bmap_find_target_in_group(const struct nilfs_bmap *);
static inline int nilfs_bmap_dirty(const struct nilfs_bmap *bmap)
{ … }
static inline void nilfs_bmap_set_dirty(struct nilfs_bmap *bmap)
{ … }
static inline void nilfs_bmap_clear_dirty(struct nilfs_bmap *bmap)
{ … }
#define NILFS_BMAP_LARGE …
#define NILFS_BMAP_SMALL_LOW …
#define NILFS_BMAP_SMALL_HIGH …
#define NILFS_BMAP_LARGE_LOW …
#define NILFS_BMAP_LARGE_HIGH …
#endif