Backed out changeset e05f5705283d (wrong name)
[unleashed.git] / usr / src / cmd / nscd / nscd_cfgdef.h
bloba73cf1f6aff5ea4ec64a427936e4890484c974ae
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 { 21, NSS_DBNAM_TSOL_TP },
174 { 22, NSS_DBNAM_TSOL_RH },
175 /* pseudo-databases for the compat backend */
176 { 23, NSS_DBNAM_PASSWD_COMPAT },
177 { 24, NSS_DBNAM_GROUP_COMPAT },
178 #define NSS_DBNAM_COMPAT_NUM_DB 5
180 * pseudo-databases that use the switch policy that is
181 * configured for NSS_DBNAM_PASSWD_COMPAT
183 { 25, NSS_DBNAM_PASSWD },
184 { 26, NSS_DBNAM_SHADOW },
185 { 27, NSS_DBNAM_AUDITUSER },
186 { 28, NSS_DBNAM_USERATTR },
188 * pseudo-database that uses the switch policy that is
189 * configured for NSS_DBNAM_GROUP_COMPAT
191 { 29, NSS_DBNAM_GROUP },
192 { -1, NULL }
196 * A special way to indicate all switch databases
198 static nscd_cfg_id_t _nscd_cfg_nsw_alldb = {
199 NSCD_CFG_NSW_ALLDB_INDEX,
200 NSCD_CFG_NSW_ALLDB
204 * data for preliminary checking of the log configuration
206 static nscd_cfg_str_check_t NSCD_CFG_LOGFILE_PCHECK =
207 {nscd_false, PATH_MAX};
208 static nscd_cfg_bitmap_check_t NSCD_CFG_LOGCOMP_PCHECK =
209 {NSCD_LOG_ALL};
210 static nscd_cfg_bitmap_check_t NSCD_CFG_LOGLEVEL_PCHECK =
211 {NSCD_LOG_LEVEL_ALL};
213 /* data for preliminary checking of the switch configuration */
214 static nscd_cfg_str_check_t NSCD_CFG_NSWCFGSTR_PCHECK =
215 {nscd_true, 128};
218 * macros for defining the static param table
220 #define NSCD_CFG_PGROUP_DESC(pn, type, pflag, gf, g_in_t, pcheck_p,\
221 nfunc_name, vfunc_name) \
223 {-1, pn}, type, (NSCD_CFG_PFLAG_GROUP | pflag), \
224 0, 0, 0,\
225 NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \
226 pcheck_p, nfunc_name, vfunc_name \
229 #define NSCD_CFG_PARAM_DESC(pn, type, pflag, pf, p_in_t, \
230 gf, g_in_t, pcheck_p, nfunc_name, vfunc_name) \
232 {-1, pn}, type, pflag, \
233 NSCD_SIZEOF(p_in_t, pf), offsetof(p_in_t, pf), -1, \
234 NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \
235 pcheck_p, nfunc_name, vfunc_name \
238 #define NSCD_CFG_PGROUP_DESC_NULL \
240 {-1, NULL}, -1, NSCD_CFG_PFLAG_GROUP, \
241 0, 0, 0, \
242 0, 0, 0, \
243 NULL, NULL, NULL \
246 /* nscd internal cfg_*_notify() cfg_*_verify() and cfg_*_get_stat() */
247 extern nscd_rc_t _nscd_cfg_log_notify();
248 extern nscd_rc_t _nscd_cfg_log_verify();
249 extern nscd_rc_t _nscd_cfg_frontend_notify();
250 extern nscd_rc_t _nscd_cfg_frontend_verify();
251 extern nscd_rc_t _nscd_cfg_selfcred_notify();
252 extern nscd_rc_t _nscd_cfg_selfcred_verify();
253 extern nscd_rc_t _nscd_cfg_switch_notify();
254 extern nscd_rc_t _nscd_cfg_switch_verify();
255 extern nscd_rc_t _nscd_cfg_cache_notify();
256 extern nscd_rc_t _nscd_cfg_cache_verify();
257 extern nscd_rc_t _nscd_cfg_log_get_stat();
258 extern nscd_rc_t _nscd_cfg_switch_get_stat();
259 extern nscd_rc_t _nscd_cfg_cache_get_stat();
262 * the following macros are used to indicate a parameter's
263 * notify/verify/get_stat functions are the same as those
264 * of the group
266 #define NSCD_CFG_FUNC_NOTIFY_AS_GROUP ((nscd_cfg_func_notify_t)-1)
267 #define NSCD_CFG_FUNC_VERIFY_AS_GROUP ((nscd_cfg_func_verify_t)-1)
268 #define NSCD_CFG_FUNC_GET_STAT_AS_GROUP ((nscd_cfg_func_get_stat_t)-1)
271 * the static config parameter description table
273 static nscd_cfg_param_desc_t _nscd_cfg_param_desc[] = {
275 NSCD_CFG_PGROUP_DESC(
276 "param-group-global-log",
277 NSCD_CFG_DATA_NONE,
278 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP |
279 NSCD_CFG_PFLAG_GLOBAL,
280 log,
281 nscd_cfg_global_data_t,
282 NULL,
283 _nscd_cfg_log_notify,
284 _nscd_cfg_log_verify),
286 NSCD_CFG_PARAM_DESC(
287 "logfile",
288 NSCD_CFG_DATA_STRING,
289 NSCD_CFG_PFLAG_GLOBAL |
290 NSCD_CFG_PFLAG_VLEN_DATA,
291 logfile,
292 nscd_cfg_global_log_t,
293 log,
294 nscd_cfg_global_data_t,
295 &NSCD_CFG_LOGFILE_PCHECK,
296 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
297 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
299 NSCD_CFG_PARAM_DESC(
300 "debug-level",
301 NSCD_CFG_DATA_BITMAP,
302 NSCD_CFG_PFLAG_GLOBAL,
303 debug_level,
304 nscd_cfg_global_log_t,
305 log,
306 nscd_cfg_global_data_t,
307 &NSCD_CFG_LOGLEVEL_PCHECK,
308 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
309 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
311 NSCD_CFG_PARAM_DESC(
312 "debug-components",
313 NSCD_CFG_DATA_BITMAP,
314 NSCD_CFG_PFLAG_GLOBAL,
315 debug_comp,
316 nscd_cfg_global_log_t,
317 log,
318 nscd_cfg_global_data_t,
319 &NSCD_CFG_LOGCOMP_PCHECK,
320 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
321 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
323 NSCD_CFG_PGROUP_DESC(
324 "param-group-global-frontend",
325 NSCD_CFG_DATA_NONE,
326 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP |
327 NSCD_CFG_PFLAG_GLOBAL,
329 nscd_cfg_global_data_t,
330 NULL,
331 _nscd_cfg_frontend_notify,
332 _nscd_cfg_frontend_verify),
334 NSCD_CFG_PARAM_DESC(
335 "common-worker-threads",
336 NSCD_CFG_DATA_INTEGER,
337 NSCD_CFG_PFLAG_SEND_BIT_SELECTED |
338 NSCD_CFG_PFLAG_GLOBAL,
339 common_worker_threads,
340 nscd_cfg_global_frontend_t,
342 nscd_cfg_global_data_t,
343 NULL,
344 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
345 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
347 NSCD_CFG_PARAM_DESC(
348 "cache-hit-threads",
349 NSCD_CFG_DATA_INTEGER,
350 NSCD_CFG_PFLAG_SEND_BIT_SELECTED |
351 NSCD_CFG_PFLAG_GLOBAL,
352 cache_hit_threads,
353 nscd_cfg_global_frontend_t,
355 nscd_cfg_global_data_t,
356 NULL,
357 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
358 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
360 NSCD_CFG_PGROUP_DESC(
361 "param-group-global-selfcred",
362 NSCD_CFG_DATA_NONE,
363 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP |
364 NSCD_CFG_PFLAG_GLOBAL,
366 nscd_cfg_global_data_t,
367 NULL,
368 _nscd_cfg_selfcred_notify,
369 _nscd_cfg_selfcred_verify),
371 NSCD_CFG_PARAM_DESC(
372 "enable-selfcred",
373 NSCD_CFG_DATA_BOOLEAN,
374 NSCD_CFG_PFLAG_GLOBAL,
375 enable_selfcred,
376 nscd_cfg_global_selfcred_t,
378 nscd_cfg_global_data_t,
379 NULL,
380 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
381 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
383 NSCD_CFG_PARAM_DESC(
384 "per-user-nscd-ttl",
385 NSCD_CFG_DATA_INTEGER,
386 NSCD_CFG_PFLAG_GLOBAL,
387 per_user_nscd_ttl,
388 nscd_cfg_global_selfcred_t,
390 nscd_cfg_global_data_t,
391 NULL,
392 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
393 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
395 NSCD_CFG_PGROUP_DESC(
396 "param-group-global-switch",
397 NSCD_CFG_DATA_NONE,
398 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP |
399 NSCD_CFG_PFLAG_GLOBAL,
401 nscd_cfg_global_data_t,
402 NULL,
403 _nscd_cfg_switch_notify,
404 _nscd_cfg_switch_verify),
406 NSCD_CFG_PARAM_DESC(
407 "global-enable-lookup",
408 NSCD_CFG_DATA_BOOLEAN,
409 NSCD_CFG_PFLAG_GLOBAL,
410 enable_lookup_g,
411 nscd_cfg_global_switch_t,
413 nscd_cfg_global_data_t,
414 NULL,
415 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
416 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
418 NSCD_CFG_PARAM_DESC(
419 "global-enable-loopback-checking",
420 NSCD_CFG_DATA_BOOLEAN,
421 NSCD_CFG_PFLAG_GLOBAL,
422 enable_loopback_checking_g,
423 nscd_cfg_global_switch_t,
425 nscd_cfg_global_data_t,
426 NULL,
427 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
428 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
430 NSCD_CFG_PARAM_DESC(
431 "global-check-smf-state-interval",
432 NSCD_CFG_DATA_INTEGER,
433 NSCD_CFG_PFLAG_GLOBAL,
434 check_smf_state_interval_g,
435 nscd_cfg_global_switch_t,
437 nscd_cfg_global_data_t,
438 NULL,
439 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
440 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
442 NSCD_CFG_PGROUP_DESC(
443 "param-group-global-cache",
444 NSCD_CFG_DATA_NONE,
445 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP |
446 NSCD_CFG_PFLAG_INIT_SET_ALL_DB |
447 NSCD_CFG_PFLAG_GLOBAL,
448 cache,
449 nscd_cfg_global_data_t,
450 NULL,
451 _nscd_cfg_cache_notify,
452 _nscd_cfg_cache_verify),
454 NSCD_CFG_PARAM_DESC(
455 "global-enable-cache",
456 NSCD_CFG_DATA_BOOLEAN,
457 NSCD_CFG_PFLAG_GLOBAL,
458 enable,
459 nscd_cfg_global_cache_t,
460 cache,
461 nscd_cfg_global_data_t,
462 NULL,
463 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
464 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
466 /* non-global config param from this point on */
468 NSCD_CFG_PGROUP_DESC(
469 "param-group-frontend",
470 NSCD_CFG_DATA_NONE,
471 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP,
473 nscd_cfg_nsw_db_data_t,
474 NULL,
475 _nscd_cfg_frontend_notify,
476 _nscd_cfg_frontend_verify),
478 NSCD_CFG_PARAM_DESC(
479 "worker-thread-per-nsw-db",
480 NSCD_CFG_DATA_INTEGER,
481 NSCD_CFG_PFLAG_NONE,
482 worker_thread_per_nsw_db,
483 nscd_cfg_frontend_t,
485 nscd_cfg_nsw_db_data_t,
486 NULL,
487 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
488 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
490 NSCD_CFG_PGROUP_DESC(
491 "param-group-switch",
492 NSCD_CFG_DATA_NONE,
493 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP |
494 NSCD_CFG_PFLAG_NONE,
496 nscd_cfg_nsw_db_data_t,
497 NULL,
498 _nscd_cfg_switch_notify,
499 _nscd_cfg_switch_verify),
501 NSCD_CFG_PARAM_DESC(
502 "nsw-config-string",
503 NSCD_CFG_DATA_STRING,
504 NSCD_CFG_PFLAG_VLEN_DATA |
505 NSCD_CFG_PFLAG_LINKED,
506 nsw_config_string,
507 nscd_cfg_switch_t,
509 nscd_cfg_nsw_db_data_t,
510 &NSCD_CFG_NSWCFGSTR_PCHECK,
511 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
512 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
514 NSCD_CFG_PARAM_DESC(
515 "nsw-config-database",
516 NSCD_CFG_DATA_STRING,
517 NSCD_CFG_PFLAG_VLEN_DATA |
518 NSCD_CFG_PFLAG_HIDDEN,
519 nsw_config_db,
520 nscd_cfg_switch_t,
522 nscd_cfg_nsw_db_data_t,
523 &NSCD_CFG_NSWCFGSTR_PCHECK,
524 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
525 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
527 NSCD_CFG_PARAM_DESC(
528 "enable-lookup",
529 NSCD_CFG_DATA_BOOLEAN,
530 NSCD_CFG_PFLAG_NONE,
531 enable_lookup,
532 nscd_cfg_switch_t,
534 nscd_cfg_nsw_db_data_t,
535 NULL,
536 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
537 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
539 NSCD_CFG_PARAM_DESC(
540 "enable-loopback-checking",
541 NSCD_CFG_DATA_BOOLEAN,
542 NSCD_CFG_PFLAG_NONE,
543 enable_loopback_checking,
544 nscd_cfg_switch_t,
546 nscd_cfg_nsw_db_data_t,
547 NULL,
548 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
549 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
551 NSCD_CFG_PARAM_DESC(
552 "max-nsw-state-per-db",
553 NSCD_CFG_DATA_INTEGER,
554 NSCD_CFG_PFLAG_NONE,
555 max_nsw_state_per_db,
556 nscd_cfg_switch_t,
558 nscd_cfg_nsw_db_data_t,
559 NULL,
560 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
561 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
563 NSCD_CFG_PARAM_DESC(
564 "max-nsw-state-per-thread",
565 NSCD_CFG_DATA_INTEGER,
566 NSCD_CFG_PFLAG_NONE,
567 max_nsw_state_per_thread,
568 nscd_cfg_switch_t,
570 nscd_cfg_nsw_db_data_t,
571 NULL,
572 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
573 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
575 NSCD_CFG_PARAM_DESC(
576 "max-getent-ctx-per-db",
577 NSCD_CFG_DATA_INTEGER,
578 NSCD_CFG_PFLAG_NONE,
579 max_getent_ctx_per_db,
580 nscd_cfg_switch_t,
582 nscd_cfg_nsw_db_data_t,
583 NULL,
584 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
585 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
587 NSCD_CFG_PGROUP_DESC(
588 "param-group-cache",
589 NSCD_CFG_DATA_NONE,
590 NSCD_CFG_PFLAG_INIT_SEND_WHOLE_GROUP,
591 cache,
592 nscd_cfg_nsw_db_data_t,
593 NULL,
594 _nscd_cfg_cache_notify,
595 _nscd_cfg_cache_verify),
597 NSCD_CFG_PARAM_DESC(
598 "enable-cache",
599 NSCD_CFG_DATA_BOOLEAN,
600 NSCD_CFG_PFLAG_NONE,
601 enable,
602 nscd_cfg_cache_t,
603 cache,
604 nscd_cfg_nsw_db_data_t,
605 NULL,
606 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
607 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
609 NSCD_CFG_PARAM_DESC(
610 "enable-per-user-cache",
611 NSCD_CFG_DATA_BOOLEAN,
612 NSCD_CFG_PFLAG_NONE,
613 per_user,
614 nscd_cfg_cache_t,
615 cache,
616 nscd_cfg_nsw_db_data_t,
617 NULL,
618 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
619 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
621 NSCD_CFG_PARAM_DESC(
622 "avoid-nameservice",
623 NSCD_CFG_DATA_BOOLEAN,
624 NSCD_CFG_PFLAG_NONE,
625 avoid_ns,
626 nscd_cfg_cache_t,
627 cache,
628 nscd_cfg_nsw_db_data_t,
629 NULL,
630 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
631 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
633 NSCD_CFG_PARAM_DESC(
634 "check-files",
635 NSCD_CFG_DATA_BOOLEAN,
636 NSCD_CFG_PFLAG_NONE,
637 check_files,
638 nscd_cfg_cache_t,
639 cache,
640 nscd_cfg_nsw_db_data_t,
641 NULL,
642 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
643 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
645 NSCD_CFG_PARAM_DESC(
646 "check-file-interval",
647 NSCD_CFG_DATA_INTEGER,
648 NSCD_CFG_PFLAG_NONE,
649 check_interval,
650 nscd_cfg_cache_t,
651 cache,
652 nscd_cfg_nsw_db_data_t,
653 NULL,
654 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
655 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
657 NSCD_CFG_PARAM_DESC(
658 "positive-time-to-live",
659 NSCD_CFG_DATA_INTEGER,
660 NSCD_CFG_PFLAG_NONE,
661 pos_ttl,
662 nscd_cfg_cache_t,
663 cache,
664 nscd_cfg_nsw_db_data_t,
665 NULL,
666 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
667 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
669 NSCD_CFG_PARAM_DESC(
670 "negative-time-to-live",
671 NSCD_CFG_DATA_INTEGER,
672 NSCD_CFG_PFLAG_NONE,
673 neg_ttl,
674 nscd_cfg_cache_t,
675 cache,
676 nscd_cfg_nsw_db_data_t,
677 NULL,
678 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
679 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
681 NSCD_CFG_PARAM_DESC(
682 "keep-hot-count",
683 NSCD_CFG_DATA_INTEGER,
684 NSCD_CFG_PFLAG_NONE,
685 keephot,
686 nscd_cfg_cache_t,
687 cache,
688 nscd_cfg_nsw_db_data_t,
689 NULL,
690 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
691 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
693 NSCD_CFG_PARAM_DESC(
694 "hint-size",
695 NSCD_CFG_DATA_INTEGER,
696 NSCD_CFG_PFLAG_NONE,
697 hint_size,
698 nscd_cfg_cache_t,
699 cache,
700 nscd_cfg_nsw_db_data_t,
701 NULL,
702 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
703 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
705 NSCD_CFG_PARAM_DESC(
706 "maximum-entries-allowed",
707 NSCD_CFG_DATA_INTEGER,
708 NSCD_CFG_PFLAG_NONE,
709 maxentries,
710 nscd_cfg_cache_t,
711 cache,
712 nscd_cfg_nsw_db_data_t,
713 NULL,
714 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
715 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
717 NSCD_CFG_PARAM_DESC(
718 "suggested-size",
719 NSCD_CFG_DATA_INTEGER,
720 NSCD_CFG_PFLAG_OBSOLETE,
721 suggestedsize,
722 nscd_cfg_cache_t,
723 cache,
724 nscd_cfg_nsw_db_data_t,
725 NULL,
726 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
727 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
729 NSCD_CFG_PARAM_DESC(
730 "old-data-ok",
731 NSCD_CFG_DATA_BOOLEAN,
732 NSCD_CFG_PFLAG_OBSOLETE,
733 old_data_ok,
734 nscd_cfg_cache_t,
735 cache,
736 nscd_cfg_nsw_db_data_t,
737 NULL,
738 NSCD_CFG_FUNC_NOTIFY_AS_GROUP,
739 NSCD_CFG_FUNC_VERIFY_AS_GROUP),
741 NSCD_CFG_PGROUP_DESC_NULL
745 * defaults for the global configuration
747 static nscd_cfg_global_data_t nscd_cfg_global_default = {
750 * nscd_cfg_global_log_t
754 NSCD_CFG_GROUP_INFO_GLOBAL_LOG,
755 NULL,
756 NSCD_LOG_LEVEL_NONE, /* debug_level */
757 NSCD_LOG_CACHE, /* debug_comp */
762 * nscd_cfg_global_frontend_t
766 NSCD_CFG_GROUP_INFO_GLOBAL_FRONTEND,
767 100, /* common_worker_threads */
768 100, /* cache_hit_threads */
773 * nscd_cfg_global_selfcred_t
777 NSCD_CFG_GROUP_INFO_GLOBAL_SELFCRED,
778 nscd_true, /* enable_selfcred */
779 120, /* per_user_nscd_ttl: 120 seconds */
784 * nscd_cfg_global_switch_t
788 NSCD_CFG_GROUP_INFO_GLOBAL_SWITCH,
789 nscd_true, /* enable_lookup_g */
790 nscd_false, /* enable_loopback_checking_g */
791 120, /* check_smf_state_interval_g */
796 * nscd_cfg_global_cache_t
798 NSCD_CFG_GLOBAL_CACHE_DEFAULTS
802 * defaults for the per switch database configuration
804 static nscd_cfg_nsw_db_data_t nscd_cfg_nsw_db_data_default = {
807 * nscd_cfg_frontend_t
811 NSCD_CFG_GROUP_INFO_FRONTEND,
812 50, /* worker_thread_per_nsw_db */
817 * nscd_cfg_switch_t
821 NSCD_CFG_GROUP_INFO_SWITCH,
822 "nis files", /* nsw_config_string */
823 NULL, /* nsw_config_db */
824 nscd_true, /* enable_lookup */
825 nscd_false, /* enable_loopback_checking */
826 288, /* max_nsw_state_per_db */
827 32, /* max_nsw_state_per_thread */
828 256, /* max_getent_ctx_per_db */
833 * nscd_cfg_cache_t
835 NSCD_CFG_CACHE_DEFAULTS
839 * macros for defining the database specific defaults
841 #define NSCD_CFG_DB_DEFAULT_PARAM(db, gf, pf, gt, defaddr, deflen) \
843 db, offsetof(nscd_cfg_nsw_db_data_t, gf), \
844 offsetof(gt, pf), defaddr, deflen \
847 #define NSCD_CFG_DB_DEFAULT_GROUP(db, gf, defaddr, deflen) \
849 db, offsetof(nscd_cfg_nsw_db_data_t, gf), \
850 0, defaddr, deflen \
853 #define NSCD_CFG_DB_DEFAULT_NULL \
855 NULL, 0, 0, NULL, 0 \
859 * shadow, and user_attr use the same switch policy
860 * as that of passwd. exec_attr use that of prof_attr.
862 static char *nscd_cfg_shadow_cfg_db = NSS_DBNAM_PASSWD;
863 static char *nscd_cfg_userattr_cfg_db = NSS_DBNAM_PASSWD;
864 static char *nscd_cfg_execattr_cfg_db = NSS_DBNAM_PROFATTR;
867 * default switch policy for pseudo-databases passwd_compat and
868 * and group_compa is "nis"
870 static char *nscd_cfg_def_passwd_compat = NSS_DEFCONF_PASSWD_COMPAT;
871 static char *nscd_cfg_def_group_compat = NSS_DEFCONF_GROUP_COMPAT;
873 static nscd_cfg_nsw_spc_default_t nscd_cfg_passwd_cfg_link =
874 NSCD_CFG_DB_DEFAULT_PARAM(
875 NSS_DBNAM_PASSWD,
877 nsw_config_string,
878 nscd_cfg_switch_t,
879 NULL,
880 NSCD_SIZEOF(nscd_cfg_switch_t, nsw_config_string));
882 static nscd_cfg_nsw_spc_default_t nscd_cfg_profattr_cfg_link =
883 NSCD_CFG_DB_DEFAULT_PARAM(
884 NSS_DBNAM_PROFATTR,
886 nsw_config_string,
887 nscd_cfg_switch_t,
888 NULL,
889 NSCD_SIZEOF(nscd_cfg_switch_t, nsw_config_string));
893 * switch database specific defaults
895 nscd_cfg_nsw_spc_default_t _nscd_cfg_nsw_spc_default[] = {
897 NSCD_CFG_DB_DEFAULT_PARAM(
898 NSS_DBNAM_SHADOW,
900 nsw_config_db,
901 nscd_cfg_switch_t,
902 &nscd_cfg_shadow_cfg_db,
903 sizeof (nscd_cfg_shadow_cfg_db)),
905 NSCD_CFG_DB_DEFAULT_PARAM(
906 NSS_DBNAM_USERATTR,
908 nsw_config_db,
909 nscd_cfg_switch_t,
910 &nscd_cfg_userattr_cfg_db,
911 sizeof (nscd_cfg_userattr_cfg_db)),
913 NSCD_CFG_DB_DEFAULT_PARAM(
914 NSS_DBNAM_EXECATTR,
916 nsw_config_db,
917 nscd_cfg_switch_t,
918 &nscd_cfg_execattr_cfg_db,
919 sizeof (nscd_cfg_execattr_cfg_db)),
921 NSCD_CFG_DB_DEFAULT_PARAM(
922 NSS_DBNAM_PASSWD_COMPAT,
924 nsw_config_string,
925 nscd_cfg_switch_t,
926 &nscd_cfg_def_passwd_compat,
927 sizeof (nscd_cfg_def_passwd_compat)),
929 NSCD_CFG_DB_DEFAULT_PARAM(
930 NSS_DBNAM_GROUP_COMPAT,
932 nsw_config_string,
933 nscd_cfg_switch_t,
934 &nscd_cfg_def_group_compat,
935 sizeof (nscd_cfg_def_group_compat)),
937 NSCD_CFG_DB_DEFAULT_NULL
941 * switch database specific defaults that are linked to
942 * those of other databases
944 nscd_cfg_nsw_spc_default_t _nscd_cfg_nsw_link_default[] = {
946 NSCD_CFG_DB_DEFAULT_PARAM(
947 NSS_DBNAM_SHADOW,
949 nsw_config_string,
950 nscd_cfg_switch_t,
951 &nscd_cfg_passwd_cfg_link,
954 NSCD_CFG_DB_DEFAULT_PARAM(
955 NSS_DBNAM_USERATTR,
957 nsw_config_string,
958 nscd_cfg_switch_t,
959 &nscd_cfg_passwd_cfg_link,
962 NSCD_CFG_DB_DEFAULT_PARAM(
963 NSS_DBNAM_AUDITUSER,
965 nsw_config_string,
966 nscd_cfg_switch_t,
967 &nscd_cfg_passwd_cfg_link,
970 NSCD_CFG_DB_DEFAULT_PARAM(
971 NSS_DBNAM_EXECATTR,
973 nsw_config_string,
974 nscd_cfg_switch_t,
975 &nscd_cfg_profattr_cfg_link,
978 NSCD_CFG_DB_DEFAULT_NULL
982 * macros for defining the static stats table
984 #define NSCD_CFG_SGROUP_DESC(sn, type, sflag, gi, \
985 gf, g_in_t, gsfunc_name) \
987 {-1, sn}, type, NSCD_CFG_SFLAG_GROUP | sflag, gi, \
988 0, 0, 0,\
989 NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \
990 gsfunc_name \
993 #define NSCD_CFG_STAT_DESC(sn, type, sflag, sf, s_in_t, \
994 gf, g_in_t, gsfunc_name) \
996 {-1, sn}, type, sflag, NSCD_CFG_GROUP_INFO_NULL, \
997 NSCD_SIZEOF(s_in_t, sf), offsetof(s_in_t, sf), -1, \
998 NSCD_SIZEOF(g_in_t, gf), offsetof(g_in_t, gf), -1, \
999 gsfunc_name \
1002 #define NSCD_CFG_SGROUP_DESC_NULL \
1004 {-1, NULL}, -1, NSCD_CFG_SFLAG_GROUP, NULL, \
1005 0, 0, 0, \
1006 0, 0, 0, \
1007 NULL \
1011 * the static statistics description table
1013 static nscd_cfg_stat_desc_t _nscd_cfg_stat_desc[] = {
1015 NSCD_CFG_SGROUP_DESC(
1016 "stat-group-global-log",
1017 NSCD_CFG_DATA_NONE,
1018 NSCD_CFG_SFLAG_GLOBAL,
1019 NSCD_CFG_STAT_GROUP_INFO_GLOBAL_LOG,
1020 log,
1021 nscd_cfg_stat_global_data_t,
1022 _nscd_cfg_log_get_stat),
1024 NSCD_CFG_STAT_DESC(
1025 "entries-logged",
1026 NSCD_CFG_DATA_INTEGER,
1027 NSCD_CFG_SFLAG_GLOBAL,
1028 entries_logged,
1029 nscd_cfg_stat_global_log_t,
1030 log,
1031 nscd_cfg_stat_global_data_t,
1032 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1034 NSCD_CFG_SGROUP_DESC(
1035 "stat-group-global-switch",
1036 NSCD_CFG_DATA_NONE,
1037 NSCD_CFG_SFLAG_GLOBAL,
1038 NSCD_CFG_STAT_GROUP_INFO_GLOBAL_SWITCH,
1040 nscd_cfg_stat_global_data_t,
1041 _nscd_cfg_switch_get_stat),
1043 NSCD_CFG_STAT_DESC(
1044 "global-lookup-request-received",
1045 NSCD_CFG_DATA_INTEGER,
1046 NSCD_CFG_SFLAG_GLOBAL,
1047 lookup_request_received_g,
1048 nscd_cfg_stat_global_switch_t,
1050 nscd_cfg_stat_global_data_t,
1051 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1053 NSCD_CFG_STAT_DESC(
1054 "global-lookup-request-queued",
1055 NSCD_CFG_DATA_INTEGER,
1056 NSCD_CFG_SFLAG_GLOBAL,
1057 lookup_request_queued_g,
1058 nscd_cfg_stat_global_switch_t,
1060 nscd_cfg_stat_global_data_t,
1061 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1063 NSCD_CFG_STAT_DESC(
1064 "global-lookup-request-in-progress",
1065 NSCD_CFG_DATA_INTEGER,
1066 NSCD_CFG_SFLAG_GLOBAL,
1067 lookup_request_in_progress_g,
1068 nscd_cfg_stat_global_switch_t,
1070 nscd_cfg_stat_global_data_t,
1071 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1073 NSCD_CFG_STAT_DESC(
1074 "global-lookup-request-succeeded",
1075 NSCD_CFG_DATA_INTEGER,
1076 NSCD_CFG_SFLAG_GLOBAL,
1077 lookup_request_succeeded_g,
1078 nscd_cfg_stat_global_switch_t,
1080 nscd_cfg_stat_global_data_t,
1081 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1083 NSCD_CFG_STAT_DESC(
1084 "global-lookup-request-failed",
1085 NSCD_CFG_DATA_INTEGER,
1086 NSCD_CFG_SFLAG_GLOBAL,
1087 lookup_request_failed_g,
1088 nscd_cfg_stat_global_switch_t,
1090 nscd_cfg_stat_global_data_t,
1091 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1093 NSCD_CFG_STAT_DESC(
1094 "global-loopback-nsw-db-skipped",
1095 NSCD_CFG_DATA_INTEGER,
1096 NSCD_CFG_SFLAG_GLOBAL,
1097 loopback_nsw_db_skipped_g,
1098 nscd_cfg_stat_global_switch_t,
1100 nscd_cfg_stat_global_data_t,
1101 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1103 NSCD_CFG_SGROUP_DESC(
1104 "stat-group-global-cache",
1105 NSCD_CFG_DATA_NONE,
1106 NSCD_CFG_SFLAG_GLOBAL,
1107 NSCD_CFG_STAT_GROUP_INFO_CACHE,
1108 cache,
1109 nscd_cfg_stat_global_data_t,
1110 _nscd_cfg_cache_get_stat),
1112 NSCD_CFG_STAT_DESC(
1113 "global-cache-hits-on-positive",
1114 NSCD_CFG_DATA_INTEGER,
1115 NSCD_CFG_SFLAG_GLOBAL,
1116 pos_hits,
1117 nscd_cfg_stat_cache_t,
1118 cache,
1119 nscd_cfg_stat_global_data_t,
1120 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1122 NSCD_CFG_STAT_DESC(
1123 "global-cache-hits-on-negative",
1124 NSCD_CFG_DATA_INTEGER,
1125 NSCD_CFG_SFLAG_GLOBAL,
1126 neg_hits,
1127 nscd_cfg_stat_cache_t,
1128 cache,
1129 nscd_cfg_stat_global_data_t,
1130 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1132 NSCD_CFG_STAT_DESC(
1133 "global-cache-misses-on-positive",
1134 NSCD_CFG_DATA_INTEGER,
1135 NSCD_CFG_SFLAG_GLOBAL,
1136 pos_misses,
1137 nscd_cfg_stat_cache_t,
1138 cache,
1139 nscd_cfg_stat_global_data_t,
1140 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1142 NSCD_CFG_STAT_DESC(
1143 "global-cache-misses-on-negative",
1144 NSCD_CFG_DATA_INTEGER,
1145 NSCD_CFG_SFLAG_GLOBAL,
1146 neg_misses,
1147 nscd_cfg_stat_cache_t,
1148 cache,
1149 nscd_cfg_stat_global_data_t,
1150 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1152 NSCD_CFG_STAT_DESC(
1153 "global-cache-queries-queued",
1154 NSCD_CFG_DATA_INTEGER,
1155 NSCD_CFG_SFLAG_GLOBAL,
1156 wait_count,
1157 nscd_cfg_stat_cache_t,
1158 cache,
1159 nscd_cfg_stat_global_data_t,
1160 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1162 NSCD_CFG_STAT_DESC(
1163 "global-total-cache-entries",
1164 NSCD_CFG_DATA_INTEGER,
1165 NSCD_CFG_SFLAG_GLOBAL,
1166 entries,
1167 nscd_cfg_stat_cache_t,
1168 cache,
1169 nscd_cfg_stat_global_data_t,
1170 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1172 NSCD_CFG_STAT_DESC(
1173 "global-complete-cache-invalidations",
1174 NSCD_CFG_DATA_INTEGER,
1175 NSCD_CFG_SFLAG_GLOBAL,
1176 invalidate_count,
1177 nscd_cfg_stat_cache_t,
1178 cache,
1179 nscd_cfg_stat_global_data_t,
1180 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1182 NSCD_CFG_STAT_DESC(
1183 "global-cache-queries-dropped",
1184 NSCD_CFG_DATA_INTEGER,
1185 NSCD_CFG_SFLAG_GLOBAL,
1186 drop_count,
1187 nscd_cfg_stat_cache_t,
1188 cache,
1189 nscd_cfg_stat_global_data_t,
1190 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1192 NSCD_CFG_STAT_DESC(
1193 "global-cache-hit-rate",
1194 NSCD_CFG_DATA_PERCENT,
1195 NSCD_CFG_SFLAG_GLOBAL,
1196 hitrate,
1197 nscd_cfg_stat_cache_t,
1198 cache,
1199 nscd_cfg_stat_global_data_t,
1200 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1202 /* non-global stat from this point on */
1204 NSCD_CFG_SGROUP_DESC(
1205 "stat-group-switch",
1206 NSCD_CFG_DATA_NONE,
1207 NSCD_CFG_SFLAG_GROUP,
1208 NSCD_CFG_STAT_GROUP_INFO_SWITCH,
1209 cache,
1210 nscd_cfg_stat_nsw_db_data_t,
1211 _nscd_cfg_switch_get_stat),
1213 NSCD_CFG_STAT_DESC(
1214 "lookup-request-received",
1215 NSCD_CFG_DATA_INTEGER,
1216 NSCD_CFG_SFLAG_NONE,
1217 lookup_request_received,
1218 nscd_cfg_stat_switch_t,
1220 nscd_cfg_stat_nsw_db_data_t,
1221 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1223 NSCD_CFG_STAT_DESC(
1224 "lookup-request-queued",
1225 NSCD_CFG_DATA_INTEGER,
1226 NSCD_CFG_SFLAG_NONE,
1227 lookup_request_queued,
1228 nscd_cfg_stat_switch_t,
1230 nscd_cfg_stat_nsw_db_data_t,
1231 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1233 NSCD_CFG_STAT_DESC(
1234 "lookup-request-in-progress",
1235 NSCD_CFG_DATA_INTEGER,
1236 NSCD_CFG_SFLAG_NONE,
1237 lookup_request_in_progress,
1238 nscd_cfg_stat_switch_t,
1240 nscd_cfg_stat_nsw_db_data_t,
1241 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1243 NSCD_CFG_STAT_DESC(
1244 "lookup-request-succeeded",
1245 NSCD_CFG_DATA_INTEGER,
1246 NSCD_CFG_SFLAG_NONE,
1247 lookup_request_succeeded,
1248 nscd_cfg_stat_switch_t,
1250 nscd_cfg_stat_nsw_db_data_t,
1251 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1253 NSCD_CFG_STAT_DESC(
1254 "lookup-request-failed",
1255 NSCD_CFG_DATA_INTEGER,
1256 NSCD_CFG_SFLAG_NONE,
1257 lookup_request_failed,
1258 nscd_cfg_stat_switch_t,
1260 nscd_cfg_stat_nsw_db_data_t,
1261 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1263 NSCD_CFG_STAT_DESC(
1264 "loopback-nsw-db-skipped",
1265 NSCD_CFG_DATA_INTEGER,
1266 NSCD_CFG_SFLAG_NONE,
1267 loopback_nsw_db_skipped,
1268 nscd_cfg_stat_switch_t,
1270 nscd_cfg_stat_nsw_db_data_t,
1271 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1273 NSCD_CFG_SGROUP_DESC(
1274 "stat-group-cache",
1275 NSCD_CFG_DATA_NONE,
1276 NSCD_CFG_SFLAG_GROUP,
1277 NSCD_CFG_STAT_GROUP_INFO_CACHE,
1278 cache,
1279 nscd_cfg_stat_nsw_db_data_t,
1280 _nscd_cfg_cache_get_stat),
1282 NSCD_CFG_STAT_DESC(
1283 "cache-hits-on-positive",
1284 NSCD_CFG_DATA_INTEGER,
1285 NSCD_CFG_SFLAG_NONE,
1286 pos_hits,
1287 nscd_cfg_stat_cache_t,
1288 cache,
1289 nscd_cfg_stat_nsw_db_data_t,
1290 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1292 NSCD_CFG_STAT_DESC(
1293 "cache-hits-on-negative",
1294 NSCD_CFG_DATA_INTEGER,
1295 NSCD_CFG_SFLAG_NONE,
1296 neg_hits,
1297 nscd_cfg_stat_cache_t,
1298 cache,
1299 nscd_cfg_stat_nsw_db_data_t,
1300 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1302 NSCD_CFG_STAT_DESC(
1303 "cache-misses-on-positive",
1304 NSCD_CFG_DATA_INTEGER,
1305 NSCD_CFG_SFLAG_NONE,
1306 pos_misses,
1307 nscd_cfg_stat_cache_t,
1308 cache,
1309 nscd_cfg_stat_nsw_db_data_t,
1310 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1312 NSCD_CFG_STAT_DESC(
1313 "cache-misses-on-negative",
1314 NSCD_CFG_DATA_INTEGER,
1315 NSCD_CFG_SFLAG_NONE,
1316 neg_misses,
1317 nscd_cfg_stat_cache_t,
1318 cache,
1319 nscd_cfg_stat_nsw_db_data_t,
1320 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1322 NSCD_CFG_STAT_DESC(
1323 "cache-queries-queued",
1324 NSCD_CFG_DATA_INTEGER,
1325 NSCD_CFG_SFLAG_NONE,
1326 wait_count,
1327 nscd_cfg_stat_cache_t,
1328 cache,
1329 nscd_cfg_stat_nsw_db_data_t,
1330 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1332 NSCD_CFG_STAT_DESC(
1333 "total-cache-entries",
1334 NSCD_CFG_DATA_INTEGER,
1335 NSCD_CFG_SFLAG_NONE,
1336 entries,
1337 nscd_cfg_stat_cache_t,
1338 cache,
1339 nscd_cfg_stat_nsw_db_data_t,
1340 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1342 NSCD_CFG_STAT_DESC(
1343 "complete-cache-invalidations",
1344 NSCD_CFG_DATA_INTEGER,
1345 NSCD_CFG_SFLAG_NONE,
1346 invalidate_count,
1347 nscd_cfg_stat_cache_t,
1348 cache,
1349 nscd_cfg_stat_nsw_db_data_t,
1350 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1352 NSCD_CFG_STAT_DESC(
1353 "cache-hit-rate",
1354 NSCD_CFG_DATA_PERCENT,
1355 NSCD_CFG_SFLAG_NONE,
1356 hitrate,
1357 nscd_cfg_stat_cache_t,
1358 cache,
1359 nscd_cfg_stat_nsw_db_data_t,
1360 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1362 NSCD_CFG_STAT_DESC(
1363 "cache-queries-dropped",
1364 NSCD_CFG_DATA_PERCENT,
1365 NSCD_CFG_SFLAG_NONE,
1366 drop_count,
1367 nscd_cfg_stat_cache_t,
1368 cache,
1369 nscd_cfg_stat_nsw_db_data_t,
1370 NSCD_CFG_FUNC_GET_STAT_AS_GROUP),
1373 NSCD_CFG_SGROUP_DESC_NULL
1376 /* number of entries in the static tables */
1378 int _nscd_cfg_num_nsw_src =
1379 (sizeof (_nscd_cfg_nsw_src) /
1380 sizeof (_nscd_cfg_nsw_src[0]) - 1);
1382 int _nscd_cfg_num_smf_services =
1383 (sizeof (_nscd_cfg_smf_services) /
1384 sizeof (_nscd_cfg_smf_services[0]) - 1);
1386 /* number of supported nsw databases (including pseudo ones) */
1387 int _nscd_cfg_num_nsw_db_all =
1388 (sizeof (_nscd_cfg_nsw_db) /
1389 sizeof (_nscd_cfg_nsw_db[0]) - 1);
1391 /* number of supported nsw databases (not including pseudo ones) */
1392 int _nscd_cfg_num_nsw_db =
1393 (sizeof (_nscd_cfg_nsw_db) /
1394 sizeof (_nscd_cfg_nsw_db[0]) - 1) -
1395 NSS_DBNAM_COMPAT_NUM_DB;
1397 static int _nscd_cfg_num_param =
1398 (sizeof (_nscd_cfg_param_desc) /
1399 sizeof (_nscd_cfg_param_desc[0]) - 1);
1401 static int _nscd_cfg_num_stat =
1402 (sizeof (_nscd_cfg_stat_desc) /
1403 sizeof (_nscd_cfg_stat_desc[0]) - 1);
1405 int _nscd_cfg_num_nsw_default =
1406 (sizeof (_nscd_cfg_nsw_spc_default) /
1407 sizeof (_nscd_cfg_nsw_spc_default[0]) - 1);
1409 int _nscd_cfg_num_link_default =
1410 (sizeof (_nscd_cfg_nsw_link_default) /
1411 sizeof (_nscd_cfg_nsw_link_default[0]) - 1);
1413 #ifdef __cplusplus
1415 #endif
1417 #endif /* _NSCD_CFGDEF_H */