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