1/*
2 * Copyright (c) 2011 - 2012 Apple Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24#ifndef _NETSMB_CONN_2_H_
25#define _NETSMB_CONN_2_H_
26
27#ifdef _KERNEL
28
29int smb2_smb_change_notify(struct smb_share *share, void *args_ptr,
30                           struct smb_rq **in_rqp, vfs_context_t context);
31int smb2_smb_close(struct smb_share *share, void *arg_ptr,
32                   struct smb_rq **compound_rqp, vfs_context_t context);
33int smb2_smb_close_fid(struct smb_share *share, SMBFID fid,
34                       struct smb_rq **compound_rqp,
35                       struct smb2_close_rq **in_closep,
36                       vfs_context_t context);
37int smb2_smb_create(struct smb_share *share, void *arg_ptr,
38                    struct smb_rq **compound_rqp, vfs_context_t context);
39int smb2_smb_dur_handle_init(struct smb_share *share, struct smbnode *np,
40                             struct smb2_durable_handle *dur_handle);
41void smb2_smb_dur_handle_parse_lease_key(uint64_t lease_key_hi, uint64_t lease_key_low,
42                                         uint32_t *tree_id, uint64_t *hash_val);
43int smb_smb_echo(struct smb_vc *vcp, int timeout, uint32_t EchoCount,
44                 vfs_context_t context);
45int smb2_smb_flush(struct smb_share *share, SMBFID fid, vfs_context_t context);
46uint32_t smb2_smb_get_client_capabilities(struct smb_vc *vcp);
47uint32_t smb2_smb_get_client_dialects(struct smb_vc *vcp, int inReconnect,
48                                      uint16_t *dialect_cnt, uint16_t dialects[],
49                                      size_t max_dialects_size);
50uint16_t smb2_smb_get_client_security_mode(struct smb_vc *vcp);
51int smb2_smb_gss_session_setup(struct smb_vc *vcp, uint16_t *session_flags,
52                               vfs_context_t context);
53int smb2_smb_ioctl(struct smb_share *share, void *arg_ptr,
54                   struct smb_rq **compound_rqp, vfs_context_t context);
55int smb2_smb_lease_break_ack(struct smb_share *share, uint64_t lease_key_hi, uint64_t lease_key_low,
56                             uint32_t lease_state, uint32_t *ret_lease_state, vfs_context_t context);
57int smb2_smb_lock(struct smb_share *share, int op, SMBFID fid,
58                  off_t offset, uint64_t length, vfs_context_t context);
59int smb2_smb_negotiate(struct smb_vc *vcp, struct smb_rq *rqp,
60                       int inReconnect, vfs_context_t user_context,
61                       vfs_context_t context);
62int smb_smb_negotiate(struct smb_vc *vcp, vfs_context_t user_context,
63                      int inReconnect, vfs_context_t context);
64int smb_smb_nomux(struct smb_vc *vcp, const char *name, vfs_context_t context);
65int smb2_smb_parse_change_notify(struct smb_rq *rqp, uint32_t *events);
66int smb2_smb_parse_create(struct smb_share *share, struct mdchain *mdp,
67                          struct smb2_create_rq *createp);
68int smb2_smb_parse_close(struct mdchain *mdp, struct smb2_close_rq *closep);
69int smb2_smb_parse_ioctl(struct mdchain *mdp, struct smb2_ioctl_rq *ioctlp);
70int smb2_smb_parse_lease_break(struct smbiod *iod, mbuf_t m);
71int smb2_smb_parse_read_one(struct mdchain *mdp, user_ssize_t *rresid,
72                            struct smb2_rw_rq *rwp);
73int smb2_smb_parse_svrmsg_notify(struct smb_rq *rqp,
74                                 uint32_t *svr_action,
75                                 uint32_t *delay);
76int smb2_smb_parse_query_dir(struct mdchain *mdp,
77                             struct smb2_query_dir_rq *queryp);
78int smb2_smb_parse_query_dir_both_dir_info(struct smb_share *share, struct mdchain *mdp,
79                                           uint16_t info_level,
80                                           void *ctxp, struct smbfattr *fap,
81                                           char *network_name, uint32_t *network_name_len,
82                                           size_t max_network_name_buffer_size);
83int smb2_smb_parse_query_info(struct mdchain *mdp,
84                              struct smb2_query_info_rq *queryp);
85int smb2_smb_parse_set_info(struct mdchain *mdp,
86                            struct smb2_set_info_rq *infop);
87int smb2_smb_parse_security(struct mdchain *mdp,
88                            struct smb2_query_info_rq *queryp);
89int smb2_smb_parse_write_one(struct mdchain *mdp,
90                             user_ssize_t *rresid,
91                             struct smb2_rw_rq *writep);
92int smb2_smb_query_dir(struct smb_share *share, void *args_ptr,
93                       struct smb_rq **compound_rqp, vfs_context_t context);
94int smb2_smb_query_info(struct smb_share *share, void *args_ptr,
95                        struct smb_rq **compound_rqp, vfs_context_t context);
96int smb2_smb_read_one(struct smb_share *share,
97                      struct smb2_rw_rq *readp,
98                      user_ssize_t *len,
99                      user_ssize_t *rresid,
100                      struct smb_rq **compound_rqp,
101                      vfs_context_t context);
102int smb2_smb_read(struct smb_share *share, void *arg_ptr,
103                  vfs_context_t context);
104int smb_smb_read(struct smb_share *share, SMBFID fid, uio_t uio,
105                 vfs_context_t context);
106int smb2_smb_set_info(struct smb_share *share, void *args_ptr,
107                      struct smb_rq **compound_rqp, vfs_context_t context);
108int smb1_smb_ssnclose(struct smb_vc *vcp, vfs_context_t context);
109int smb_smb_ssnclose(struct smb_vc *vcp, vfs_context_t context);
110int smb2_smb_tree_connect(struct smb_vc *vcp, struct smb_share *share,
111                          const char *serverName, size_t serverNameLen,
112                          vfs_context_t context);
113int smb1_smb_treedisconnect(struct smb_share *share, vfs_context_t context);
114int smb_smb_treedisconnect(struct smb_share *share, vfs_context_t context);
115int smb2_smb_write(struct smb_share *share, void *arg_ptr,
116                   vfs_context_t context);
117int smb2_smb_write_one(struct smb_share *share,
118                       struct smb2_rw_rq *writep,
119                       user_ssize_t *len,
120                       user_ssize_t *rresid,
121                       struct smb_rq **compound_rqp,
122                       vfs_context_t context);
123int smb_smb_write(struct smb_share *share, SMBFID fid, uio_t uio, int ioflag,
124                  vfs_context_t context);
125
126
127
128#endif /* _KERNEL */
129#endif /* _NETSMB_CONN_2_H_ */
130