xref: /titanic_53/usr/src/cmd/nscd/nscd_cfgdef.h (revision 0dfdd7f38ea07ffc9a4b245c94185c923f4bb0a3)
1cb5caa98Sdjl /*
2cb5caa98Sdjl  * CDDL HEADER START
3cb5caa98Sdjl  *
4cb5caa98Sdjl  * The contents of this file are subject to the terms of the
5cb5caa98Sdjl  * Common Development and Distribution License (the "License").
6cb5caa98Sdjl  * You may not use this file except in compliance with the License.
7cb5caa98Sdjl  *
8cb5caa98Sdjl  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9cb5caa98Sdjl  * or http://www.opensolaris.org/os/licensing.
10cb5caa98Sdjl  * See the License for the specific language governing permissions
11cb5caa98Sdjl  * and limitations under the License.
12cb5caa98Sdjl  *
13cb5caa98Sdjl  * When distributing Covered Code, include this CDDL HEADER in each
14cb5caa98Sdjl  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15cb5caa98Sdjl  * If applicable, add the following below this CDDL HEADER, with the
16cb5caa98Sdjl  * fields enclosed by brackets "[]" replaced with your own identifying
17cb5caa98Sdjl  * information: Portions Copyright [yyyy] [name of copyright owner]
18cb5caa98Sdjl  *
19cb5caa98Sdjl  * CDDL HEADER END
20cb5caa98Sdjl  */
21cb5caa98Sdjl /*
22*0dfdd7f3Smichen  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
23cb5caa98Sdjl  * Use is subject to license terms.
24cb5caa98Sdjl  */
25cb5caa98Sdjl 
26cb5caa98Sdjl #ifndef	_NSCD_CFGDEF_H
27cb5caa98Sdjl #define	_NSCD_CFGDEF_H
28cb5caa98Sdjl 
29cb5caa98Sdjl #pragma ident	"%Z%%M%	%I%	%E% SMI"
30cb5caa98Sdjl 
31cb5caa98Sdjl #ifdef	__cplusplus
32cb5caa98Sdjl extern "C" {
33cb5caa98Sdjl #endif
34cb5caa98Sdjl 
35cb5caa98Sdjl #include <stddef.h>
36cb5caa98Sdjl #include <limits.h>
37cb5caa98Sdjl #include <nss_dbdefs.h>
38cb5caa98Sdjl #include "nscd_config.h"
39cb5caa98Sdjl #include "nscd_log.h"
40cb5caa98Sdjl #include "cache.h"
41cb5caa98Sdjl 
42cb5caa98Sdjl /*
43cb5caa98Sdjl  * structure used for preliminary checking of an integer
44cb5caa98Sdjl  * configuration value
45cb5caa98Sdjl  */
46cb5caa98Sdjl typedef	struct {
47cb5caa98Sdjl 	int	min;
48cb5caa98Sdjl 	int	max;
49cb5caa98Sdjl } nscd_cfg_int_check_t;
50cb5caa98Sdjl 
51cb5caa98Sdjl /*
52cb5caa98Sdjl  * structure used for preliminary checking of a bitmap
53cb5caa98Sdjl  * configuration value
54cb5caa98Sdjl  */
55cb5caa98Sdjl typedef	struct {
56cb5caa98Sdjl 	nscd_cfg_bitmap_t	valid_bits;
57cb5caa98Sdjl } nscd_cfg_bitmap_check_t;
58cb5caa98Sdjl 
59cb5caa98Sdjl /*
60cb5caa98Sdjl  * structure used for preliminary checking of a string
61cb5caa98Sdjl  * configuration value
62cb5caa98Sdjl  */
63cb5caa98Sdjl typedef	struct {
64cb5caa98Sdjl 	nscd_bool_t	must_not_null;
65cb5caa98Sdjl 	int		maxlen;
66cb5caa98Sdjl } nscd_cfg_str_check_t;
67cb5caa98Sdjl 
68cb5caa98Sdjl /*
69cb5caa98Sdjl  * Per nsswitch database config data
70cb5caa98Sdjl  */
71cb5caa98Sdjl typedef struct {
72cb5caa98Sdjl 	nscd_cfg_frontend_t	fe;
73cb5caa98Sdjl 	nscd_cfg_switch_t	sw;
74cb5caa98Sdjl 	nscd_cfg_cache_t	cache;
75cb5caa98Sdjl } nscd_cfg_nsw_db_data_t;
76cb5caa98Sdjl 
77cb5caa98Sdjl /*
78cb5caa98Sdjl  * Per nsswitch database statistics data
79cb5caa98Sdjl  */
80cb5caa98Sdjl typedef struct {
81cb5caa98Sdjl 	nscd_cfg_stat_switch_t		sw;
82cb5caa98Sdjl 	nscd_cfg_stat_cache_t		cache;
83cb5caa98Sdjl } nscd_cfg_stat_nsw_db_data_t;
84cb5caa98Sdjl 
85cb5caa98Sdjl /*
86cb5caa98Sdjl  * global statistics data
87cb5caa98Sdjl  */
88cb5caa98Sdjl typedef struct {
89cb5caa98Sdjl 	nscd_cfg_stat_global_log_t	log;
90cb5caa98Sdjl 	nscd_cfg_stat_global_switch_t	sw;
91cb5caa98Sdjl 	nscd_cfg_stat_cache_t		cache;
92cb5caa98Sdjl } nscd_cfg_stat_global_data_t;
93cb5caa98Sdjl 
94cb5caa98Sdjl /*
95cb5caa98Sdjl  * global config data
96cb5caa98Sdjl  */
97cb5caa98Sdjl typedef struct {
98cb5caa98Sdjl 	nscd_cfg_global_log_t		log;
99cb5caa98Sdjl 	nscd_cfg_global_frontend_t	fe;
100cb5caa98Sdjl 	nscd_cfg_global_selfcred_t	sc;
101cb5caa98Sdjl 	nscd_cfg_global_switch_t	sw;
102cb5caa98Sdjl 	nscd_cfg_global_cache_t		cache;
103cb5caa98Sdjl } nscd_cfg_global_data_t;
104cb5caa98Sdjl 
105cb5caa98Sdjl /*
106cb5caa98Sdjl  * structure for handling the switch database specific group
107cb5caa98Sdjl  * or parameter default
108cb5caa98Sdjl  */
109cb5caa98Sdjl typedef struct nscd_cfg_nsw_spc_default {
110cb5caa98Sdjl 	char	*db;
111cb5caa98Sdjl 	int	group_off;
112cb5caa98Sdjl 	int	param_off;
113cb5caa98Sdjl 	void	*data;		/* pointer or link to data */
114cb5caa98Sdjl 	int	data_len;
115cb5caa98Sdjl } nscd_cfg_nsw_spc_default_t;
116cb5caa98Sdjl 
117cb5caa98Sdjl /*
118cb5caa98Sdjl  * name service switch source (repository) table
119cb5caa98Sdjl  */
120cb5caa98Sdjl nscd_cfg_id_t _nscd_cfg_nsw_src[] = {
121cb5caa98Sdjl 	{	0,	"files"			},
122cb5caa98Sdjl 	{	1,	"ldap"			},
123cb5caa98Sdjl 	{	2,	"nis"			},
124cb5caa98Sdjl 	{	3,	"nisplus"		},
125cb5caa98Sdjl 	{	4,	"dns"			},
126cb5caa98Sdjl 	{	5,	"compat"		},
127cb5caa98Sdjl 	{	6,	"user"			},
128cb5caa98Sdjl 	{	-1,	NULL			}
129cb5caa98Sdjl };
130cb5caa98Sdjl 
131cb5caa98Sdjl /*
132cb5caa98Sdjl  * name service related smf service table
133cb5caa98Sdjl  * (the order of the services should match the order of the source
134cb5caa98Sdjl  *  listed above, 0: files, 1: ldap, 2: nis, 3: nisplus. dns is
135cb5caa98Sdjl  *  not needed)
136cb5caa98Sdjl  */
137cb5caa98Sdjl nscd_cfg_id_t _nscd_cfg_smf_services[] = {
138cb5caa98Sdjl 	{	0,	"svc:/system/name-service-cache:default"},
139cb5caa98Sdjl 	{	1,	"svc:/network/ldap/client:default"	},
140cb5caa98Sdjl 	{	2,	"svc:/network/nis/client:default"	},
141ad0e80f7Smichen 	{	3,	"svc:/network/rpc/bind:default"		},
142cb5caa98Sdjl 	{	-1,	NULL					}
143cb5caa98Sdjl };
144cb5caa98Sdjl 
145cb5caa98Sdjl /*
146cb5caa98Sdjl  * name service database table
147cb5caa98Sdjl  */
148cb5caa98Sdjl nscd_cfg_id_t _nscd_cfg_nsw_db[] = {
149cb5caa98Sdjl 	{	0,	NSS_DBNAM_PASSWD	},
150cb5caa98Sdjl 	{	1,	NSS_DBNAM_GROUP		},
151cb5caa98Sdjl 	{	2,	NSS_DBNAM_HOSTS		},
152cb5caa98Sdjl 	{	3,	NSS_DBNAM_IPNODES	},
153cb5caa98Sdjl 	{	4,	NSS_DBNAM_EXECATTR	},
154cb5caa98Sdjl 	{	5,	NSS_DBNAM_PROFATTR	},
155cb5caa98Sdjl 	{	6,	NSS_DBNAM_USERATTR	},
156cb5caa98Sdjl 	{	7,	NSS_DBNAM_NETWORKS	},
157cb5caa98Sdjl 	{	8,	NSS_DBNAM_PROTOCOLS	},
158cb5caa98Sdjl 	{	9,	NSS_DBNAM_RPC		},
159cb5caa98Sdjl 	{	10,	NSS_DBNAM_ETHERS	},
160cb5caa98Sdjl 	{	11,	NSS_DBNAM_NETMASKS	},
161cb5caa98Sdjl 	{	12,	NSS_DBNAM_BOOTPARAMS	},
162cb5caa98Sdjl 	{	13,	NSS_DBNAM_PUBLICKEY	},
163cb5caa98Sdjl 	{	14,	NSS_DBNAM_NETGROUP	},
164cb5caa98Sdjl 	{	15,	NSS_DBNAM_SERVICES	},
165cb5caa98Sdjl 	{	16,	NSS_DBNAM_PRINTERS	},
166cb5caa98Sdjl 	{	17,	NSS_DBNAM_AUTHATTR	},
167cb5caa98Sdjl 	{	18,	NSS_DBNAM_PROJECT	},
168cb5caa98Sdjl 	{	19,	NSS_DBNAM_SHADOW	},
169cb5caa98Sdjl 	{	20,	NSS_DBNAM_AUDITUSER	},
170cb5caa98Sdjl 	{	21,	NSS_DBNAM_TSOL_TP	},
171cb5caa98Sdjl 	{	22,	NSS_DBNAM_TSOL_RH	},
172cb5caa98Sdjl 	/* pseudo-databases for the compat backend */
173cb5caa98Sdjl 	{	23,	NSS_DBNAM_PASSWD_COMPAT },
174cb5caa98Sdjl 	{	24,	NSS_DBNAM_GROUP_COMPAT  },
175cb5caa98Sdjl #define	NSS_DBNAM_COMPAT_NUM_DB	5
176cb5caa98Sdjl 	/*
177cb5caa98Sdjl 	 * pseudo-databases that use the switch policy that is
178cb5caa98Sdjl 	 * configured for NSS_DBNAM_PASSWD_COMPAT
179cb5caa98Sdjl 	 */
180cb5caa98Sdjl 	{	25,	NSS_DBNAM_PASSWD	},
181cb5caa98Sdjl 	{	26,	NSS_DBNAM_SHADOW	},
182cb5caa98Sdjl 	{	27,	NSS_DBNAM_AUDITUSER	},
183cb5caa98Sdjl 	{	28,	NSS_DBNAM_USERATTR	},
184cb5caa98Sdjl 	/*
185cb5caa98Sdjl 	 * pseudo-database that uses the switch policy that is
186cb5caa98Sdjl 	 * configured for NSS_DBNAM_GROUP_COMPAT
187cb5caa98Sdjl 	 */
188cb5caa98Sdjl 	{	29,	NSS_DBNAM_GROUP		},
189cb5caa98Sdjl 	{	-1,	NULL			}
190cb5caa98Sdjl };
191cb5caa98Sdjl 
192cb5caa98Sdjl /*
193cb5caa98Sdjl  * A special way to indicate all switch databases
194cb5caa98Sdjl  */
195cb5caa98Sdjl static	nscd_cfg_id_t _nscd_cfg_nsw_alldb = {
196cb5caa98Sdjl 		NSCD_CFG_NSW_ALLDB_INDEX,
197cb5caa98Sdjl 		NSCD_CFG_NSW_ALLDB
198cb5caa98Sdjl };
199cb5caa98Sdjl 
200cb5caa98Sdjl /*
201cb5caa98Sdjl  * data for preliminary checking of the log configuration
202cb5caa98Sdjl  */
203cb5caa98Sdjl static nscd_cfg_str_check_t	NSCD_CFG_LOGFILE_PCHECK =
204cb5caa98Sdjl 				{nscd_false, PATH_MAX};
205cb5caa98Sdjl static nscd_cfg_bitmap_check_t	NSCD_CFG_LOGCOMP_PCHECK =
206cb5caa98Sdjl 				{NSCD_LOG_ALL};
207cb5caa98Sdjl static nscd_cfg_bitmap_check_t	NSCD_CFG_LOGLEVEL_PCHECK =
208cb5caa98Sdjl 				{NSCD_LOG_LEVEL_ALL};
209cb5caa98Sdjl 
210cb5caa98Sdjl /* data for preliminary checking of the switch configuration */
211cb5caa98Sdjl static nscd_cfg_str_check_t	NSCD_CFG_NSWCFGSTR_PCHECK =
212cb5caa98Sdjl 				{nscd_true, 128};
213cb5caa98Sdjl 
214cb5caa98Sdjl /*
215cb5caa98Sdjl  * macros for defining the static param table
216cb5caa98Sdjl  */
217cb5caa98Sdjl #define	NSCD_CFG_PGROUP_DESC(pn, type, pflag, gf, g_in_t, pcheck_p,\
218cb5caa98Sdjl 		nfunc_name, vfunc_name) \
219cb5caa98Sdjl 	{ \
220cb5caa98Sdjl 		{-1, pn}, type, (NSCD_CFG_PFLAG_GROUP | pflag), \
221cb5caa98Sdjl 		0, 0, 0,\
222cb5caa98Sdjl 		NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \
223*0dfdd7f3Smichen 		pcheck_p, nfunc_name, vfunc_name \
224cb5caa98Sdjl 	}
225cb5caa98Sdjl 
226cb5caa98Sdjl #define	NSCD_CFG_PARAM_DESC(pn, type, pflag, pf, p_in_t, \
227cb5caa98Sdjl 		gf, g_in_t, pcheck_p, nfunc_name, vfunc_name) \
228cb5caa98Sdjl 	{ \
229cb5caa98Sdjl 		{-1, pn}, type, pflag, \
230cb5caa98Sdjl 		NSCD_SIZEOF(p_in_t, pf), offsetof(p_in_t, pf), -1, \
231cb5caa98Sdjl 		NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \
232*0dfdd7f3Smichen 		pcheck_p, nfunc_name, vfunc_name \
233cb5caa98Sdjl 	}
234cb5caa98Sdjl 
235cb5caa98Sdjl #define	NSCD_CFG_PGROUP_DESC_NULL \
236cb5caa98Sdjl 	{ \
237cb5caa98Sdjl 		{-1, NULL}, -1, NSCD_CFG_PFLAG_GROUP, \
238cb5caa98Sdjl 		0, 0, 0, \
239cb5caa98Sdjl 		0, 0, 0, \
240*0dfdd7f3Smichen 		NULL, NULL, NULL \
241cb5caa98Sdjl 	}
242*0dfdd7f3Smichen 
243*0dfdd7f3Smichen /* nscd internal cfg_*_notify() cfg_*_verify() and cfg_*_get_stat()  */
244*0dfdd7f3Smichen extern	nscd_rc_t	_nscd_cfg_log_notify();
245*0dfdd7f3Smichen extern	nscd_rc_t	_nscd_cfg_log_verify();
246*0dfdd7f3Smichen extern	nscd_rc_t	_nscd_cfg_frontend_notify();
247*0dfdd7f3Smichen extern	nscd_rc_t	_nscd_cfg_frontend_verify();
248*0dfdd7f3Smichen extern	nscd_rc_t	_nscd_cfg_selfcred_notify();
249*0dfdd7f3Smichen extern	nscd_rc_t	_nscd_cfg_selfcred_verify();
250*0dfdd7f3Smichen extern	nscd_rc_t	_nscd_cfg_switch_notify();
251*0dfdd7f3Smichen extern	nscd_rc_t	_nscd_cfg_switch_verify();
252*0dfdd7f3Smichen extern	nscd_rc_t	_nscd_cfg_cache_notify();
253*0dfdd7f3Smichen extern	nscd_rc_t	_nscd_cfg_cache_verify();
254*0dfdd7f3Smichen extern	nscd_rc_t	_nscd_cfg_log_get_stat();
255*0dfdd7f3Smichen extern	nscd_rc_t	_nscd_cfg_switch_get_stat();
256*0dfdd7f3Smichen extern	nscd_rc_t	_nscd_cfg_cache_get_stat();
257*0dfdd7f3Smichen 
258*0dfdd7f3Smichen /*
259*0dfdd7f3Smichen  * the following macros are used to indicate a parameter's
260*0dfdd7f3Smichen  * notify/verify/get_stat functions are the same as those
261*0dfdd7f3Smichen  * of the group
262*0dfdd7f3Smichen  */
263*0dfdd7f3Smichen #define	NSCD_CFG_FUNC_NOTIFY_AS_GROUP	((nscd_cfg_func_notify_t)-1)
264*0dfdd7f3Smichen #define	NSCD_CFG_FUNC_VERIFY_AS_GROUP	((nscd_cfg_func_verify_t)-1)
265*0dfdd7f3Smichen #define	NSCD_CFG_FUNC_GET_STAT_AS_GROUP	((nscd_cfg_func_get_stat_t)-1)
266cb5caa98Sdjl 
267cb5caa98Sdjl /*
268cb5caa98Sdjl  * the static config parameter description table
269cb5caa98Sdjl  */
270cb5caa98Sdjl static	nscd_cfg_param_desc_t	_nscd_cfg_param_desc[] = {
271cb5caa98Sdjl 
272cb5caa98Sdjl 	NSCD_CFG_PGROUP_DESC(
273cb5caa98Sdjl 		"param-group-global-log",
274cb5caa98Sdjl 		NSCD_CFG_DATA_NONE,
275cb5caa98Sdjl 		NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP |
276cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
277cb5caa98Sdjl 		log,
278cb5caa98Sdjl 		nscd_cfg_global_data_t,
279cb5caa98Sdjl 		NULL,
280*0dfdd7f3Smichen 		_nscd_cfg_log_notify,
281*0dfdd7f3Smichen 		_nscd_cfg_log_verify),
282cb5caa98Sdjl 
283cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
284cb5caa98Sdjl 		"logfile",
285cb5caa98Sdjl 		NSCD_CFG_DATA_STRING,
286cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL |
287cb5caa98Sdjl 		NSCD_CFG_PFLAG_VLEN_DATA,
288cb5caa98Sdjl 		logfile,
289cb5caa98Sdjl 		nscd_cfg_global_log_t,
290cb5caa98Sdjl 		log,
291cb5caa98Sdjl 		nscd_cfg_global_data_t,
292cb5caa98Sdjl 		&NSCD_CFG_LOGFILE_PCHECK,
293*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
294*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
295cb5caa98Sdjl 
296cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
297cb5caa98Sdjl 		"debug-level",
298cb5caa98Sdjl 		NSCD_CFG_DATA_BITMAP,
299cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
300cb5caa98Sdjl 		debug_level,
301cb5caa98Sdjl 		nscd_cfg_global_log_t,
302cb5caa98Sdjl 		log,
303cb5caa98Sdjl 		nscd_cfg_global_data_t,
304cb5caa98Sdjl 		&NSCD_CFG_LOGLEVEL_PCHECK,
305*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
306*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
307cb5caa98Sdjl 
308cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
309cb5caa98Sdjl 		"debug-components",
310cb5caa98Sdjl 		NSCD_CFG_DATA_BITMAP,
311cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
312cb5caa98Sdjl 		debug_comp,
313cb5caa98Sdjl 		nscd_cfg_global_log_t,
314cb5caa98Sdjl 		log,
315cb5caa98Sdjl 		nscd_cfg_global_data_t,
316cb5caa98Sdjl 		&NSCD_CFG_LOGCOMP_PCHECK,
317*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
318*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
319cb5caa98Sdjl 
320cb5caa98Sdjl 	NSCD_CFG_PGROUP_DESC(
321cb5caa98Sdjl 		"param-group-global-frontend",
322cb5caa98Sdjl 		NSCD_CFG_DATA_NONE,
323cb5caa98Sdjl 		NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP |
324cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
325cb5caa98Sdjl 		fe,
326cb5caa98Sdjl 		nscd_cfg_global_data_t,
327cb5caa98Sdjl 		NULL,
328*0dfdd7f3Smichen 		_nscd_cfg_frontend_notify,
329*0dfdd7f3Smichen 		_nscd_cfg_frontend_verify),
330cb5caa98Sdjl 
331cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
332cb5caa98Sdjl 		"common-worker-threads",
333cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
334cb5caa98Sdjl 		NSCD_CFG_PFLAG_SEND_BIT_SELECTED |
335cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
336cb5caa98Sdjl 		common_worker_threads,
337cb5caa98Sdjl 		nscd_cfg_global_frontend_t,
338cb5caa98Sdjl 		fe,
339cb5caa98Sdjl 		nscd_cfg_global_data_t,
340cb5caa98Sdjl 		NULL,
341*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
342*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
343cb5caa98Sdjl 
344cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
345cb5caa98Sdjl 		"cache-hit-threads",
346cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
347cb5caa98Sdjl 		NSCD_CFG_PFLAG_SEND_BIT_SELECTED |
348cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
349cb5caa98Sdjl 		cache_hit_threads,
350cb5caa98Sdjl 		nscd_cfg_global_frontend_t,
351cb5caa98Sdjl 		fe,
352cb5caa98Sdjl 		nscd_cfg_global_data_t,
353cb5caa98Sdjl 		NULL,
354*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
355*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
356cb5caa98Sdjl 
357cb5caa98Sdjl 	NSCD_CFG_PGROUP_DESC(
358cb5caa98Sdjl 		"param-group-global-selfcred",
359cb5caa98Sdjl 		NSCD_CFG_DATA_NONE,
360cb5caa98Sdjl 		NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP |
361cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
362cb5caa98Sdjl 		sc,
363cb5caa98Sdjl 		nscd_cfg_global_data_t,
364cb5caa98Sdjl 		NULL,
365*0dfdd7f3Smichen 		_nscd_cfg_selfcred_notify,
366*0dfdd7f3Smichen 		_nscd_cfg_selfcred_verify),
367cb5caa98Sdjl 
368cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
369cb5caa98Sdjl 		"enable-selfcred",
370cb5caa98Sdjl 		NSCD_CFG_DATA_BOOLEAN,
371cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
372cb5caa98Sdjl 		enable_selfcred,
373cb5caa98Sdjl 		nscd_cfg_global_selfcred_t,
374cb5caa98Sdjl 		sc,
375cb5caa98Sdjl 		nscd_cfg_global_data_t,
376cb5caa98Sdjl 		NULL,
377*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
378*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
379cb5caa98Sdjl 
380cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
381cb5caa98Sdjl 		"max-per-user-nscd",
382cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
383cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
384cb5caa98Sdjl 		max_per_user_nscd,
385cb5caa98Sdjl 		nscd_cfg_global_selfcred_t,
386cb5caa98Sdjl 		sc,
387cb5caa98Sdjl 		nscd_cfg_global_data_t,
388cb5caa98Sdjl 		NULL,
389*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
390*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
391cb5caa98Sdjl 
392cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
393cb5caa98Sdjl 		"per-user-nscd-ttl",
394cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
395cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
396cb5caa98Sdjl 		per_user_nscd_ttl,
397cb5caa98Sdjl 		nscd_cfg_global_selfcred_t,
398cb5caa98Sdjl 		sc,
399cb5caa98Sdjl 		nscd_cfg_global_data_t,
400cb5caa98Sdjl 		NULL,
401*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
402*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
403cb5caa98Sdjl 
404cb5caa98Sdjl 	NSCD_CFG_PGROUP_DESC(
405cb5caa98Sdjl 		"param-group-global-switch",
406cb5caa98Sdjl 		NSCD_CFG_DATA_NONE,
407cb5caa98Sdjl 		NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP |
408cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
409cb5caa98Sdjl 		sw,
410cb5caa98Sdjl 		nscd_cfg_global_data_t,
411cb5caa98Sdjl 		NULL,
412*0dfdd7f3Smichen 		_nscd_cfg_switch_notify,
413*0dfdd7f3Smichen 		_nscd_cfg_switch_verify),
414cb5caa98Sdjl 
415cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
416cb5caa98Sdjl 		"global-enable-lookup",
417cb5caa98Sdjl 		NSCD_CFG_DATA_BOOLEAN,
418cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
419cb5caa98Sdjl 		enable_lookup_g,
420cb5caa98Sdjl 		nscd_cfg_global_switch_t,
421cb5caa98Sdjl 		sw,
422cb5caa98Sdjl 		nscd_cfg_global_data_t,
423cb5caa98Sdjl 		NULL,
424*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
425*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
426cb5caa98Sdjl 
427cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
428cb5caa98Sdjl 		"global-enable-loopback-checking",
429cb5caa98Sdjl 		NSCD_CFG_DATA_BOOLEAN,
430cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
431cb5caa98Sdjl 		enable_loopback_checking_g,
432cb5caa98Sdjl 		nscd_cfg_global_switch_t,
433cb5caa98Sdjl 		sw,
434cb5caa98Sdjl 		nscd_cfg_global_data_t,
435cb5caa98Sdjl 		NULL,
436*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
437*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
438cb5caa98Sdjl 
439cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
440cb5caa98Sdjl 		"global-check-smf-state-interval",
441cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
442cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
443cb5caa98Sdjl 		check_smf_state_interval_g,
444cb5caa98Sdjl 		nscd_cfg_global_switch_t,
445cb5caa98Sdjl 		sw,
446cb5caa98Sdjl 		nscd_cfg_global_data_t,
447cb5caa98Sdjl 		NULL,
448*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
449*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
450cb5caa98Sdjl 
451cb5caa98Sdjl 	NSCD_CFG_PGROUP_DESC(
452cb5caa98Sdjl 		"param-group-global-cache",
453cb5caa98Sdjl 		NSCD_CFG_DATA_NONE,
454cb5caa98Sdjl 		NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP |
455cb5caa98Sdjl 		NSCD_CFG_PFLAG_INIT_SET_ALL_DB |
456cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
457cb5caa98Sdjl 		cache,
458cb5caa98Sdjl 		nscd_cfg_global_data_t,
459cb5caa98Sdjl 		NULL,
460*0dfdd7f3Smichen 		_nscd_cfg_cache_notify,
461*0dfdd7f3Smichen 		_nscd_cfg_cache_verify),
462cb5caa98Sdjl 
463cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
464cb5caa98Sdjl 		"global-enable-cache",
465cb5caa98Sdjl 		NSCD_CFG_DATA_BOOLEAN,
466cb5caa98Sdjl 		NSCD_CFG_PFLAG_GLOBAL,
467cb5caa98Sdjl 		enable,
468cb5caa98Sdjl 		nscd_cfg_global_cache_t,
469cb5caa98Sdjl 		cache,
470cb5caa98Sdjl 		nscd_cfg_global_data_t,
471cb5caa98Sdjl 		NULL,
472*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
473*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
474cb5caa98Sdjl 
475cb5caa98Sdjl 	/* non-global config param from this point on */
476cb5caa98Sdjl 
477cb5caa98Sdjl 	NSCD_CFG_PGROUP_DESC(
478cb5caa98Sdjl 		"param-group-frontend",
479cb5caa98Sdjl 		NSCD_CFG_DATA_NONE,
480cb5caa98Sdjl 		NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP,
481cb5caa98Sdjl 		fe,
482cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
483cb5caa98Sdjl 		NULL,
484*0dfdd7f3Smichen 		_nscd_cfg_frontend_notify,
485*0dfdd7f3Smichen 		_nscd_cfg_frontend_verify),
486cb5caa98Sdjl 
487cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
488cb5caa98Sdjl 		"worker-thread-per-nsw-db",
489cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
490cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
491cb5caa98Sdjl 		worker_thread_per_nsw_db,
492cb5caa98Sdjl 		nscd_cfg_frontend_t,
493cb5caa98Sdjl 		fe,
494cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
495cb5caa98Sdjl 		NULL,
496*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
497*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
498cb5caa98Sdjl 
499cb5caa98Sdjl 	NSCD_CFG_PGROUP_DESC(
500cb5caa98Sdjl 		"param-group-switch",
501cb5caa98Sdjl 		NSCD_CFG_DATA_NONE,
502cb5caa98Sdjl 		NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP |
503cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
504cb5caa98Sdjl 		sw,
505cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
506cb5caa98Sdjl 		NULL,
507*0dfdd7f3Smichen 		_nscd_cfg_switch_notify,
508*0dfdd7f3Smichen 		_nscd_cfg_switch_verify),
509cb5caa98Sdjl 
510cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
511cb5caa98Sdjl 		"nsw-config-string",
512cb5caa98Sdjl 		NSCD_CFG_DATA_STRING,
513cb5caa98Sdjl 		NSCD_CFG_PFLAG_VLEN_DATA |
514cb5caa98Sdjl 		NSCD_CFG_PFLAG_LINKED,
515cb5caa98Sdjl 		nsw_config_string,
516cb5caa98Sdjl 		nscd_cfg_switch_t,
517cb5caa98Sdjl 		sw,
518cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
519cb5caa98Sdjl 		&NSCD_CFG_NSWCFGSTR_PCHECK,
520*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
521*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
522cb5caa98Sdjl 
523cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
524cb5caa98Sdjl 		"nsw-config-database",
525cb5caa98Sdjl 		NSCD_CFG_DATA_STRING,
526cb5caa98Sdjl 		NSCD_CFG_PFLAG_VLEN_DATA |
527cb5caa98Sdjl 		NSCD_CFG_PFLAG_HIDDEN,
528cb5caa98Sdjl 		nsw_config_db,
529cb5caa98Sdjl 		nscd_cfg_switch_t,
530cb5caa98Sdjl 		sw,
531cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
532cb5caa98Sdjl 		&NSCD_CFG_NSWCFGSTR_PCHECK,
533*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
534*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
535cb5caa98Sdjl 
536cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
537cb5caa98Sdjl 		"enable-lookup",
538cb5caa98Sdjl 		NSCD_CFG_DATA_BOOLEAN,
539cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
540cb5caa98Sdjl 		enable_lookup,
541cb5caa98Sdjl 		nscd_cfg_switch_t,
542cb5caa98Sdjl 		sw,
543cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
544cb5caa98Sdjl 		NULL,
545*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
546*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
547cb5caa98Sdjl 
548cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
549cb5caa98Sdjl 		"enable-loopback-checking",
550cb5caa98Sdjl 		NSCD_CFG_DATA_BOOLEAN,
551cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
552cb5caa98Sdjl 		enable_loopback_checking,
553cb5caa98Sdjl 		nscd_cfg_switch_t,
554cb5caa98Sdjl 		sw,
555cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
556cb5caa98Sdjl 		NULL,
557*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
558*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
559cb5caa98Sdjl 
560cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
561cb5caa98Sdjl 		"max-nsw-state-per-db",
562cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
563cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
564cb5caa98Sdjl 		max_nsw_state_per_db,
565cb5caa98Sdjl 		nscd_cfg_switch_t,
566cb5caa98Sdjl 		sw,
567cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
568cb5caa98Sdjl 		NULL,
569*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
570*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
571cb5caa98Sdjl 
572cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
573cb5caa98Sdjl 		"max-nsw-state-per-thread",
574cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
575cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
576cb5caa98Sdjl 		max_nsw_state_per_thread,
577cb5caa98Sdjl 		nscd_cfg_switch_t,
578cb5caa98Sdjl 		sw,
579cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
580cb5caa98Sdjl 		NULL,
581*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
582*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
583cb5caa98Sdjl 
584cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
585cb5caa98Sdjl 		"max-getent-ctx-per-db",
586cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
587cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
588cb5caa98Sdjl 		max_getent_ctx_per_db,
589cb5caa98Sdjl 		nscd_cfg_switch_t,
590cb5caa98Sdjl 		sw,
591cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
592cb5caa98Sdjl 		NULL,
593*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
594*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
595cb5caa98Sdjl 
596cb5caa98Sdjl 	NSCD_CFG_PGROUP_DESC(
597cb5caa98Sdjl 		"param-group-cache",
598cb5caa98Sdjl 		NSCD_CFG_DATA_NONE,
599cb5caa98Sdjl 		NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP,
600cb5caa98Sdjl 		cache,
601cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
602cb5caa98Sdjl 		NULL,
603*0dfdd7f3Smichen 		_nscd_cfg_cache_notify,
604*0dfdd7f3Smichen 		_nscd_cfg_cache_verify),
605cb5caa98Sdjl 
606cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
607cb5caa98Sdjl 		"enable-cache",
608cb5caa98Sdjl 		NSCD_CFG_DATA_BOOLEAN,
609cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
610cb5caa98Sdjl 		enable,
611cb5caa98Sdjl 		nscd_cfg_cache_t,
612cb5caa98Sdjl 		cache,
613cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
614cb5caa98Sdjl 		NULL,
615*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
616*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
617cb5caa98Sdjl 
618cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
619cb5caa98Sdjl 		"enable-per-user-cache",
620cb5caa98Sdjl 		NSCD_CFG_DATA_BOOLEAN,
621cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
622cb5caa98Sdjl 		per_user,
623cb5caa98Sdjl 		nscd_cfg_cache_t,
624cb5caa98Sdjl 		cache,
625cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
626cb5caa98Sdjl 		NULL,
627*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
628*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
629cb5caa98Sdjl 
630cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
631cb5caa98Sdjl 		"avoid-nameservice",
632cb5caa98Sdjl 		NSCD_CFG_DATA_BOOLEAN,
633cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
634cb5caa98Sdjl 		avoid_ns,
635cb5caa98Sdjl 		nscd_cfg_cache_t,
636cb5caa98Sdjl 		cache,
637cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
638cb5caa98Sdjl 		NULL,
639*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
640*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
641cb5caa98Sdjl 
642cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
643cb5caa98Sdjl 		"check-files",
644cb5caa98Sdjl 		NSCD_CFG_DATA_BOOLEAN,
645cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
646cb5caa98Sdjl 		check_files,
647cb5caa98Sdjl 		nscd_cfg_cache_t,
648cb5caa98Sdjl 		cache,
649cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
650cb5caa98Sdjl 		NULL,
651*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
652*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
653cb5caa98Sdjl 
654cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
655cb5caa98Sdjl 		"check-file-interval",
656cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
657cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
658cb5caa98Sdjl 		check_interval,
659cb5caa98Sdjl 		nscd_cfg_cache_t,
660cb5caa98Sdjl 		cache,
661cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
662cb5caa98Sdjl 		NULL,
663*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
664*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
665cb5caa98Sdjl 
666cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
667cb5caa98Sdjl 		"positive-time-to-live",
668cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
669cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
670cb5caa98Sdjl 		pos_ttl,
671cb5caa98Sdjl 		nscd_cfg_cache_t,
672cb5caa98Sdjl 		cache,
673cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
674cb5caa98Sdjl 		NULL,
675*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
676*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
677cb5caa98Sdjl 
678cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
679cb5caa98Sdjl 		"negative-time-to-live",
680cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
681cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
682cb5caa98Sdjl 		neg_ttl,
683cb5caa98Sdjl 		nscd_cfg_cache_t,
684cb5caa98Sdjl 		cache,
685cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
686cb5caa98Sdjl 		NULL,
687*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
688*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
689cb5caa98Sdjl 
690cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
691cb5caa98Sdjl 		"keep-hot-count",
692cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
693cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
694cb5caa98Sdjl 		keephot,
695cb5caa98Sdjl 		nscd_cfg_cache_t,
696cb5caa98Sdjl 		cache,
697cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
698cb5caa98Sdjl 		NULL,
699*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
700*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
701cb5caa98Sdjl 
702cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
703cb5caa98Sdjl 		"hint-size",
704cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
705cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
706cb5caa98Sdjl 		hint_size,
707cb5caa98Sdjl 		nscd_cfg_cache_t,
708cb5caa98Sdjl 		cache,
709cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
710cb5caa98Sdjl 		NULL,
711*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
712*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
713cb5caa98Sdjl 
714cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
715cb5caa98Sdjl 		"maximum-entries-allowed",
716cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
717cb5caa98Sdjl 		NSCD_CFG_PFLAG_NONE,
718cb5caa98Sdjl 		maxentries,
719cb5caa98Sdjl 		nscd_cfg_cache_t,
720cb5caa98Sdjl 		cache,
721cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
722cb5caa98Sdjl 		NULL,
723*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
724*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
725cb5caa98Sdjl 
726cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
727cb5caa98Sdjl 		"suggested-size",
728cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
729cb5caa98Sdjl 		NSCD_CFG_PFLAG_OBSOLETE,
730cb5caa98Sdjl 		suggestedsize,
731cb5caa98Sdjl 		nscd_cfg_cache_t,
732cb5caa98Sdjl 		cache,
733cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
734cb5caa98Sdjl 		NULL,
735*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
736*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
737cb5caa98Sdjl 
738cb5caa98Sdjl 	NSCD_CFG_PARAM_DESC(
739cb5caa98Sdjl 		"old-data-ok",
740cb5caa98Sdjl 		NSCD_CFG_DATA_BOOLEAN,
741cb5caa98Sdjl 		NSCD_CFG_PFLAG_OBSOLETE,
742cb5caa98Sdjl 		old_data_ok,
743cb5caa98Sdjl 		nscd_cfg_cache_t,
744cb5caa98Sdjl 		cache,
745cb5caa98Sdjl 		nscd_cfg_nsw_db_data_t,
746cb5caa98Sdjl 		NULL,
747*0dfdd7f3Smichen 		NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
748*0dfdd7f3Smichen 		NSCD_CFG_FUNC_VERIFY_AS_GROUP),
749cb5caa98Sdjl 
750cb5caa98Sdjl 	NSCD_CFG_PGROUP_DESC_NULL
751cb5caa98Sdjl };
752cb5caa98Sdjl 
753cb5caa98Sdjl /*
754cb5caa98Sdjl  * defaults for the global configuration
755cb5caa98Sdjl  */
756cb5caa98Sdjl static nscd_cfg_global_data_t nscd_cfg_global_default = {
757cb5caa98Sdjl 
758cb5caa98Sdjl 	/*
759cb5caa98Sdjl 	 * nscd_cfg_global_log_t
760cb5caa98Sdjl 	 */
761cb5caa98Sdjl 	{
762cb5caa98Sdjl 
763cb5caa98Sdjl 	NSCD_CFG_GROUP_INFO_GLOBAL_LOG,
764cb5caa98Sdjl 	NULL,
765*0dfdd7f3Smichen 	NSCD_LOG_LEVEL_NONE,	/* debug_level */
766cb5caa98Sdjl 	NSCD_LOG_CACHE,		/* debug_comp */
767cb5caa98Sdjl 
768cb5caa98Sdjl 	},
769cb5caa98Sdjl 
770cb5caa98Sdjl 	/*
771cb5caa98Sdjl 	 * nscd_cfg_global_frontend_t
772cb5caa98Sdjl 	 */
773cb5caa98Sdjl 	{
774cb5caa98Sdjl 
775cb5caa98Sdjl 	NSCD_CFG_GROUP_INFO_GLOBAL_FRONTEND,
776e37190e5Smichen 	100,			/* common_worker_threads */
777e37190e5Smichen 	100,			/* cache_hit_threads */
778cb5caa98Sdjl 
779cb5caa98Sdjl 	},
780cb5caa98Sdjl 
781cb5caa98Sdjl 	/*
782cb5caa98Sdjl 	 * nscd_cfg_global_selfcred_t
783cb5caa98Sdjl 	 */
784cb5caa98Sdjl 	{
785cb5caa98Sdjl 
786cb5caa98Sdjl 	NSCD_CFG_GROUP_INFO_GLOBAL_SELFCRED,
787cb5caa98Sdjl 	nscd_true,		/* enable_selfcred */
788cb5caa98Sdjl 	1000,			/* max_per_user_nscd */
789cb5caa98Sdjl 	120,			/* per_user_nscd_ttl: 120 seconds */
790cb5caa98Sdjl 
791cb5caa98Sdjl 	},
792cb5caa98Sdjl 
793cb5caa98Sdjl 	/*
794cb5caa98Sdjl 	 * nscd_cfg_global_switch_t
795cb5caa98Sdjl 	 */
796cb5caa98Sdjl 	{
797cb5caa98Sdjl 
798cb5caa98Sdjl 	NSCD_CFG_GROUP_INFO_GLOBAL_SWITCH,
799cb5caa98Sdjl 	nscd_true,		/* enable_lookup_g */
800cb5caa98Sdjl 	nscd_false,		/* enable_loopback_checking_g */
801cb5caa98Sdjl 	120,			/* check_smf_state_interval_g */
802cb5caa98Sdjl 
803cb5caa98Sdjl 	},
804cb5caa98Sdjl 
805cb5caa98Sdjl 	/*
806cb5caa98Sdjl 	 * nscd_cfg_global_cache_t
807cb5caa98Sdjl 	 */
808cb5caa98Sdjl 	NSCD_CFG_GLOBAL_CACHE_DEFAULTS
809cb5caa98Sdjl };
810cb5caa98Sdjl 
811cb5caa98Sdjl /*
812cb5caa98Sdjl  * defaults for the per switch database configuration
813cb5caa98Sdjl  */
814cb5caa98Sdjl static nscd_cfg_nsw_db_data_t nscd_cfg_nsw_db_data_default = {
815cb5caa98Sdjl 
816cb5caa98Sdjl 	/*
817cb5caa98Sdjl 	 * nscd_cfg_frontend_t
818cb5caa98Sdjl 	 */
819cb5caa98Sdjl 	{
820cb5caa98Sdjl 
821cb5caa98Sdjl 	NSCD_CFG_GROUP_INFO_FRONTEND,
822e37190e5Smichen 	50, 			/* worker_thread_per_nsw_db */
823cb5caa98Sdjl 
824cb5caa98Sdjl 	},
825cb5caa98Sdjl 
826cb5caa98Sdjl 	/*
827cb5caa98Sdjl 	 * nscd_cfg_switch_t
828cb5caa98Sdjl 	 */
829cb5caa98Sdjl 	{
830cb5caa98Sdjl 
831cb5caa98Sdjl 	NSCD_CFG_GROUP_INFO_SWITCH,
832cb5caa98Sdjl 	"nis files",		/* nsw_config_string */
833cb5caa98Sdjl 	NULL,			/* nsw_config_db */
834cb5caa98Sdjl 	nscd_true,		/* enable_lookup */
835cb5caa98Sdjl 	nscd_false,		/* enable_loopback_checking */
836124771bbSmichen 	288,			/* max_nsw_state_per_db */
837124771bbSmichen 	32,			/* max_nsw_state_per_thread */
838124771bbSmichen 	256,			/* max_getent_ctx_per_db */
839cb5caa98Sdjl 
840cb5caa98Sdjl 	},
841cb5caa98Sdjl 
842cb5caa98Sdjl 	/*
843cb5caa98Sdjl 	 * nscd_cfg_cache_t
844cb5caa98Sdjl 	 */
845cb5caa98Sdjl 	NSCD_CFG_CACHE_DEFAULTS
846cb5caa98Sdjl };
847cb5caa98Sdjl 
848cb5caa98Sdjl /*
849cb5caa98Sdjl  * macros for defining the database specific defaults
850cb5caa98Sdjl  */
851cb5caa98Sdjl #define	NSCD_CFG_DB_DEFAULT_PARAM(db, gf, pf, gt, defaddr, deflen) \
852cb5caa98Sdjl 	{ \
853cb5caa98Sdjl 		db, offsetof(nscd_cfg_nsw_db_data_t, gf), \
854cb5caa98Sdjl 		offsetof(gt, pf), defaddr, deflen \
855cb5caa98Sdjl 	}
856cb5caa98Sdjl 
857cb5caa98Sdjl #define	NSCD_CFG_DB_DEFAULT_GROUP(db, gf, defaddr, deflen) \
858cb5caa98Sdjl 	{ \
859cb5caa98Sdjl 		db, offsetof(nscd_cfg_nsw_db_data_t, gf), \
860cb5caa98Sdjl 		0, defaddr, deflen \
861cb5caa98Sdjl 	}
862cb5caa98Sdjl 
863cb5caa98Sdjl #define	NSCD_CFG_DB_DEFAULT_NULL \
864cb5caa98Sdjl 	{ \
865cb5caa98Sdjl 		NULL, 0, 0, NULL, 0 \
866cb5caa98Sdjl 	}
867cb5caa98Sdjl 
868cb5caa98Sdjl /*
869cb5caa98Sdjl  * shadow, user_attr, and audit_user use the same switch policy
870cb5caa98Sdjl  * as that of passwd. exec_attr use that of prof_attr.
871cb5caa98Sdjl  */
872cb5caa98Sdjl static char *nscd_cfg_shadow_cfg_db	= NSS_DBNAM_PASSWD;
873cb5caa98Sdjl static char *nscd_cfg_userattr_cfg_db	= NSS_DBNAM_PASSWD;
874cb5caa98Sdjl static char *nscd_cfg_auuser_cfg_db	= NSS_DBNAM_PASSWD;
875cb5caa98Sdjl static char *nscd_cfg_execattr_cfg_db	= NSS_DBNAM_PROFATTR;
876cb5caa98Sdjl 
877cb5caa98Sdjl /*
878cb5caa98Sdjl  * default switch policy for pseudo-databases passwd_compat and
879cb5caa98Sdjl  * and group_compa is "nis"
880cb5caa98Sdjl  */
881cb5caa98Sdjl static char *nscd_cfg_def_passwd_compat	= NSS_DEFCONF_PASSWD_COMPAT;
882cb5caa98Sdjl static char *nscd_cfg_def_group_compat	= NSS_DEFCONF_GROUP_COMPAT;
883cb5caa98Sdjl 
884cb5caa98Sdjl static nscd_cfg_nsw_spc_default_t nscd_cfg_passwd_cfg_link =
885cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_PARAM(
886cb5caa98Sdjl 		NSS_DBNAM_PASSWD,
887cb5caa98Sdjl 		sw,
888cb5caa98Sdjl 		nsw_config_string,
889cb5caa98Sdjl 		nscd_cfg_switch_t,
890cb5caa98Sdjl 		NULL,
891cb5caa98Sdjl 		NSCD_SIZEOF(nscd_cfg_switch_t, nsw_config_string));
892cb5caa98Sdjl 
893cb5caa98Sdjl static nscd_cfg_nsw_spc_default_t nscd_cfg_profattr_cfg_link =
894cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_PARAM(
895cb5caa98Sdjl 		NSS_DBNAM_PROFATTR,
896cb5caa98Sdjl 		sw,
897cb5caa98Sdjl 		nsw_config_string,
898cb5caa98Sdjl 		nscd_cfg_switch_t,
899cb5caa98Sdjl 		NULL,
900cb5caa98Sdjl 		NSCD_SIZEOF(nscd_cfg_switch_t, nsw_config_string));
901cb5caa98Sdjl 
902cb5caa98Sdjl 
903cb5caa98Sdjl /*
904cb5caa98Sdjl  * switch database specific defaults
905cb5caa98Sdjl  */
906cb5caa98Sdjl nscd_cfg_nsw_spc_default_t	_nscd_cfg_nsw_spc_default[] = {
907cb5caa98Sdjl 
908cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_PARAM(
909cb5caa98Sdjl 	NSS_DBNAM_SHADOW,
910cb5caa98Sdjl 		sw,
911cb5caa98Sdjl 		nsw_config_db,
912cb5caa98Sdjl 		nscd_cfg_switch_t,
913cb5caa98Sdjl 		&nscd_cfg_shadow_cfg_db,
914cb5caa98Sdjl 		sizeof (nscd_cfg_shadow_cfg_db)),
915cb5caa98Sdjl 
916cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_PARAM(
917cb5caa98Sdjl 		NSS_DBNAM_USERATTR,
918cb5caa98Sdjl 		sw,
919cb5caa98Sdjl 		nsw_config_db,
920cb5caa98Sdjl 		nscd_cfg_switch_t,
921cb5caa98Sdjl 		&nscd_cfg_userattr_cfg_db,
922cb5caa98Sdjl 		sizeof (nscd_cfg_userattr_cfg_db)),
923cb5caa98Sdjl 
924cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_PARAM(
925cb5caa98Sdjl 		NSS_DBNAM_AUDITUSER,
926cb5caa98Sdjl 		sw,
927cb5caa98Sdjl 		nsw_config_db,
928cb5caa98Sdjl 		nscd_cfg_switch_t,
929cb5caa98Sdjl 		&nscd_cfg_auuser_cfg_db,
930cb5caa98Sdjl 		sizeof (nscd_cfg_auuser_cfg_db)),
931cb5caa98Sdjl 
932cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_PARAM(
933cb5caa98Sdjl 		NSS_DBNAM_EXECATTR,
934cb5caa98Sdjl 		sw,
935cb5caa98Sdjl 		nsw_config_db,
936cb5caa98Sdjl 		nscd_cfg_switch_t,
937cb5caa98Sdjl 		&nscd_cfg_execattr_cfg_db,
938cb5caa98Sdjl 		sizeof (nscd_cfg_execattr_cfg_db)),
939cb5caa98Sdjl 
940cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_PARAM(
941cb5caa98Sdjl 		NSS_DBNAM_PASSWD_COMPAT,
942cb5caa98Sdjl 		sw,
943cb5caa98Sdjl 		nsw_config_string,
944cb5caa98Sdjl 		nscd_cfg_switch_t,
945cb5caa98Sdjl 		&nscd_cfg_def_passwd_compat,
946cb5caa98Sdjl 		sizeof (nscd_cfg_def_passwd_compat)),
947cb5caa98Sdjl 
948cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_PARAM(
949cb5caa98Sdjl 		NSS_DBNAM_GROUP_COMPAT,
950cb5caa98Sdjl 		sw,
951cb5caa98Sdjl 		nsw_config_string,
952cb5caa98Sdjl 		nscd_cfg_switch_t,
953cb5caa98Sdjl 		&nscd_cfg_def_group_compat,
954cb5caa98Sdjl 		sizeof (nscd_cfg_def_group_compat)),
955cb5caa98Sdjl 
956cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_NULL
957cb5caa98Sdjl };
958cb5caa98Sdjl 
959cb5caa98Sdjl /*
960cb5caa98Sdjl  * switch database specific defaults that are linked to
961cb5caa98Sdjl  * those of other databases
962cb5caa98Sdjl  */
963cb5caa98Sdjl nscd_cfg_nsw_spc_default_t	_nscd_cfg_nsw_link_default[] = {
964cb5caa98Sdjl 
965cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_PARAM(
966cb5caa98Sdjl 		NSS_DBNAM_SHADOW,
967cb5caa98Sdjl 		sw,
968cb5caa98Sdjl 		nsw_config_string,
969cb5caa98Sdjl 		nscd_cfg_switch_t,
970cb5caa98Sdjl 		&nscd_cfg_passwd_cfg_link,
971cb5caa98Sdjl 		0),
972cb5caa98Sdjl 
973cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_PARAM(
974cb5caa98Sdjl 		NSS_DBNAM_USERATTR,
975cb5caa98Sdjl 		sw,
976cb5caa98Sdjl 		nsw_config_string,
977cb5caa98Sdjl 		nscd_cfg_switch_t,
978cb5caa98Sdjl 		&nscd_cfg_passwd_cfg_link,
979cb5caa98Sdjl 		0),
980cb5caa98Sdjl 
981cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_PARAM(
982cb5caa98Sdjl 		NSS_DBNAM_AUDITUSER,
983cb5caa98Sdjl 		sw,
984cb5caa98Sdjl 		nsw_config_string,
985cb5caa98Sdjl 		nscd_cfg_switch_t,
986cb5caa98Sdjl 		&nscd_cfg_passwd_cfg_link,
987cb5caa98Sdjl 		0),
988cb5caa98Sdjl 
989cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_PARAM(
990cb5caa98Sdjl 		NSS_DBNAM_EXECATTR,
991cb5caa98Sdjl 		sw,
992cb5caa98Sdjl 		nsw_config_string,
993cb5caa98Sdjl 		nscd_cfg_switch_t,
994cb5caa98Sdjl 		&nscd_cfg_profattr_cfg_link,
995cb5caa98Sdjl 		0),
996cb5caa98Sdjl 
997cb5caa98Sdjl 	NSCD_CFG_DB_DEFAULT_NULL
998cb5caa98Sdjl };
999cb5caa98Sdjl 
1000cb5caa98Sdjl /*
1001cb5caa98Sdjl  * macros for defining the static stats table
1002cb5caa98Sdjl  */
1003cb5caa98Sdjl #define	NSCD_CFG_SGROUP_DESC(sn, type, sflag, gi, \
1004cb5caa98Sdjl 		gf, g_in_t, gsfunc_name) \
1005cb5caa98Sdjl 	{ \
1006cb5caa98Sdjl 		{-1, sn}, type, NSCD_CFG_SFLAG_GROUP | sflag, gi, \
1007cb5caa98Sdjl 		0, 0, 0,\
1008cb5caa98Sdjl 		NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \
1009*0dfdd7f3Smichen 		gsfunc_name \
1010cb5caa98Sdjl 	}
1011cb5caa98Sdjl 
1012cb5caa98Sdjl #define	NSCD_CFG_STAT_DESC(sn, type, sflag, sf, s_in_t, \
1013cb5caa98Sdjl 		gf, g_in_t, gsfunc_name) \
1014cb5caa98Sdjl 	{ \
1015cb5caa98Sdjl 		{-1, sn}, type, sflag, NSCD_CFG_GROUP_INFO_NULL, \
1016cb5caa98Sdjl 		NSCD_SIZEOF(s_in_t, sf), offsetof(s_in_t, sf), -1, \
1017cb5caa98Sdjl 		NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \
1018*0dfdd7f3Smichen 		gsfunc_name \
1019cb5caa98Sdjl 	}
1020cb5caa98Sdjl 
1021cb5caa98Sdjl #define	NSCD_CFG_SGROUP_DESC_NULL \
1022cb5caa98Sdjl 	{ \
1023cb5caa98Sdjl 		{-1, NULL}, -1, NSCD_CFG_SFLAG_GROUP, NULL, \
1024cb5caa98Sdjl 		0, 0, 0, \
1025cb5caa98Sdjl 		0, 0, 0, \
1026*0dfdd7f3Smichen 		NULL \
1027cb5caa98Sdjl 	}
1028cb5caa98Sdjl 
1029cb5caa98Sdjl /*
1030cb5caa98Sdjl  * the static statistics description table
1031cb5caa98Sdjl  */
1032cb5caa98Sdjl static	nscd_cfg_stat_desc_t	_nscd_cfg_stat_desc[] = {
1033cb5caa98Sdjl 
1034cb5caa98Sdjl 	NSCD_CFG_SGROUP_DESC(
1035cb5caa98Sdjl 		"stat-group-global-log",
1036cb5caa98Sdjl 		NSCD_CFG_DATA_NONE,
1037cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1038cb5caa98Sdjl 		NSCD_CFG_STAT_GROUP_INFO_GLOBAL_LOG,
1039cb5caa98Sdjl 		log,
1040cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1041*0dfdd7f3Smichen 		_nscd_cfg_log_get_stat),
1042cb5caa98Sdjl 
1043cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1044cb5caa98Sdjl 		"entries-logged",
1045cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1046cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1047cb5caa98Sdjl 		entries_logged,
1048cb5caa98Sdjl 		nscd_cfg_stat_global_log_t,
1049cb5caa98Sdjl 		log,
1050cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1051*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1052cb5caa98Sdjl 
1053cb5caa98Sdjl 	NSCD_CFG_SGROUP_DESC(
1054cb5caa98Sdjl 		"stat-group-global-switch",
1055cb5caa98Sdjl 		NSCD_CFG_DATA_NONE,
1056cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1057cb5caa98Sdjl 		NSCD_CFG_STAT_GROUP_INFO_GLOBAL_SWITCH,
1058cb5caa98Sdjl 		sw,
1059cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1060*0dfdd7f3Smichen 		_nscd_cfg_switch_get_stat),
1061cb5caa98Sdjl 
1062cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1063cb5caa98Sdjl 		"global-lookup-request-received",
1064cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1065cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1066cb5caa98Sdjl 		lookup_request_received_g,
1067cb5caa98Sdjl 		nscd_cfg_stat_global_switch_t,
1068cb5caa98Sdjl 		sw,
1069cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1070*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1071cb5caa98Sdjl 
1072cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1073cb5caa98Sdjl 		"global-lookup-request-queued",
1074cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1075cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1076cb5caa98Sdjl 		lookup_request_queued_g,
1077cb5caa98Sdjl 		nscd_cfg_stat_global_switch_t,
1078cb5caa98Sdjl 		sw,
1079cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1080*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1081cb5caa98Sdjl 
1082cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1083cb5caa98Sdjl 		"global-lookup-request-in-progress",
1084cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1085cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1086cb5caa98Sdjl 		lookup_request_in_progress_g,
1087cb5caa98Sdjl 		nscd_cfg_stat_global_switch_t,
1088cb5caa98Sdjl 		sw,
1089cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1090*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1091cb5caa98Sdjl 
1092cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1093cb5caa98Sdjl 		"global-lookup-request-succeeded",
1094cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1095cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1096cb5caa98Sdjl 		lookup_request_succeeded_g,
1097cb5caa98Sdjl 		nscd_cfg_stat_global_switch_t,
1098cb5caa98Sdjl 		sw,
1099cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1100*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1101cb5caa98Sdjl 
1102cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1103cb5caa98Sdjl 		"global-lookup-request-failed",
1104cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1105cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1106cb5caa98Sdjl 		lookup_request_failed_g,
1107cb5caa98Sdjl 		nscd_cfg_stat_global_switch_t,
1108cb5caa98Sdjl 		sw,
1109cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1110*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1111cb5caa98Sdjl 
1112cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1113cb5caa98Sdjl 		"global-loopback-nsw-db-skipped",
1114cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1115cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1116cb5caa98Sdjl 		loopback_nsw_db_skipped_g,
1117cb5caa98Sdjl 		nscd_cfg_stat_global_switch_t,
1118cb5caa98Sdjl 		sw,
1119cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1120*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1121cb5caa98Sdjl 
1122cb5caa98Sdjl 	NSCD_CFG_SGROUP_DESC(
1123cb5caa98Sdjl 		"stat-group-global-cache",
1124cb5caa98Sdjl 		NSCD_CFG_DATA_NONE,
1125cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1126cb5caa98Sdjl 		NSCD_CFG_STAT_GROUP_INFO_CACHE,
1127cb5caa98Sdjl 		cache,
1128cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1129*0dfdd7f3Smichen 		_nscd_cfg_cache_get_stat),
1130cb5caa98Sdjl 
1131cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1132cb5caa98Sdjl 		"global-cache-hits-on-positive",
1133cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1134cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1135cb5caa98Sdjl 		pos_hits,
1136cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1137cb5caa98Sdjl 		cache,
1138cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1139*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1140cb5caa98Sdjl 
1141cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1142cb5caa98Sdjl 		"global-cache-hits-on-negative",
1143cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1144cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1145cb5caa98Sdjl 		neg_hits,
1146cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1147cb5caa98Sdjl 		cache,
1148cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1149*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1150cb5caa98Sdjl 
1151cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1152cb5caa98Sdjl 		"global-cache-misses-on-positive",
1153cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1154cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1155cb5caa98Sdjl 		pos_misses,
1156cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1157cb5caa98Sdjl 		cache,
1158cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1159*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1160cb5caa98Sdjl 
1161cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1162cb5caa98Sdjl 		"global-cache-misses-on-negative",
1163cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1164cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1165cb5caa98Sdjl 		neg_misses,
1166cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1167cb5caa98Sdjl 		cache,
1168cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1169*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1170cb5caa98Sdjl 
1171cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1172cb5caa98Sdjl 		"global-cache-queries-queued",
1173cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1174cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1175cb5caa98Sdjl 		wait_count,
1176cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1177cb5caa98Sdjl 		cache,
1178cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1179*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1180cb5caa98Sdjl 
1181cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1182cb5caa98Sdjl 		"global-total-cache-entries",
1183cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1184cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1185cb5caa98Sdjl 		entries,
1186cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1187cb5caa98Sdjl 		cache,
1188cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1189*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1190cb5caa98Sdjl 
1191cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1192cb5caa98Sdjl 		"global-complete-cache-invalidations",
1193cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1194cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1195cb5caa98Sdjl 		invalidate_count,
1196cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1197cb5caa98Sdjl 		cache,
1198cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1199*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1200cb5caa98Sdjl 
1201cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1202cb5caa98Sdjl 		"global-cache-queries-dropped",
1203cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1204cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1205cb5caa98Sdjl 		drop_count,
1206cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1207cb5caa98Sdjl 		cache,
1208cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1209*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1210cb5caa98Sdjl 
1211cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1212cb5caa98Sdjl 		"global-cache-hit-rate",
1213cb5caa98Sdjl 		NSCD_CFG_DATA_PERCENT,
1214cb5caa98Sdjl 		NSCD_CFG_SFLAG_GLOBAL,
1215cb5caa98Sdjl 		hitrate,
1216cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1217cb5caa98Sdjl 		cache,
1218cb5caa98Sdjl 		nscd_cfg_stat_global_data_t,
1219*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1220cb5caa98Sdjl 
1221cb5caa98Sdjl 	/* non-global stat from this point on */
1222cb5caa98Sdjl 
1223cb5caa98Sdjl 	NSCD_CFG_SGROUP_DESC(
1224cb5caa98Sdjl 		"stat-group-switch",
1225cb5caa98Sdjl 		NSCD_CFG_DATA_NONE,
1226cb5caa98Sdjl 		NSCD_CFG_SFLAG_GROUP,
1227cb5caa98Sdjl 		NSCD_CFG_STAT_GROUP_INFO_SWITCH,
1228cb5caa98Sdjl 		cache,
1229cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1230*0dfdd7f3Smichen 		_nscd_cfg_switch_get_stat),
1231cb5caa98Sdjl 
1232cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1233cb5caa98Sdjl 		"lookup-request-received",
1234cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1235cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1236cb5caa98Sdjl 		lookup_request_received,
1237cb5caa98Sdjl 		nscd_cfg_stat_switch_t,
1238cb5caa98Sdjl 		sw,
1239cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1240*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1241cb5caa98Sdjl 
1242cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1243cb5caa98Sdjl 		"lookup-request-queued",
1244cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1245cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1246cb5caa98Sdjl 		lookup_request_queued,
1247cb5caa98Sdjl 		nscd_cfg_stat_switch_t,
1248cb5caa98Sdjl 		sw,
1249cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1250*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1251cb5caa98Sdjl 
1252cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1253cb5caa98Sdjl 		"lookup-request-in-progress",
1254cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1255cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1256cb5caa98Sdjl 		lookup_request_in_progress,
1257cb5caa98Sdjl 		nscd_cfg_stat_switch_t,
1258cb5caa98Sdjl 		sw,
1259cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1260*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1261cb5caa98Sdjl 
1262cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1263cb5caa98Sdjl 		"lookup-request-succeeded",
1264cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1265cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1266cb5caa98Sdjl 		lookup_request_succeeded,
1267cb5caa98Sdjl 		nscd_cfg_stat_switch_t,
1268cb5caa98Sdjl 		sw,
1269cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1270*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1271cb5caa98Sdjl 
1272cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1273cb5caa98Sdjl 		"lookup-request-failed",
1274cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1275cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1276cb5caa98Sdjl 		lookup_request_failed,
1277cb5caa98Sdjl 		nscd_cfg_stat_switch_t,
1278cb5caa98Sdjl 		sw,
1279cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1280*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1281cb5caa98Sdjl 
1282cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1283cb5caa98Sdjl 		"loopback-nsw-db-skipped",
1284cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1285cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1286cb5caa98Sdjl 		loopback_nsw_db_skipped,
1287cb5caa98Sdjl 		nscd_cfg_stat_switch_t,
1288cb5caa98Sdjl 		sw,
1289cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1290*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1291cb5caa98Sdjl 
1292cb5caa98Sdjl 	NSCD_CFG_SGROUP_DESC(
1293cb5caa98Sdjl 		"stat-group-cache",
1294cb5caa98Sdjl 		NSCD_CFG_DATA_NONE,
1295cb5caa98Sdjl 		NSCD_CFG_SFLAG_GROUP,
1296cb5caa98Sdjl 		NSCD_CFG_STAT_GROUP_INFO_CACHE,
1297cb5caa98Sdjl 		cache,
1298cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1299*0dfdd7f3Smichen 		_nscd_cfg_cache_get_stat),
1300cb5caa98Sdjl 
1301cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1302cb5caa98Sdjl 		"cache-hits-on-positive",
1303cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1304cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1305cb5caa98Sdjl 		pos_hits,
1306cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1307cb5caa98Sdjl 		cache,
1308cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1309*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1310cb5caa98Sdjl 
1311cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1312cb5caa98Sdjl 		"cache-hits-on-negative",
1313cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1314cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1315cb5caa98Sdjl 		neg_hits,
1316cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1317cb5caa98Sdjl 		cache,
1318cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1319*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1320cb5caa98Sdjl 
1321cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1322cb5caa98Sdjl 		"cache-misses-on-positive",
1323cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1324cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1325cb5caa98Sdjl 		pos_misses,
1326cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1327cb5caa98Sdjl 		cache,
1328cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1329*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1330cb5caa98Sdjl 
1331cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1332cb5caa98Sdjl 		"cache-misses-on-negative",
1333cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1334cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1335cb5caa98Sdjl 		neg_misses,
1336cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1337cb5caa98Sdjl 		cache,
1338cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1339*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1340cb5caa98Sdjl 
1341cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1342cb5caa98Sdjl 		"cache-queries-queued",
1343cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1344cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1345cb5caa98Sdjl 		wait_count,
1346cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1347cb5caa98Sdjl 		cache,
1348cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1349*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1350cb5caa98Sdjl 
1351cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1352cb5caa98Sdjl 		"total-cache-entries",
1353cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1354cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1355cb5caa98Sdjl 		entries,
1356cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1357cb5caa98Sdjl 		cache,
1358cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1359*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1360cb5caa98Sdjl 
1361cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1362cb5caa98Sdjl 		"complete-cache-invalidations",
1363cb5caa98Sdjl 		NSCD_CFG_DATA_INTEGER,
1364cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1365cb5caa98Sdjl 		invalidate_count,
1366cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1367cb5caa98Sdjl 		cache,
1368cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1369*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1370cb5caa98Sdjl 
1371cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1372cb5caa98Sdjl 		"cache-hit-rate",
1373cb5caa98Sdjl 		NSCD_CFG_DATA_PERCENT,
1374cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1375cb5caa98Sdjl 		hitrate,
1376cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1377cb5caa98Sdjl 		cache,
1378cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1379*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1380cb5caa98Sdjl 
1381cb5caa98Sdjl 	NSCD_CFG_STAT_DESC(
1382cb5caa98Sdjl 		"cache-queries-dropped",
1383cb5caa98Sdjl 		NSCD_CFG_DATA_PERCENT,
1384cb5caa98Sdjl 		NSCD_CFG_SFLAG_NONE,
1385cb5caa98Sdjl 		drop_count,
1386cb5caa98Sdjl 		nscd_cfg_stat_cache_t,
1387cb5caa98Sdjl 		cache,
1388cb5caa98Sdjl 		nscd_cfg_stat_nsw_db_data_t,
1389*0dfdd7f3Smichen 		NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1390cb5caa98Sdjl 
1391cb5caa98Sdjl 
1392cb5caa98Sdjl 	NSCD_CFG_SGROUP_DESC_NULL
1393cb5caa98Sdjl };
1394cb5caa98Sdjl 
1395cb5caa98Sdjl /* number of entries in the static tables */
1396cb5caa98Sdjl 
1397cb5caa98Sdjl int _nscd_cfg_num_nsw_src =
1398cb5caa98Sdjl 	(sizeof (_nscd_cfg_nsw_src) /
1399cb5caa98Sdjl 		sizeof (_nscd_cfg_nsw_src[0]) - 1);
1400cb5caa98Sdjl 
1401cb5caa98Sdjl int _nscd_cfg_num_smf_services =
1402cb5caa98Sdjl 	(sizeof (_nscd_cfg_smf_services) /
1403cb5caa98Sdjl 		sizeof (_nscd_cfg_smf_services[0]) - 1);
1404cb5caa98Sdjl 
1405cb5caa98Sdjl /* number of supported nsw databases (including pseudo ones) */
1406cb5caa98Sdjl int _nscd_cfg_num_nsw_db_all =
1407cb5caa98Sdjl 	(sizeof (_nscd_cfg_nsw_db) /
1408cb5caa98Sdjl 		sizeof (_nscd_cfg_nsw_db[0]) - 1);
1409cb5caa98Sdjl 
1410cb5caa98Sdjl /* number of supported nsw databases (not including pseudo ones) */
1411cb5caa98Sdjl int _nscd_cfg_num_nsw_db =
1412cb5caa98Sdjl 	(sizeof (_nscd_cfg_nsw_db) /
1413cb5caa98Sdjl 		sizeof (_nscd_cfg_nsw_db[0]) - 1) -
1414cb5caa98Sdjl 		NSS_DBNAM_COMPAT_NUM_DB;
1415cb5caa98Sdjl 
1416cb5caa98Sdjl static int _nscd_cfg_num_param =
1417cb5caa98Sdjl 	(sizeof (_nscd_cfg_param_desc) /
1418cb5caa98Sdjl 		sizeof (_nscd_cfg_param_desc[0]) - 1);
1419cb5caa98Sdjl 
1420cb5caa98Sdjl static int _nscd_cfg_num_stat =
1421cb5caa98Sdjl 	(sizeof (_nscd_cfg_stat_desc) /
1422cb5caa98Sdjl 		sizeof (_nscd_cfg_stat_desc[0]) - 1);
1423cb5caa98Sdjl 
1424cb5caa98Sdjl int _nscd_cfg_num_nsw_default =
1425cb5caa98Sdjl 	(sizeof (_nscd_cfg_nsw_spc_default) /
1426cb5caa98Sdjl 		sizeof (_nscd_cfg_nsw_spc_default[0]) - 1);
1427cb5caa98Sdjl 
1428cb5caa98Sdjl int _nscd_cfg_num_link_default =
1429cb5caa98Sdjl 	(sizeof (_nscd_cfg_nsw_link_default) /
1430cb5caa98Sdjl 		sizeof (_nscd_cfg_nsw_link_default[0]) - 1);
1431cb5caa98Sdjl 
1432cb5caa98Sdjl #ifdef	__cplusplus
1433cb5caa98Sdjl }
1434cb5caa98Sdjl #endif
1435cb5caa98Sdjl 
1436cb5caa98Sdjl #endif	/* _NSCD_CFGDEF_H */
1437