8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / uts / common / smbsrv / svrapi.h
blob4199feb8d7d8f8db104c952bc609b714484dc197
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
22 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
26 #ifndef _SMBSRV_SVRAPI_H
27 #define _SMBSRV_SVRAPI_H
29 #pragma ident "%Z%%M% %I% %E% SMI"
32 * This file provides definitions for the SMB Net interface. On Windows
33 * this would be NetAccess, NetConnection, NetFile, NetServer,
34 * NetSession, NetShare and NetSecurity but here things are a limited.
35 * This stuff should be described in Windows 9x LanMan documentation.
37 * Notes:
38 * Lengths of ASCIIZ strings are given as the maximum strlen() value.
39 * This does not include space for the terminating 0-byte. When
40 * allocating space for such an item, use the form:
42 * char username[LM20_UNLEN+1];
44 * An exception to this is PATHLEN, which does include space for the
45 * terminating 0-byte.
47 * User names, computer names and share names should be upper-cased
48 * by the caller and drawn from the ANSI character set.
51 #ifdef __cplusplus
52 extern "C" {
53 #endif
57 * Server Class (NetServerGetInfo, NetServerEnum2)
60 struct server_info_0 {
61 char sv0_name[CNLEN + 1]; /* Server name */
62 }; /* server_info_0 */
65 struct server_info_1 {
66 char sv1_name[CNLEN + 1]; /* Server name */
67 unsigned char sv1_version_major; /* Major version # of net */
68 unsigned char sv1_version_minor; /* Minor version # of net */
69 uint32_t sv1_type; /* Server type */
70 char *sv1_comment; /* Exported server comment */
71 }; /* server_info_1 */
74 /* NOTE struct prefix must equal server_info_1 format */
76 struct server_info_50 {
77 char sv50_name[CNLEN + 1];
78 unsigned char sv50_version_major; /* Major version # of net */
79 unsigned char sv50_version_minor; /* Minor version # of net */
80 uint32_t sv50_type; /* Server type */
81 char *sv50_comment; /* Exported server comment */
82 unsigned short sv50_security; /* SV_SECURITY_* (see below) */
83 unsigned short sv50_auditing; /* 0 = no auditing; !0 = auditing */
84 char *sv50_container; /* Security server/domain */
85 char *sv50_ab_server; /* Address book server */
86 char *sv50_ab_dll; /* Address book provider DLL */
87 }; /* server_info_50 */
90 struct server_info_2 {
91 char sv2_name[CNLEN + 1];
92 unsigned char sv2_version_major;
93 unsigned char sv2_version_minor;
94 uint32_t sv2_type;
95 char *sv2_comment;
96 uint32_t sv2_ulist_mtime; /* User list, last modification time */
97 uint32_t sv2_glist_mtime; /* Group list, last modification time */
98 uint32_t sv2_alist_mtime; /* Access list, last modification time */
99 uint16_t sv2_users; /* max number of users allowed */
100 uint16_t sv2_disc; /* auto-disconnect timeout(in minutes) */
101 char *sv2_alerts; /* alert names (semicolon separated) */
102 uint16_t sv2_security; /* SV_USERSECURITY or SV_SHARESECURITY */
103 uint16_t sv2_auditing; /* 0 = no auditing; nonzero = auditing */
105 uint16_t sv2_numadmin; /* max number of administrators allowed */
106 uint16_t sv2_lanmask; /* bit mask representing the srv'd nets */
107 uint16_t sv2_hidden; /* 0 = visible; nonzero = hidden */
108 uint16_t sv2_announce; /* visible server announce rate (sec) */
109 uint16_t sv2_anndelta; /* announce randomize interval (sec) */
110 /* name of guest account */
111 char sv2_guestacct[LM20_UNLEN + 1];
112 unsigned char sv2_pad1; /* Word alignment pad byte */
113 char *sv2_userpath; /* ASCIIZ path to user directories */
114 uint16_t sv2_chdevs; /* max # shared character devices */
115 uint16_t sv2_chdevq; /* max # character device queues */
116 uint16_t sv2_chdevjobs; /* max # character device jobs */
117 uint16_t sv2_connections; /* max # of connections */
118 uint16_t sv2_shares; /* max # of shares */
119 uint16_t sv2_openfiles; /* max # of open files */
120 uint16_t sv2_sessopens; /* max # of open files per session */
121 uint16_t sv2_sessvcs; /* max # of virtual circuits per client */
122 uint16_t sv2_sessreqs; /* max # of simul. reqs. from a client */
123 uint16_t sv2_opensearch; /* max # of open searches */
124 uint16_t sv2_activelocks; /* max # of active file locks */
125 uint16_t sv2_numreqbuf; /* number of server (standard) buffers */
126 uint16_t sv2_sizreqbuf; /* size of svr (standard) bufs (bytes) */
127 uint16_t sv2_numbigbuf; /* number of big (64K) buffers */
128 uint16_t sv2_numfiletasks; /* number of file worker processes */
129 uint16_t sv2_alertsched; /* alert counting interval (minutes) */
130 uint16_t sv2_erroralert; /* error log alerting threshold */
131 uint16_t sv2_logonalert; /* logon violation alerting threshold */
132 uint16_t sv2_accessalert; /* access violation alerting threshold */
133 uint16_t sv2_diskalert; /* low disk space alert threshold (KB) */
134 uint16_t sv2_netioalert; /* net I/O error ratio alert threshold */
135 /* (tenths of a percent) */
136 uint16_t sv2_maxauditsz; /* Maximum audit file size (KB) */
137 char *sv2_srvheuristics; /* performance related server switches */
138 }; /* server_info_2 */
141 struct server_info_3 {
142 char sv3_name[CNLEN + 1];
143 unsigned char sv3_version_major;
144 unsigned char sv3_version_minor;
145 uint32_t sv3_type;
146 char *sv3_comment;
147 uint32_t sv3_ulist_mtime; /* User list, last modification time */
148 uint32_t sv3_glist_mtime; /* Group list, last modification time */
149 uint32_t sv3_alist_mtime; /* Access list, last modification time */
150 uint16_t sv3_users; /* max number of users allowed */
151 uint16_t sv3_disc; /* auto-disconnect timeout(in minutes) */
152 char *sv3_alerts; /* alert names (semicolon separated) */
153 uint16_t sv3_security; /* SV_USERSECURITY or SV_SHARESECURITY */
154 uint16_t sv3_auditing; /* 0 = no auditing; nonzero = auditing */
156 uint16_t sv3_numadmin; /* max number of administrators allowed */
157 uint16_t sv3_lanmask; /* bit mask representing the srv'd nets */
158 uint16_t sv3_hidden; /* 0 = visible; nonzero = hidden */
159 uint16_t sv3_announce; /* visible server announce rate (sec) */
160 uint16_t sv3_anndelta; /* announce randomize interval (sec) */
161 /* name of guest account */
162 char sv3_guestacct[LM20_UNLEN + 1];
163 unsigned char sv3_pad1; /* Word alignment pad byte */
164 char *sv3_userpath; /* ASCIIZ path to user directories */
165 uint16_t sv3_chdevs; /* max # shared character devices */
166 uint16_t sv3_chdevq; /* max # character device queues */
167 uint16_t sv3_chdevjobs; /* max # character device jobs */
168 uint16_t sv3_connections; /* max # of connections */
169 uint16_t sv3_shares; /* max # of shares */
170 uint16_t sv3_openfiles; /* max # of open files */
171 uint16_t sv3_sessopens; /* max # of open files per session */
172 uint16_t sv3_sessvcs; /* max # of virtual circuits per client */
173 uint16_t sv3_sessreqs; /* max # of simul. reqs. from a client */
174 uint16_t sv3_opensearch; /* max # of open searches */
175 uint16_t sv3_activelocks; /* max # of active file locks */
176 uint16_t sv3_numreqbuf; /* number of server (standard) buffers */
177 uint16_t sv3_sizreqbuf; /* size of svr (standard) bufs (bytes) */
178 uint16_t sv3_numbigbuf; /* number of big (64K) buffers */
179 uint16_t sv3_numfiletasks; /* number of file worker processes */
180 uint16_t sv3_alertsched; /* alert counting interval (minutes) */
181 uint16_t sv3_erroralert; /* error log alerting threshold */
182 uint16_t sv3_logonalert; /* logon violation alerting threshold */
183 uint16_t sv3_accessalert; /* access violation alerting threshold */
184 uint16_t sv3_diskalert; /* low disk space alert threshold (KB) */
185 uint16_t sv3_netioalert; /* net I/O error ratio alert threshold */
186 /* (tenths of a percent) */
187 uint16_t sv3_maxauditsz; /* Maximum audit file size (KB) */
188 char *sv3_srvheuristics; /* performance related server switches */
189 uint32_t sv3_auditedevents; /* Audit event control mask */
190 uint16_t sv3_autoprofile; /* (0,1,2,3) = (NONE,LOAD,SAVE,or BOTH) */
191 char *sv3_autopath; /* file pathname (where to load & save) */
192 }; /* server_info_3 */
196 * Mask to be applied to svX_version_major in order to obtain
197 * the major version number.
199 #define MAJOR_VERSION_MASK 0x0F
203 * Bit-mapped values for svX_type fields. X = 1, 2, 3 etc.
205 * SV_TYPE_WORKSTATION 0x00000001 All workstations
206 * SV_TYPE_SERVER 0x00000002 All servers
207 * SV_TYPE_SQLSERVER 0x00000004 Any server running with SQL
208 * server
209 * SV_TYPE_DOMAIN_CTRL 0x00000008 Primary domain controller
210 * SV_TYPE_DOMAIN_BAKCTRL 0x00000010 Backup domain controller
211 * SV_TYPE_TIME_SOURCE 0x00000020 Server running the timesource
212 * service
213 * SV_TYPE_AFP 0x00000040 Apple File Protocol servers
214 * SV_TYPE_NOVELL 0x00000080 Novell servers
215 * SV_TYPE_DOMAIN_MEMBER 0x00000100 Domain Member
216 * SV_TYPE_PRINTQ_SERVER 0x00000200 Server sharing print queue
217 * SV_TYPE_DIALIN_SERVER 0x00000400 Server running dialin service.
218 * SV_TYPE_XENIX_SERVER 0x00000800 Xenix server
219 * SV_TYPE_NT 0x00001000 NT server
220 * SV_TYPE_WFW 0x00002000 Server running Windows for
221 * Workgroups
222 * SV_TYPE_SERVER_NT 0x00008000 Windows NT non DC server
223 * SV_TYPE_POTENTIAL_BROWSER 0x00010000 Server that can run the browser
224 * service
225 * SV_TYPE_BACKUP_BROWSER 0x00020000 Backup browser server
226 * SV_TYPE_MASTER_BROWSER 0x00040000 Master browser server
227 * SV_TYPE_DOMAIN_MASTER 0x00080000 Domain Master Browser server
228 * SV_TYPE_LOCAL_LIST_ONLY 0x40000000 Enumerate only entries marked
229 * "local"
230 * SV_TYPE_DOMAIN_ENUM 0x80000000 Enumerate Domains. The pszDomain
231 * parameter must be NULL.
233 #define SV_TYPE_WORKSTATION 0x00000001
234 #define SV_TYPE_SERVER 0x00000002
235 #define SV_TYPE_SQLSERVER 0x00000004
236 #define SV_TYPE_DOMAIN_CTRL 0x00000008
237 #define SV_TYPE_DOMAIN_BAKCTRL 0x00000010
238 #define SV_TYPE_TIME_SOURCE 0x00000020
239 #define SV_TYPE_AFP 0x00000040
240 /* Also set by Win95 NWSERVER */
241 #define SV_TYPE_NOVELL 0x00000080
242 #define SV_TYPE_DOMAIN_MEMBER 0x00000100
243 #define SV_TYPE_PRINTQ_SERVER 0x00000200
244 #define SV_TYPE_DIALIN_SERVER 0x00000400
245 #define SV_TYPE_XENIX_SERVER 0x00000800
246 #define SV_TYPE_NT 0x00001000
247 #define SV_TYPE_WFW 0x00002000
248 #define SV_TYPE_SERVER_NT 0x00008000
249 #define SV_TYPE_POTENTIAL_BROWSER 0x00010000
250 #define SV_TYPE_BACKUP_BROWSER 0x00020000
251 #define SV_TYPE_MASTER_BROWSER 0x00040000
252 #define SV_TYPE_DOMAIN_MASTER 0x00080000
253 #define SV_TYPE_LOCAL_LIST_ONLY 0x40000000
254 #define SV_TYPE_DOMAIN_ENUM 0x80000000
255 /* Handy for NetServerEnum2 */
256 #define SV_TYPE_ALL 0xFFFFFFFF
259 #ifdef __cplusplus
261 #endif
263 #endif /* _SMBSRV_SVRAPI_H */