GNU Linux-libre 5.19-rc6-gnu
[releases.git] / fs / qnx4 / qnx4.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #include <linux/fs.h>
3 #include <linux/qnx4_fs.h>
4
5 #define QNX4_DEBUG 0
6
7 #if QNX4_DEBUG
8 #define QNX4DEBUG(X) printk X
9 #else
10 #define QNX4DEBUG(X) (void) 0
11 #endif
12
13 struct qnx4_sb_info {
14         unsigned int            Version;        /* may be useful */
15         struct qnx4_inode_entry *BitMap;        /* useful */
16 };
17
18 struct qnx4_inode_info {
19         struct qnx4_inode_entry raw;
20         loff_t mmu_private;
21         struct inode vfs_inode;
22 };
23
24 extern struct inode *qnx4_iget(struct super_block *, unsigned long);
25 extern struct dentry *qnx4_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags);
26 extern unsigned long qnx4_count_free_blocks(struct super_block *sb);
27 extern unsigned long qnx4_block_map(struct inode *inode, long iblock);
28
29 extern const struct inode_operations qnx4_dir_inode_operations;
30 extern const struct file_operations qnx4_dir_operations;
31 extern int qnx4_is_free(struct super_block *sb, long block);
32
33 static inline struct qnx4_sb_info *qnx4_sb(struct super_block *sb)
34 {
35         return sb->s_fs_info;
36 }
37
38 static inline struct qnx4_inode_info *qnx4_i(struct inode *inode)
39 {
40         return container_of(inode, struct qnx4_inode_info, vfs_inode);
41 }
42
43 static inline struct qnx4_inode_entry *qnx4_raw_inode(struct inode *inode)
44 {
45         return &qnx4_i(inode)->raw;
46 }