]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - fs/ncpfs/ncp_fs.h
Merge remote-tracking branch 'orangefs/for-next'
[karo-tx-linux.git] / fs / ncpfs / ncp_fs.h
1 #include <linux/ncp_fs.h>
2 #include "ncp_fs_i.h"
3 #include "ncp_fs_sb.h"
4
5 #undef NCPFS_PARANOIA
6 #ifdef NCPFS_PARANOIA
7 #define ncp_vdbg(fmt, ...)                                      \
8         pr_debug(fmt, ##__VA_ARGS__)
9 #else
10 #define ncp_vdbg(fmt, ...)                                      \
11 do {                                                            \
12         if (0)                                                  \
13                 pr_debug(fmt, ##__VA_ARGS__);                   \
14 } while (0)
15 #endif
16
17 #ifndef DEBUG_NCP
18 #define DEBUG_NCP 0
19 #endif
20
21 #if DEBUG_NCP > 0 && !defined(DEBUG)
22 #define DEBUG
23 #endif
24
25 #define ncp_dbg(level, fmt, ...)                                \
26 do {                                                            \
27         if (level <= DEBUG_NCP)                                 \
28                 pr_debug(fmt, ##__VA_ARGS__);                   \
29 } while (0)
30
31 #define NCP_MAX_RPC_TIMEOUT (6*HZ)
32
33
34 struct ncp_entry_info {
35         struct nw_info_struct   i;
36         ino_t                   ino;
37         int                     opened;
38         int                     access;
39         unsigned int            volume;
40         __u8                    file_handle[6];
41 };
42
43 static inline struct ncp_server *NCP_SBP(const struct super_block *sb)
44 {
45         return sb->s_fs_info;
46 }
47
48 #define NCP_SERVER(inode)       NCP_SBP((inode)->i_sb)
49 static inline struct ncp_inode_info *NCP_FINFO(const struct inode *inode)
50 {
51         return container_of(inode, struct ncp_inode_info, vfs_inode);
52 }
53
54 /* linux/fs/ncpfs/inode.c */
55 int ncp_notify_change(struct dentry *, struct iattr *);
56 struct inode *ncp_iget(struct super_block *, struct ncp_entry_info *);
57 void ncp_update_inode(struct inode *, struct ncp_entry_info *);
58 void ncp_update_inode2(struct inode *, struct ncp_entry_info *);
59
60 /* linux/fs/ncpfs/dir.c */
61 extern const struct inode_operations ncp_dir_inode_operations;
62 extern const struct file_operations ncp_dir_operations;
63 extern const struct dentry_operations ncp_dentry_operations;
64 int ncp_conn_logged_in(struct super_block *);
65 int ncp_date_dos2unix(__le16 time, __le16 date);
66 void ncp_date_unix2dos(int unix_date, __le16 * time, __le16 * date);
67
68 /* linux/fs/ncpfs/ioctl.c */
69 long ncp_ioctl(struct file *, unsigned int, unsigned long);
70 long ncp_compat_ioctl(struct file *, unsigned int, unsigned long);
71
72 /* linux/fs/ncpfs/sock.c */
73 int ncp_request2(struct ncp_server *server, int function,
74         void* reply, int max_reply_size);
75 static inline int ncp_request(struct ncp_server *server, int function) {
76         return ncp_request2(server, function, server->packet, server->packet_size);
77 }
78 int ncp_connect(struct ncp_server *server);
79 int ncp_disconnect(struct ncp_server *server);
80 void ncp_lock_server(struct ncp_server *server);
81 void ncp_unlock_server(struct ncp_server *server);
82
83 /* linux/fs/ncpfs/symlink.c */
84 #if defined(CONFIG_NCPFS_EXTRAS) || defined(CONFIG_NCPFS_NFS_NS)
85 extern const struct address_space_operations ncp_symlink_aops;
86 int ncp_symlink(struct inode*, struct dentry*, const char*);
87 #endif
88
89 /* linux/fs/ncpfs/file.c */
90 extern const struct inode_operations ncp_file_inode_operations;
91 extern const struct file_operations ncp_file_operations;
92 int ncp_make_open(struct inode *, int);
93
94 /* linux/fs/ncpfs/mmap.c */
95 int ncp_mmap(struct file *, struct vm_area_struct *);
96
97 /* linux/fs/ncpfs/ncplib_kernel.c */
98 int ncp_make_closed(struct inode *);
99
100 #include "ncplib_kernel.h"