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