18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#include <linux/fs.h>
38c2ecf20Sopenharmony_ci#include <linux/qnx4_fs.h>
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#define QNX4_DEBUG 0
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#if QNX4_DEBUG
88c2ecf20Sopenharmony_ci#define QNX4DEBUG(X) printk X
98c2ecf20Sopenharmony_ci#else
108c2ecf20Sopenharmony_ci#define QNX4DEBUG(X) (void) 0
118c2ecf20Sopenharmony_ci#endif
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cistruct qnx4_sb_info {
148c2ecf20Sopenharmony_ci	unsigned int		Version;	/* may be useful */
158c2ecf20Sopenharmony_ci	struct qnx4_inode_entry	*BitMap;	/* useful */
168c2ecf20Sopenharmony_ci};
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_cistruct qnx4_inode_info {
198c2ecf20Sopenharmony_ci	struct qnx4_inode_entry raw;
208c2ecf20Sopenharmony_ci	loff_t mmu_private;
218c2ecf20Sopenharmony_ci	struct inode vfs_inode;
228c2ecf20Sopenharmony_ci};
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciextern struct inode *qnx4_iget(struct super_block *, unsigned long);
258c2ecf20Sopenharmony_ciextern struct dentry *qnx4_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags);
268c2ecf20Sopenharmony_ciextern unsigned long qnx4_count_free_blocks(struct super_block *sb);
278c2ecf20Sopenharmony_ciextern unsigned long qnx4_block_map(struct inode *inode, long iblock);
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ciextern const struct inode_operations qnx4_dir_inode_operations;
308c2ecf20Sopenharmony_ciextern const struct file_operations qnx4_dir_operations;
318c2ecf20Sopenharmony_ciextern int qnx4_is_free(struct super_block *sb, long block);
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_cistatic inline struct qnx4_sb_info *qnx4_sb(struct super_block *sb)
348c2ecf20Sopenharmony_ci{
358c2ecf20Sopenharmony_ci	return sb->s_fs_info;
368c2ecf20Sopenharmony_ci}
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_cistatic inline struct qnx4_inode_info *qnx4_i(struct inode *inode)
398c2ecf20Sopenharmony_ci{
408c2ecf20Sopenharmony_ci	return container_of(inode, struct qnx4_inode_info, vfs_inode);
418c2ecf20Sopenharmony_ci}
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_cistatic inline struct qnx4_inode_entry *qnx4_raw_inode(struct inode *inode)
448c2ecf20Sopenharmony_ci{
458c2ecf20Sopenharmony_ci	return &qnx4_i(inode)->raw;
468c2ecf20Sopenharmony_ci}
47