Blame view
fs/cifs/smb2proto.h
14.7 KB
ddfbefbd3 CIFS: Map SMB2 st... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
/* * fs/cifs/smb2proto.h * * Copyright (c) International Business Machines Corp., 2002, 2011 * Etersoft, 2012 * Author(s): Steve French (sfrench@us.ibm.com) * Pavel Shilovsky (pshilovsky@samba.org) 2012 * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See * the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _SMB2PROTO_H #define _SMB2PROTO_H #include <linux/nls.h> #include <linux/key-type.h> struct statfs; |
0b688cfc8 cifs: change smb2... |
29 |
struct smb_rqst; |
ddfbefbd3 CIFS: Map SMB2 st... |
30 31 32 33 34 35 36 |
/* ***************************************************************** * All Prototypes ***************************************************************** */ extern int map_smb2_to_linux_error(char *buf, bool log_err); |
373512ec5 Prepare for encry... |
37 38 |
extern int smb2_check_message(char *buf, unsigned int length, struct TCP_Server_Info *server); |
9ec672bd1 cifs: update calc... |
39 |
extern unsigned int smb2_calc_size(void *buf, struct TCP_Server_Info *server); |
e4dc31fe9 cifs: change smb2... |
40 41 |
extern char *smb2_get_data_area_len(int *off, int *len, struct smb2_sync_hdr *shdr); |
2503a0dba CIFS: Add SMB2 su... |
42 43 |
extern __le16 *cifs_convert_path_to_utf16(const char *from, struct cifs_sb_info *cifs_sb); |
ddfbefbd3 CIFS: Map SMB2 st... |
44 |
|
0b688cfc8 cifs: change smb2... |
45 |
extern int smb2_verify_signature(struct smb_rqst *, struct TCP_Server_Info *); |
2dc7e1c03 CIFS: Make transp... |
46 47 |
extern int smb2_check_receive(struct mid_q_entry *mid, struct TCP_Server_Info *server, bool log_error); |
fec344e3f cifs: change cifs... |
48 |
extern struct mid_q_entry *smb2_setup_request(struct cifs_ses *ses, |
f780bd3fe cifs: add server ... |
49 50 |
struct TCP_Server_Info *, struct smb_rqst *rqst); |
fec344e3f cifs: change cifs... |
51 52 |
extern struct mid_q_entry *smb2_setup_async_request( struct TCP_Server_Info *server, struct smb_rqst *rqst); |
38bd49064 Handle mismatched... |
53 54 55 56 |
extern struct cifs_ses *smb2_find_smb_ses(struct TCP_Server_Info *server, __u64 ses_id); extern struct cifs_tcon *smb2_find_smb_tcon(struct TCP_Server_Info *server, __u64 ses_id, __u32 tid); |
38107d45c Do not send SMB2 ... |
57 |
extern int smb2_calc_signature(struct smb_rqst *rqst, |
eda1c54f1 cifs: Allocate cr... |
58 59 |
struct TCP_Server_Info *server, bool allocate_crypto); |
38107d45c Do not send SMB2 ... |
60 |
extern int smb3_calc_signature(struct smb_rqst *rqst, |
eda1c54f1 cifs: Allocate cr... |
61 62 |
struct TCP_Server_Info *server, bool allocate_crypto); |
c95b8eeda CIFS: Add SMB2 su... |
63 |
extern void smb2_echo_request(struct work_struct *work); |
0822f5142 CIFS: Add SMB2.1 ... |
64 |
extern __le32 smb2_get_lease_state(struct cifsInodeInfo *cinode); |
983c88a49 CIFS: Add oplock ... |
65 66 |
extern bool smb2_is_valid_oplock_break(char *buffer, struct TCP_Server_Info *srv); |
026e93dc0 CIFS: Encrypt SMB... |
67 68 |
extern struct cifs_ses *smb2_find_smb_ses(struct TCP_Server_Info *server, __u64 ses_id); |
4326ed2f6 CIFS: Decrypt and... |
69 70 |
extern int smb3_handle_read_data(struct TCP_Server_Info *server, struct mid_q_entry *mid); |
2dc7e1c03 CIFS: Make transp... |
71 |
|
3d4ef9a15 smb3: fix redunda... |
72 |
extern int open_shroot(unsigned int xid, struct cifs_tcon *tcon, |
9e81e8ff7 cifs: return cach... |
73 74 |
struct cifs_sb_info *cifs_sb, struct cached_fid **cfid); |
9da6ec777 cifs: use a refco... |
75 |
extern void close_shroot(struct cached_fid *cfid); |
d91913193 CIFS: Close cache... |
76 77 |
extern void close_shroot_lease(struct cached_fid *cfid); extern void close_shroot_lease_locked(struct cached_fid *cfid); |
f0df737ee CIFS: Add open/cl... |
78 79 |
extern void move_smb2_info_to_cifs(FILE_ALL_INFO *dst, struct smb2_file_all_info *src); |
2e4564b31 smb3: add support... |
80 81 82 |
extern int smb2_query_reparse_tag(const unsigned int xid, struct cifs_tcon *tcon, struct cifs_sb_info *cifs_sb, const char *path, __u32 *reparse_tag); |
be4cb9e3d CIFS: Query SMB2 ... |
83 84 85 |
extern int smb2_query_path_info(const unsigned int xid, struct cifs_tcon *tcon, struct cifs_sb_info *cifs_sb, const char *full_path, FILE_ALL_INFO *data, |
eb85d94bd CIFS: Fix symboli... |
86 |
bool *adjust_tz, bool *symlink); |
c839ff244 CIFS: Add SMB2 su... |
87 88 89 |
extern int smb2_set_path_size(const unsigned int xid, struct cifs_tcon *tcon, const char *full_path, __u64 size, struct cifs_sb_info *cifs_sb, bool set_alloc); |
1feeaac75 CIFS: Add set_fil... |
90 91 |
extern int smb2_set_file_info(struct inode *inode, const char *full_path, FILE_BASIC_INFO *buf, const unsigned int xid); |
bea851b8b smb3: Fix mode on... |
92 93 94 95 |
extern int smb311_posix_mkdir(const unsigned int xid, struct inode *inode, umode_t mode, struct cifs_tcon *tcon, const char *full_path, struct cifs_sb_info *cifs_sb); |
c3ca78e21 smb3: pass mode b... |
96 97 |
extern int smb2_mkdir(const unsigned int xid, struct inode *inode, umode_t mode, struct cifs_tcon *tcon, |
a0e731839 CIFS: Add SMB2 su... |
98 99 100 101 |
const char *name, struct cifs_sb_info *cifs_sb); extern void smb2_mkdir_setinfo(struct inode *inode, const char *full_path, struct cifs_sb_info *cifs_sb, struct cifs_tcon *tcon, const unsigned int xid); |
1a500f010 CIFS: Add SMB2 su... |
102 103 |
extern int smb2_rmdir(const unsigned int xid, struct cifs_tcon *tcon, const char *name, struct cifs_sb_info *cifs_sb); |
cbe6f439f CIFS: Add SMB2 su... |
104 105 |
extern int smb2_unlink(const unsigned int xid, struct cifs_tcon *tcon, const char *name, struct cifs_sb_info *cifs_sb); |
35143eb5c CIFS: Add SMB2 su... |
106 107 108 |
extern int smb2_rename_path(const unsigned int xid, struct cifs_tcon *tcon, const char *from_name, const char *to_name, struct cifs_sb_info *cifs_sb); |
568798cc6 CIFS: Add SMB2 su... |
109 110 111 |
extern int smb2_create_hardlink(const unsigned int xid, struct cifs_tcon *tcon, const char *from_name, const char *to_name, struct cifs_sb_info *cifs_sb); |
5ab97578c Add mfsymlinks su... |
112 113 114 |
extern int smb3_create_mf_symlink(unsigned int xid, struct cifs_tcon *tcon, struct cifs_sb_info *cifs_sb, const unsigned char *path, char *pbuf, unsigned int *pbytes_written); |
c22870ea2 mfsymlinks suppor... |
115 116 117 118 |
extern int smb3_query_mf_symlink(unsigned int xid, struct cifs_tcon *tcon, struct cifs_sb_info *cifs_sb, const unsigned char *path, char *pbuf, unsigned int *pbytes_read); |
226730b4d CIFS: Introduce c... |
119 120 121 |
extern int smb2_open_file(const unsigned int xid, struct cifs_open_parms *oparms, __u32 *oplock, FILE_ALL_INFO *buf); |
f7ba7fe68 CIFS: Add brlock ... |
122 123 |
extern int smb2_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock, const unsigned int xid); |
b140799a1 CIFS: Use brlock ... |
124 |
extern int smb2_push_mandatory_locks(struct cifsFileInfo *cfile); |
53e0e11ef CIFS: Fix a possi... |
125 |
extern void smb2_reconnect_server(struct work_struct *work); |
026e93dc0 CIFS: Encrypt SMB... |
126 |
extern int smb3_crypto_aead_allocate(struct TCP_Server_Info *server); |
81f39f951 cifs: fix SMB1 br... |
127 128 |
extern unsigned long smb_rqst_len(struct TCP_Server_Info *server, struct smb_rqst *rqst); |
e77fe73c7 cifs: we can not ... |
129 130 |
extern void smb2_set_next_command(struct cifs_tcon *tcon, struct smb_rqst *rqst); |
c5a5f38f0 cifs: add a smb2_... |
131 |
extern void smb2_set_related(struct smb_rqst *rqst); |
f0df737ee CIFS: Add open/cl... |
132 |
|
ec2e4523f CIFS: Add capabil... |
133 134 135 136 137 |
/* * SMB2 Worker functions - most of protocol specific implementation details * are contained within these calls. */ extern int SMB2_negotiate(const unsigned int xid, struct cifs_ses *ses); |
5478f9ba9 CIFS: Add session... |
138 139 140 |
extern int SMB2_sess_setup(const unsigned int xid, struct cifs_ses *ses, const struct nls_table *nls_cp); extern int SMB2_logoff(const unsigned int xid, struct cifs_ses *ses); |
faaf946a7 CIFS: Add tree co... |
141 142 143 144 |
extern int SMB2_tcon(const unsigned int xid, struct cifs_ses *ses, const char *tree, struct cifs_tcon *tcon, const struct nls_table *); extern int SMB2_tdis(const unsigned int xid, struct cifs_tcon *tcon); |
064f6047a CIFS: Make SMB2_o... |
145 146 |
extern int SMB2_open(const unsigned int xid, struct cifs_open_parms *oparms, __le16 *path, __u8 *oplock, |
b42bf8882 CIFS: Implement f... |
147 |
struct smb2_file_all_info *buf, |
69dda3059 cifs: add SMB2_op... |
148 |
struct create_posix_rsp *posix, |
9d874c365 cifs: fix a buffe... |
149 |
struct kvec *err_iov, int *resp_buftype); |
352d96f3a cifs: multichanne... |
150 151 152 |
extern int SMB2_open_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, struct smb_rqst *rqst, |
1eb9fb520 cifs: create SMB2... |
153 154 155 |
__u8 *oplock, struct cifs_open_parms *oparms, __le16 *path); extern void SMB2_open_free(struct smb_rqst *rqst); |
4a72dafa1 SMB2 FSCTL and IO... |
156 157 |
extern int SMB2_ioctl(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, u64 volatile_fid, u32 opcode, |
153322f75 smb3: Fix enumera... |
158 |
bool is_fsctl, char *in_data, u32 indatalen, u32 maxoutlen, |
4a72dafa1 SMB2 FSCTL and IO... |
159 |
char **out_data, u32 *plen /* returned data len */); |
352d96f3a cifs: multichanne... |
160 161 162 |
extern int SMB2_ioctl_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, struct smb_rqst *rqst, |
ccdc77a30 cifs: add SMB2_io... |
163 |
u64 persistent_fid, u64 volatile_fid, u32 opcode, |
153322f75 smb3: Fix enumera... |
164 165 |
bool is_fsctl, char *in_data, u32 indatalen, __u32 max_response_size); |
ccdc77a30 cifs: add SMB2_io... |
166 |
extern void SMB2_ioctl_free(struct smb_rqst *rqst); |
52870d504 smb3: cleanup som... |
167 168 169 |
extern int SMB2_change_notify(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, u64 volatile_fid, bool watch_tree, u32 completion_filter); |
43f8a6a74 smb3: query attri... |
170 171 172 |
extern int __SMB2_close(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, u64 volatile_fid, struct smb2_file_network_open_info *pbuf); |
2503a0dba CIFS: Add SMB2 su... |
173 174 |
extern int SMB2_close(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_file_id, u64 volatile_file_id); |
352d96f3a cifs: multichanne... |
175 176 177 178 179 |
extern int SMB2_close_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, struct smb_rqst *rqst, u64 persistent_fid, u64 volatile_fid, bool query_attrs); |
8eb4ecfab cifs: add SMB2_cl... |
180 |
extern void SMB2_close_free(struct smb_rqst *rqst); |
7a5cfb196 CIFS: Add SMB2 su... |
181 182 |
extern int SMB2_flush(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_file_id, u64 volatile_file_id); |
86e14e120 cifs: prepare SMB... |
183 184 |
extern int SMB2_flush_init(const unsigned int xid, struct smb_rqst *rqst, struct cifs_tcon *tcon, |
352d96f3a cifs: multichanne... |
185 |
struct TCP_Server_Info *server, |
86e14e120 cifs: prepare SMB... |
186 187 |
u64 persistent_file_id, u64 volatile_file_id); extern void SMB2_flush_free(struct smb_rqst *rqst); |
b1bc1874b smb311: Add suppo... |
188 189 |
extern int SMB311_posix_query_info(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, u64 volatile_fid, struct smb311_posix_qinfo *data, u32 *plen); |
be4cb9e3d CIFS: Query SMB2 ... |
190 191 192 |
extern int SMB2_query_info(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_file_id, u64 volatile_file_id, struct smb2_file_all_info *data); |
352d96f3a cifs: multichanne... |
193 194 195 |
extern int SMB2_query_info_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, struct smb_rqst *rqst, |
296ecbae7 cifs: add SMB2_qu... |
196 197 |
u64 persistent_fid, u64 volatile_fid, u8 info_class, u8 info_type, |
f5b05d622 cifs: add IOCTL f... |
198 199 |
u32 additional_info, size_t output_len, size_t input_len, void *input); |
296ecbae7 cifs: add SMB2_qu... |
200 |
extern void SMB2_query_info_free(struct smb_rqst *rqst); |
42c493c16 cifs: prototype d... |
201 202 203 |
extern int SMB2_query_acl(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_file_id, u64 volatile_file_id, void **data, unsigned int *plen); |
f0df737ee CIFS: Add open/cl... |
204 205 206 |
extern int SMB2_get_srv_num(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, u64 volatile_fid, __le64 *uniqueid); |
09a4707e7 CIFS: Add SMB2 su... |
207 |
extern int smb2_async_readv(struct cifs_readdata *rdata); |
d8e050398 CIFS: Add readpag... |
208 209 |
extern int SMB2_read(const unsigned int xid, struct cifs_io_parms *io_parms, unsigned int *nbytes, char **buf, int *buf_type); |
4a5c80d7b [CIFS] clean up p... |
210 211 |
extern int smb2_async_writev(struct cifs_writedata *wdata, void (*release)(struct kref *kref)); |
009d34439 CIFS: Add writepa... |
212 213 |
extern int SMB2_write(const unsigned int xid, struct cifs_io_parms *io_parms, unsigned int *nbytes, struct kvec *iov, int n_vec); |
9094fad1e CIFS: Add echo re... |
214 |
extern int SMB2_echo(struct TCP_Server_Info *server); |
d324f08d6 CIFS: Add readdir... |
215 216 217 |
extern int SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, u64 volatile_fid, int index, struct cifs_search_info *srch_inf); |
0a17799cc cifs: prepare SMB... |
218 |
extern int SMB2_query_directory_init(unsigned int xid, struct cifs_tcon *tcon, |
352d96f3a cifs: multichanne... |
219 |
struct TCP_Server_Info *server, |
0a17799cc cifs: prepare SMB... |
220 221 222 223 |
struct smb_rqst *rqst, u64 persistent_fid, u64 volatile_fid, int index, int info_level); extern void SMB2_query_directory_free(struct smb_rqst *rqst); |
c839ff244 CIFS: Add SMB2 su... |
224 225 |
extern int SMB2_set_eof(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, u64 volatile_fid, u32 pid, |
3764cbd17 cifs: remove the ... |
226 |
__le64 *eof); |
352d96f3a cifs: multichanne... |
227 228 229 |
extern int SMB2_set_info_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, struct smb_rqst *rqst, |
ba8ca1168 cifs: create help... |
230 231 232 233 |
u64 persistent_fid, u64 volatile_fid, u32 pid, u8 info_class, u8 info_type, u32 additional_info, void **data, unsigned int *size); extern void SMB2_set_info_free(struct smb_rqst *rqst); |
dac953401 cifs: prototype d... |
234 235 236 |
extern int SMB2_set_acl(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, u64 volatile_fid, struct cifs_ntsd *pnntsd, int pacllen, int aclflag); |
5517554e4 cifs: Add support... |
237 238 239 |
extern int SMB2_set_ea(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, u64 volatile_fid, struct smb2_file_full_ea_info *buf, int len); |
64a5cfa6d Allow setting per... |
240 241 |
extern int SMB2_set_compression(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, u64 volatile_fid); |
983c88a49 CIFS: Add oplock ... |
242 243 244 |
extern int SMB2_oplock_break(const unsigned int xid, struct cifs_tcon *tcon, const u64 persistent_fid, const u64 volatile_fid, const __u8 oplock_level); |
9150c3adb CIFS: Close open ... |
245 246 247 |
extern int smb2_handle_cancelled_close(struct cifs_tcon *tcon, __u64 persistent_fid, __u64 volatile_fid); |
38bd49064 Handle mismatched... |
248 249 250 |
extern int smb2_handle_cancelled_mid(char *buffer, struct TCP_Server_Info *server); void smb2_cancelled_close_fid(struct work_struct *work); |
6fc05c25c CIFS: Add statfs ... |
251 252 253 |
extern int SMB2_QFS_info(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_file_id, u64 volatile_file_id, struct kstatfs *FSData); |
2d3042178 smb3: add support... |
254 255 256 |
extern int SMB311_posix_qfs_info(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_file_id, u64 volatile_file_id, struct kstatfs *FSData); |
34f626406 Query file system... |
257 |
extern int SMB2_QFS_attr(const unsigned int xid, struct cifs_tcon *tcon, |
2167114c6 Query device char... |
258 |
u64 persistent_file_id, u64 volatile_file_id, int lvl); |
f7ba7fe68 CIFS: Add brlock ... |
259 260 261 262 263 264 265 266 |
extern int SMB2_lock(const unsigned int xid, struct cifs_tcon *tcon, const __u64 persist_fid, const __u64 volatile_fid, const __u32 pid, const __u64 length, const __u64 offset, const __u32 lockFlags, const bool wait); extern int smb2_lockv(const unsigned int xid, struct cifs_tcon *tcon, const __u64 persist_fid, const __u64 volatile_fid, const __u32 pid, const __u32 num_lock, struct smb2_lock_element *buf); |
0822f5142 CIFS: Add SMB2.1 ... |
267 268 |
extern int SMB2_lease_break(const unsigned int xid, struct cifs_tcon *tcon, __u8 *lease_key, const __le32 lease_state); |
ff1c038ad Check SMB3 dialec... |
269 |
extern int smb3_validate_negotiate(const unsigned int, struct cifs_tcon *); |
ec2e4523f CIFS: Add capabil... |
270 |
|
ef65aaede smb2: Enforce sec... |
271 272 |
extern enum securityEnum smb2_select_sectype(struct TCP_Server_Info *, enum securityEnum); |
89a5bfa35 smb3: optimize op... |
273 274 275 |
extern void smb2_parse_contexts(struct TCP_Server_Info *server, struct smb2_create_rsp *rsp, unsigned int *epoch, char *lease_key, |
69dda3059 cifs: add SMB2_op... |
276 277 |
__u8 *oplock, struct smb2_file_all_info *buf, struct create_posix_rsp *posix); |
730928c8f cifs: update smb2... |
278 279 280 |
extern int smb3_encryption_required(const struct cifs_tcon *tcon); extern int smb2_validate_iov(unsigned int offset, unsigned int buffer_length, struct kvec *iov, unsigned int min_buf_size); |
c5a5f38f0 cifs: add a smb2_... |
281 282 283 284 |
extern int smb2_validate_and_copy_iov(unsigned int offset, unsigned int buffer_length, struct kvec *iov, unsigned int minbufsize, char *data); |
730928c8f cifs: update smb2... |
285 286 287 |
extern void smb2_copy_fs_info_to_kstatfs( struct smb2_fs_full_size_info *pfs_inf, struct kstatfs *kst); |
5fcd7f3f9 CIFS: add sha512 ... |
288 |
extern int smb311_crypto_shash_allocate(struct TCP_Server_Info *server); |
8bd68c6e4 CIFS: implement v... |
289 290 |
extern int smb311_update_preauth_hash(struct cifs_ses *ses, struct kvec *iov, int nvec); |
f9793b6fc cifs: change smb2... |
291 292 293 294 295 296 |
extern int smb2_query_info_compound(const unsigned int xid, struct cifs_tcon *tcon, __le16 *utf16_path, u32 desired_access, u32 class, u32 type, u32 output_len, struct kvec *rsp, int *buftype, struct cifs_sb_info *cifs_sb); |
6a5f6592a SMB311: Add suppo... |
297 298 299 300 |
/* query path info from the server using SMB311 POSIX extensions*/ extern int smb311_posix_query_path_info(const unsigned int xid, struct cifs_tcon *tcon, struct cifs_sb_info *sb, const char *path, struct smb311_posix_qinfo *qinf, bool *adjust_tx, bool *symlink); |
349e13ad3 cifs: add smb2 PO... |
301 302 |
int posix_info_parse(const void *beg, const void *end, struct smb2_posix_info_parsed *out); |
69dda3059 cifs: add SMB2_op... |
303 |
int posix_info_sid_size(const void *beg, const void *end); |
ddfbefbd3 CIFS: Map SMB2 st... |
304 |
#endif /* _SMB2PROTO_H */ |