Print this page
1575 untangle libmlrpc ... (smbsrv)
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/uts/common/smbsrv/smb_door.h
+++ new/usr/src/uts/common/smbsrv/smb_door.h
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License (the "License").
6 6 * You may not use this file except in compliance with the License.
7 7 *
8 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 * or http://www.opensolaris.org/os/licensing.
10 10 * See the License for the specific language governing permissions
11 11 * and limitations under the License.
12 12 *
13 13 * When distributing Covered Code, include this CDDL HEADER in each
14 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 * If applicable, add the following below this CDDL HEADER, with the
16 16 * fields enclosed by brackets "[]" replaced with your own identifying
17 17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 18 *
19 19 * CDDL HEADER END
↓ open down ↓ |
19 lines elided |
↑ open up ↑ |
20 20 */
21 21 /*
22 22 * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
23 23 * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
24 24 */
25 25
26 26 #ifndef _SMBSRV_SMB_DOOR_H
27 27 #define _SMBSRV_SMB_DOOR_H
28 28
29 29 #include <sys/door.h>
30 -#include <smbsrv/wintypes.h>
30 +#include <smb/wintypes.h>
31 31 #include <smbsrv/smb_xdr.h>
32 32 #include <smbsrv/smb_token.h>
33 33
34 34 #ifdef __cplusplus
35 35 extern "C" {
36 36 #endif
37 37
38 38 #define SMBD_DOOR_NAME "/var/run/smbd_door"
39 39
40 40 #define SMB_DOOR_CALL_RETRIES 3
41 41
42 42 /*
43 43 * Opcodes for smbd door.
44 44 *
45 45 * SMB_DR_NULL is the equivalent of the NULL RPC. It ensures that an
46 46 * opcode of zero is not misinterpreted as an operational door call
47 47 * and it is available as a test interface.
48 48 *
49 49 * SMB_DR_ASYNC_RESPONSE delivers the response part of an asynchronous
50 50 * request and must be processed as a synchronous request.
51 51 *
52 52 * See also: smb_doorhdr_opname()
53 53 */
54 54 typedef enum smb_dopcode {
55 55 SMB_DR_NULL = 0,
56 56 SMB_DR_ASYNC_RESPONSE,
57 57 SMB_DR_USER_AUTH_LOGON,
58 58 SMB_DR_USER_NONAUTH_LOGON,
59 59 SMB_DR_USER_AUTH_LOGOFF,
60 60 SMB_DR_LOOKUP_SID,
61 61 SMB_DR_LOOKUP_NAME,
62 62 SMB_DR_JOIN,
63 63 SMB_DR_GET_DCINFO,
64 64 SMB_DR_VSS_GET_COUNT,
65 65 SMB_DR_VSS_GET_SNAPSHOTS,
66 66 SMB_DR_VSS_MAP_GMTTOKEN,
67 67 SMB_DR_ADS_FIND_HOST,
68 68 SMB_DR_QUOTA_QUERY,
69 69 SMB_DR_QUOTA_SET,
70 70 SMB_DR_DFS_GET_REFERRALS,
71 71 SMB_DR_SHR_HOSTACCESS,
72 72 SMB_DR_SHR_EXEC,
73 73 SMB_DR_NOTIFY_DC_CHANGED
74 74 } smb_dopcode_t;
75 75
76 76 struct smb_event;
77 77
78 78 typedef struct smb_doorarg {
79 79 smb_doorhdr_t da_hdr;
80 80 door_arg_t da_arg;
81 81 xdrproc_t da_req_xdr;
82 82 xdrproc_t da_rsp_xdr;
83 83 void *da_req_data;
84 84 void *da_rsp_data;
85 85 smb_dopcode_t da_opcode;
86 86 const char *da_opname;
87 87 struct smb_event *da_event;
88 88 uint32_t da_flags;
89 89 } smb_doorarg_t;
90 90
91 91 /*
92 92 * Door call return codes.
93 93 */
94 94 #define SMB_DOP_SUCCESS 0
95 95 #define SMB_DOP_NOT_CALLED 1
96 96 #define SMB_DOP_DECODE_ERROR 2
97 97 #define SMB_DOP_ENCODE_ERROR 3
98 98 #define SMB_DOP_EMPTYBUF 4
99 99
100 100 #if !defined(_KERNEL) && !defined(_FAKE_KERNEL)
101 101 char *smb_common_encode(void *, xdrproc_t, size_t *);
102 102 int smb_common_decode(char *, size_t, xdrproc_t, void *);
103 103 char *smb_string_encode(char *, size_t *);
104 104 int smb_string_decode(smb_string_t *, char *, size_t);
105 105 #endif /* !_KERNEL */
106 106
107 107 /* libfksmbsrv "kdoor" callback to smbd-d */
108 108 typedef int fksmb_kdoor_disp_func_t(smb_doorarg_t *);
109 109
110 110 /* libfksmbsrv "opipe" callback to smbd-d */
111 111 typedef int fksmb_opipe_disp_func_t(door_arg_t *);
112 112
113 113 /*
114 114 * Legacy door interface
115 115 */
116 116 #define SMB_SHARE_DNAME "/var/run/smb_share_door"
117 117 #define SMB_SHARE_DSIZE (65 * 1024)
118 118
119 119 /*
120 120 * door operations
121 121 */
122 122 #define SMB_SHROP_NUM_SHARES 1
123 123 #define SMB_SHROP_DELETE 2
124 124 #define SMB_SHROP_RENAME 3
125 125 #define SMB_SHROP_ADD 4
126 126 #define SMB_SHROP_MODIFY 5
127 127 #define SMB_SHROP_LIST 6
128 128
129 129 /*
130 130 * Door server status
131 131 *
132 132 * SMB_SHARE_DERROR is returned by the door server if there is problem
133 133 * with marshalling/unmarshalling. Otherwise, SMB_SHARE_DSUCCESS is
134 134 * returned.
135 135 *
136 136 */
137 137 #define SMB_SHARE_DSUCCESS 0
138 138 #define SMB_SHARE_DERROR -1
139 139
140 140 typedef struct smb_dr_ctx {
141 141 char *ptr;
142 142 char *start_ptr;
143 143 char *end_ptr;
144 144 int status;
145 145 } smb_dr_ctx_t;
146 146
147 147 smb_dr_ctx_t *smb_dr_decode_start(char *, int);
148 148 int smb_dr_decode_finish(smb_dr_ctx_t *);
149 149
150 150 smb_dr_ctx_t *smb_dr_encode_start(char *, int);
151 151 int smb_dr_encode_finish(smb_dr_ctx_t *, unsigned int *);
152 152
153 153 int32_t smb_dr_get_int32(smb_dr_ctx_t *);
154 154 DWORD smb_dr_get_dword(smb_dr_ctx_t *);
155 155 uint32_t smb_dr_get_uint32(smb_dr_ctx_t *);
156 156 int64_t smb_dr_get_int64(smb_dr_ctx_t *);
157 157 uint64_t smb_dr_get_uint64(smb_dr_ctx_t *);
158 158 unsigned short smb_dr_get_ushort(smb_dr_ctx_t *);
159 159
160 160 void smb_dr_put_int32(smb_dr_ctx_t *, int32_t);
161 161 void smb_dr_put_dword(smb_dr_ctx_t *, DWORD);
162 162 void smb_dr_put_uint32(smb_dr_ctx_t *, uint32_t);
163 163 void smb_dr_put_int64(smb_dr_ctx_t *, int64_t);
164 164 void smb_dr_put_uint64(smb_dr_ctx_t *, uint64_t);
165 165 void smb_dr_put_ushort(smb_dr_ctx_t *, unsigned short);
166 166
167 167 char *smb_dr_get_string(smb_dr_ctx_t *);
168 168 void smb_dr_put_string(smb_dr_ctx_t *, const char *);
169 169 void smb_dr_free_string(char *);
170 170
171 171 void smb_dr_put_word(smb_dr_ctx_t *, WORD);
172 172 WORD smb_dr_get_word(smb_dr_ctx_t *);
173 173
174 174 void smb_dr_put_BYTE(smb_dr_ctx_t *, BYTE);
175 175 BYTE smb_dr_get_BYTE(smb_dr_ctx_t *);
176 176
177 177 void smb_dr_put_buf(smb_dr_ctx_t *, unsigned char *, int);
178 178 int smb_dr_get_buf(smb_dr_ctx_t *, unsigned char *, int);
179 179
180 180 void smb_dr_get_share(smb_dr_ctx_t *, smb_share_t *);
181 181 void smb_dr_put_share(smb_dr_ctx_t *, smb_share_t *);
182 182
183 183 void smb_share_door_clnt_init(void);
184 184 void smb_share_door_clnt_fini(void);
185 185
186 186 #ifdef __cplusplus
187 187 }
188 188 #endif
189 189
190 190 #endif /* _SMBSRV_SMB_DOOR_H */
↓ open down ↓ |
150 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX