#ifndef _LINUX_HFS_FS_H
#define _LINUX_HFS_FS_H
#ifdef pr_fmt
#undef pr_fmt
#endif
#define pr_fmt(fmt) …
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/mutex.h>
#include <linux/buffer_head.h>
#include <linux/fs.h>
#include <linux/workqueue.h>
#include <asm/byteorder.h>
#include <linux/uaccess.h>
#include "hfs.h"
#define DBG_BNODE_REFS …
#define DBG_BNODE_MOD …
#define DBG_CAT_MOD …
#define DBG_INODE …
#define DBG_SUPER …
#define DBG_EXTENT …
#define DBG_BITMAP …
#define DBG_MASK …
#define hfs_dbg(flg, fmt, ...) …
#define hfs_dbg_cont(flg, fmt, ...) …
struct hfs_inode_info { … };
#define HFS_FLG_RSRC …
#define HFS_FLG_EXT_DIRTY …
#define HFS_FLG_EXT_NEW …
#define HFS_IS_RSRC(inode) …
struct hfs_sb_info { … };
#define HFS_FLG_BITMAP_DIRTY …
#define HFS_FLG_MDB_DIRTY …
#define HFS_FLG_ALT_MDB_DIRTY …
extern u32 hfs_vbm_search_free(struct super_block *, u32, u32 *);
extern int hfs_clear_vbm_bits(struct super_block *, u16, u16);
extern int hfs_cat_keycmp(const btree_key *, const btree_key *);
struct hfs_find_data;
extern int hfs_cat_find_brec(struct super_block *, u32, struct hfs_find_data *);
extern int hfs_cat_create(u32, struct inode *, const struct qstr *, struct inode *);
extern int hfs_cat_delete(u32, struct inode *, const struct qstr *);
extern int hfs_cat_move(u32, struct inode *, const struct qstr *,
struct inode *, const struct qstr *);
extern void hfs_cat_build_key(struct super_block *, btree_key *, u32, const struct qstr *);
extern const struct file_operations hfs_dir_operations;
extern const struct inode_operations hfs_dir_inode_operations;
extern int hfs_ext_keycmp(const btree_key *, const btree_key *);
extern int hfs_free_fork(struct super_block *, struct hfs_cat_file *, int);
extern int hfs_ext_write_extent(struct inode *);
extern int hfs_extend_file(struct inode *);
extern void hfs_file_truncate(struct inode *);
extern int hfs_get_block(struct inode *, sector_t, struct buffer_head *, int);
extern const struct address_space_operations hfs_aops;
extern const struct address_space_operations hfs_btree_aops;
int hfs_write_begin(struct file *file, struct address_space *mapping,
loff_t pos, unsigned len, struct page **pagep, void **fsdata);
extern struct inode *hfs_new_inode(struct inode *, const struct qstr *, umode_t);
extern void hfs_inode_write_fork(struct inode *, struct hfs_extent *, __be32 *, __be32 *);
extern int hfs_write_inode(struct inode *, struct writeback_control *);
extern int hfs_inode_setattr(struct mnt_idmap *, struct dentry *,
struct iattr *);
extern void hfs_inode_read_fork(struct inode *inode, struct hfs_extent *ext,
__be32 log_size, __be32 phys_size, u32 clump_size);
extern struct inode *hfs_iget(struct super_block *, struct hfs_cat_key *, hfs_cat_rec *);
extern void hfs_evict_inode(struct inode *);
extern void hfs_delete_inode(struct inode *);
extern const struct xattr_handler * const hfs_xattr_handlers[];
extern int hfs_mdb_get(struct super_block *);
extern void hfs_mdb_commit(struct super_block *);
extern void hfs_mdb_close(struct super_block *);
extern void hfs_mdb_put(struct super_block *);
extern int hfs_part_find(struct super_block *, sector_t *, sector_t *);
extern const struct dentry_operations hfs_dentry_operations;
extern int hfs_hash_dentry(const struct dentry *, struct qstr *);
extern int hfs_strcmp(const unsigned char *, unsigned int,
const unsigned char *, unsigned int);
extern int hfs_compare_dentry(const struct dentry *dentry,
unsigned int len, const char *str, const struct qstr *name);
extern void hfs_asc2mac(struct super_block *, struct hfs_name *, const struct qstr *);
extern int hfs_mac2asc(struct super_block *, char *, const struct hfs_name *);
extern void hfs_mark_mdb_dirty(struct super_block *sb);
#define HFS_UTC_OFFSET …
static inline time64_t __hfs_m_to_utime(__be32 mt)
{ … }
static inline __be32 __hfs_u_to_mtime(time64_t ut)
{ … }
#define HFS_I(inode) …
#define HFS_SB(sb) …
#define hfs_m_to_utime(time) …
#define hfs_u_to_mtime(time) …
#define hfs_mtime() …
static inline const char *hfs_mdb_name(struct super_block *sb)
{ … }
static inline void hfs_bitmap_dirty(struct super_block *sb)
{ … }
#define sb_bread512(sb, sec, data) …
#endif