Lines Matching refs:oidp
124 static int sysctl_remove_oid_locked(struct sysctl_oid *oidp, int del,
133 struct sysctl_oid *oidp; in sysctl_find_oidname() local
136 SYSCTL_FOREACH(oidp, list) { in sysctl_find_oidname()
137 if (strcmp(oidp->oid_name, name) == 0) { in sysctl_find_oidname()
138 return (oidp); in sysctl_find_oidname()
148 struct sysctl_oid *oidp; in sysctl_find_oidnamelen() local
151 SYSCTL_FOREACH(oidp, list) { in sysctl_find_oidnamelen()
152 if (strncmp(oidp->oid_name, name, len) == 0 && in sysctl_find_oidnamelen()
153 oidp->oid_name[len] == '\0') in sysctl_find_oidnamelen()
154 return (oidp); in sysctl_find_oidnamelen()
221 sysctl_load_tunable_by_oid_locked(struct sysctl_oid *oidp) in sysctl_load_tunable_by_oid_locked() argument
235 for (curr = oidp; curr != NULL; curr = SYSCTL_PARENT(curr)) { in sysctl_load_tunable_by_oid_locked()
238 if (curr != oidp) in sysctl_load_tunable_by_oid_locked()
245 if (curr != oidp) in sysctl_load_tunable_by_oid_locked()
256 switch (oidp->oid_kind & CTLTYPE) { in sysctl_load_tunable_by_oid_locked()
351 error = sysctl_root_handler_locked(oidp, oidp->oid_arg1, in sysctl_load_tunable_by_oid_locked()
352 oidp->oid_arg2, &req, NULL); in sysctl_load_tunable_by_oid_locked()
436 sysctl_warn_reuse(__func__, oidp); in sysctl_reuse_test()
446 sysctl_register_oid(struct sysctl_oid *oidp) in sysctl_register_oid() argument
448 struct sysctl_oid_list *parent = oidp->oid_parent; in sysctl_register_oid()
458 p = sysctl_find_oidname(oidp->oid_name, parent); in sysctl_register_oid()
469 oid_number = oidp->oid_number; in sysctl_register_oid()
517 if (oidp->oid_number >= 0 && oidp->oid_number < CTL_AUTO_START && in sysctl_register_oid()
520 oidp->oid_number, oidp->oid_name); in sysctl_register_oid()
523 oidp->oid_number = oid_number; in sysctl_register_oid()
524 RB_INSERT(sysctl_oid_list, parent, oidp); in sysctl_register_oid()
526 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE && in sysctl_register_oid()
527 (oidp->oid_kind & CTLFLAG_TUN) != 0 && in sysctl_register_oid()
528 (oidp->oid_kind & CTLFLAG_NOFETCH) == 0) { in sysctl_register_oid()
534 if ((oidp->oid_kind & CTLFLAG_VNET) == 0) in sysctl_register_oid()
536 oidp->oid_kind |= CTLFLAG_NOFETCH; in sysctl_register_oid()
538 sysctl_load_tunable_by_oid_locked(oidp); in sysctl_register_oid()
543 sysctl_register_disabled_oid(struct sysctl_oid *oidp) in sysctl_register_disabled_oid() argument
551 KASSERT((oidp->oid_kind & CTLFLAG_DORMANT) == 0, in sysctl_register_disabled_oid()
553 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE) in sysctl_register_disabled_oid()
554 oidp->oid_kind |= CTLFLAG_DORMANT; in sysctl_register_disabled_oid()
555 sysctl_register_oid(oidp); in sysctl_register_disabled_oid()
559 sysctl_enable_oid(struct sysctl_oid *oidp) in sysctl_enable_oid() argument
563 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_NODE) { in sysctl_enable_oid()
564 KASSERT((oidp->oid_kind & CTLFLAG_DORMANT) == 0, in sysctl_enable_oid()
568 KASSERT((oidp->oid_kind & CTLFLAG_DORMANT) != 0, in sysctl_enable_oid()
570 oidp->oid_kind &= ~CTLFLAG_DORMANT; in sysctl_enable_oid()
574 sysctl_unregister_oid(struct sysctl_oid *oidp) in sysctl_unregister_oid() argument
579 if (oidp->oid_number == OID_AUTO) { in sysctl_unregister_oid()
583 if (RB_REMOVE(sysctl_oid_list, oidp->oid_parent, oidp)) in sysctl_unregister_oid()
594 __func__, error, oidp->oid_name); in sysctl_unregister_oid()
668 sysctl_ctx_entry_add(struct sysctl_ctx_list *clist, struct sysctl_oid *oidp) in sysctl_ctx_entry_add() argument
673 if (clist == NULL || oidp == NULL) in sysctl_ctx_entry_add()
676 e->entry = oidp; in sysctl_ctx_entry_add()
683 sysctl_ctx_entry_find(struct sysctl_ctx_list *clist, struct sysctl_oid *oidp) in sysctl_ctx_entry_find() argument
688 if (clist == NULL || oidp == NULL) in sysctl_ctx_entry_find()
691 if (e->entry == oidp) in sysctl_ctx_entry_find()
703 sysctl_ctx_entry_del(struct sysctl_ctx_list *clist, struct sysctl_oid *oidp) in sysctl_ctx_entry_del() argument
707 if (clist == NULL || oidp == NULL) in sysctl_ctx_entry_del()
710 e = sysctl_ctx_entry_find(clist, oidp); in sysctl_ctx_entry_del()
729 sysctl_remove_oid(struct sysctl_oid *oidp, int del, int recurse) in sysctl_remove_oid() argument
734 error = sysctl_remove_oid_locked(oidp, del, recurse); in sysctl_remove_oid()
797 sysctl_remove_oid_locked(struct sysctl_oid *oidp, int del, int recurse) in sysctl_remove_oid_locked() argument
803 if (oidp == NULL) in sysctl_remove_oid_locked()
805 if ((oidp->oid_kind & CTLFLAG_DYN) == 0) { in sysctl_remove_oid_locked()
807 oidp->oid_name); in sysctl_remove_oid_locked()
817 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_NODE) { in sysctl_remove_oid_locked()
818 if (oidp->oid_refcnt == 1) { in sysctl_remove_oid_locked()
819 for(p = RB_MIN(sysctl_oid_list, &oidp->oid_children); in sysctl_remove_oid_locked()
824 oidp->oid_name, p->oid_name); in sysctl_remove_oid_locked()
828 &oidp->oid_children, p); in sysctl_remove_oid_locked()
836 if (oidp->oid_refcnt > 1 ) { in sysctl_remove_oid_locked()
837 oidp->oid_refcnt--; in sysctl_remove_oid_locked()
839 if (oidp->oid_refcnt == 0) { in sysctl_remove_oid_locked()
841 oidp->oid_refcnt, oidp->oid_name); in sysctl_remove_oid_locked()
844 sysctl_unregister_oid(oidp); in sysctl_remove_oid_locked()
852 while (oidp->oid_running > 0) { in sysctl_remove_oid_locked()
853 oidp->oid_kind |= CTLFLAG_DYING; in sysctl_remove_oid_locked()
854 SYSCTL_SLEEP(&oidp->oid_running, "oidrm", 0); in sysctl_remove_oid_locked()
856 if (oidp->oid_descr) in sysctl_remove_oid_locked()
857 free(__DECONST(char *, oidp->oid_descr), in sysctl_remove_oid_locked()
859 if (oidp->oid_label) in sysctl_remove_oid_locked()
860 free(__DECONST(char *, oidp->oid_label), in sysctl_remove_oid_locked()
862 free(__DECONST(char *, oidp->oid_name), M_SYSCTLOID); in sysctl_remove_oid_locked()
863 free(oidp, M_SYSCTLOID); in sysctl_remove_oid_locked()
878 struct sysctl_oid *oidp; in sysctl_add_oid() local
887 oidp = sysctl_find_oidname(escaped, parent); in sysctl_add_oid()
888 if (oidp != NULL) { in sysctl_add_oid()
890 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_NODE) { in sysctl_add_oid()
891 oidp->oid_refcnt++; in sysctl_add_oid()
894 sysctl_ctx_entry_add(clist, oidp); in sysctl_add_oid()
896 return (oidp); in sysctl_add_oid()
898 sysctl_warn_reuse(__func__, oidp); in sysctl_add_oid()
903 oidp = malloc(sizeof(struct sysctl_oid), M_SYSCTLOID, M_WAITOK|M_ZERO); in sysctl_add_oid()
904 oidp->oid_parent = parent; in sysctl_add_oid()
905 RB_INIT(&oidp->oid_children); in sysctl_add_oid()
906 oidp->oid_number = number; in sysctl_add_oid()
907 oidp->oid_refcnt = 1; in sysctl_add_oid()
908 oidp->oid_name = escaped; in sysctl_add_oid()
909 oidp->oid_handler = handler; in sysctl_add_oid()
910 oidp->oid_kind = CTLFLAG_DYN | kind; in sysctl_add_oid()
911 oidp->oid_arg1 = arg1; in sysctl_add_oid()
912 oidp->oid_arg2 = arg2; in sysctl_add_oid()
913 oidp->oid_fmt = fmt; in sysctl_add_oid()
915 oidp->oid_descr = strdup(descr, M_SYSCTLOID); in sysctl_add_oid()
917 oidp->oid_label = strdup(label, M_SYSCTLOID); in sysctl_add_oid()
920 sysctl_ctx_entry_add(clist, oidp); in sysctl_add_oid()
922 sysctl_register_oid(oidp); in sysctl_add_oid()
924 return (oidp); in sysctl_add_oid()
931 sysctl_rename_oid(struct sysctl_oid *oidp, const char *name) in sysctl_rename_oid() argument
938 oldname = __DECONST(char *, oidp->oid_name); in sysctl_rename_oid()
939 oidp->oid_name = newname; in sysctl_rename_oid()
950 struct sysctl_oid *oidp; in sysctl_move_oid() local
957 oidp = sysctl_find_oidname(oid->oid_name, parent); in sysctl_move_oid()
958 if (oidp != NULL) { in sysctl_move_oid()
978 struct sysctl_oid **oidp; in sysctl_register_all() local
984 SET_FOREACH(oidp, sysctl_set) in sysctl_register_all()
985 sysctl_register_oid(*oidp); in sysctl_register_all()
994 struct sysctl_oid *oidp; in sysctl_setenv_vnet() local
999 error = name2oid(name, oid, &nlen, &oidp); in sysctl_setenv_vnet()
1003 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE && in sysctl_setenv_vnet()
1004 (oidp->oid_kind & CTLFLAG_VNET) != 0 && in sysctl_setenv_vnet()
1005 (oidp->oid_kind & CTLFLAG_TUN) != 0 && in sysctl_setenv_vnet()
1006 (oidp->oid_kind & CTLFLAG_NOFETCH) == 0) { in sysctl_setenv_vnet()
1008 sysctl_load_tunable_by_oid_locked(oidp); in sysctl_setenv_vnet()
1017 struct sysctl_oid *oidp; in sysctl_unsetenv_vnet() local
1031 error = name2oid(name, oid, &nlen, &oidp); in sysctl_unsetenv_vnet()
1035 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE && in sysctl_unsetenv_vnet()
1036 (oidp->oid_kind & CTLFLAG_VNET) != 0 && in sysctl_unsetenv_vnet()
1037 (oidp->oid_kind & CTLFLAG_TUN) != 0 && in sysctl_unsetenv_vnet()
1038 (oidp->oid_kind & CTLFLAG_NOFETCH) == 0) { in sysctl_unsetenv_vnet()
1041 switch (oidp->oid_kind & CTLTYPE) { in sysctl_unsetenv_vnet()
1067 MPASS(oidp->oid_arg2 > 0); in sysctl_unsetenv_vnet()
1068 size = oidp->oid_arg2; in sysctl_unsetenv_vnet()
1073 vnet_restore_init(oidp->oid_arg1, size); in sysctl_unsetenv_vnet()
1119 struct sysctl_oid *oidp; in sysctl_sysctl_debug_dump_node() local
1122 SYSCTL_FOREACH(oidp, l) { in sysctl_sysctl_debug_dump_node()
1126 printf("%d %s ", oidp->oid_number, oidp->oid_name); in sysctl_sysctl_debug_dump_node()
1129 oidp->oid_kind & CTLFLAG_RD ? 'R':' ', in sysctl_sysctl_debug_dump_node()
1130 oidp->oid_kind & CTLFLAG_WR ? 'W':' '); in sysctl_sysctl_debug_dump_node()
1132 if (oidp->oid_handler) in sysctl_sysctl_debug_dump_node()
1135 switch (oidp->oid_kind & CTLTYPE) { in sysctl_sysctl_debug_dump_node()
1138 if (!oidp->oid_handler) { in sysctl_sysctl_debug_dump_node()
1140 SYSCTL_CHILDREN(oidp), i + 2); in sysctl_sysctl_debug_dump_node()
1256 sysctl_sysctl_next_node(struct sysctl_oid *oidp, int *name, unsigned int namelen, in sysctl_sysctl_next_node() argument
1260 if ((oidp->oid_kind & CTLFLAG_DORMANT) != 0) in sysctl_sysctl_next_node()
1263 if (honor_skip && (oidp->oid_kind & CTLFLAG_SKIP) != 0) in sysctl_sysctl_next_node()
1278 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE) in sysctl_sysctl_next_node()
1281 if (oidp->oid_handler) in sysctl_sysctl_next_node()
1301 if (oidp->oid_number < *name) in sysctl_sysctl_next_node()
1303 if (oidp->oid_number > *name) { in sysctl_sysctl_next_node()
1314 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE) in sysctl_sysctl_next_node()
1317 if (oidp->oid_handler) in sysctl_sysctl_next_node()
1323 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE) in sysctl_sysctl_next_node()
1325 if (oidp->oid_handler) in sysctl_sysctl_next_node()
1340 struct sysctl_oid *oidp = NULL, key; in sysctl_sysctl_next_action() local
1351 oidp = RB_FIND(sysctl_oid_list, lsp, &key); in sysctl_sysctl_next_action()
1353 if (!oidp) in sysctl_sysctl_next_action()
1354 oidp = RB_MIN(sysctl_oid_list, lsp); in sysctl_sysctl_next_action()
1355 for(; oidp != NULL; oidp = RB_NEXT(sysctl_oid_list, lsp, oidp)) { in sysctl_sysctl_next_action()
1356 action = sysctl_sysctl_next_node(oidp, name, namelen, in sysctl_sysctl_next_action()
1366 next_lsp = SYSCTL_CHILDREN(oidp); in sysctl_sysctl_next_action()
1392 *next = oidp->oid_number; in sysctl_sysctl_next_action()
1414 oidp->oid_number == CTL_SYSCTL_NEXT); in sysctl_sysctl_next()
1435 struct sysctl_oid *oidp; in name2oid() local
1443 oidp = sysctl_find_oidnamelen(name, n - name, lsp); in name2oid()
1444 if (oidp == NULL) in name2oid()
1446 *oid++ = oidp->oid_number; in name2oid()
1454 *oidpp = oidp; in name2oid()
1458 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE) in name2oid()
1461 if (oidp->oid_handler) in name2oid()
1464 lsp = SYSCTL_CHILDREN(oidp); in name2oid()
1787 error = sysctl_handle_int(oidp, &s, 0, req); in sysctl_msec_to_ticks()
1898 if ((oidp->oid_kind & (CTLFLAG_WR | CTLFLAG_TUN)) == 0 || in sysctl_handle_string()
2014 error = sysctl_handle_64(oidp, &usec, 0, req); in sysctl_usec_to_sbintime()
2034 error = sysctl_handle_64(oidp, &msec, 0, req); in sysctl_msec_to_sbintime()
2056 error = sysctl_handle_int(oidp, &secs, 0, req); in sysctl_sec_to_timeval()
2829 db_sysctl(struct sysctl_oid *oidp, int *name, u_int namelen, in db_sysctl() argument
2850 g_ddb_oid = oidp; in db_sysctl()
2875 struct sysctl_oid *oidp; in db_show_oid_name() local
2883 error = sysctl_find_oid(qoid, nlen + 2, &oidp, NULL, NULL); in db_show_oid_name()
2887 error = db_sysctl(oidp, qoid, nlen + 2, NULL, NULL, NULL, 0); in db_show_oid_name()
2896 db_oid_safe(const struct sysctl_oid *oidp) in db_oid_safe() argument
2899 if (oidp->oid_handler == db_safe_handlers[i]) in db_oid_safe()
2911 db_show_oid(struct sysctl_oid *oidp, int *oid, size_t nlen, int flags) in db_show_oid() argument
2921 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_OPAQUE && in db_show_oid()
2936 if ((flags & DB_SYSCTL_SAFE_ONLY) && !db_oid_safe(oidp)) { in db_show_oid()
2944 error = db_sysctl(oidp, oid, nlen, in db_show_oid()
2951 error = db_sysctl(oidp, oid, nlen, in db_show_oid()
2966 struct sysctl_oid *oidp; in db_show_sysctl_all() local
3001 error = sysctl_find_oid(next, nlen, &oidp, NULL, NULL); in db_show_sysctl_all()
3005 (void)db_show_oid(oidp, next, nlen, flags | DB_SYSCTL_SAFE_ONLY); in db_show_sysctl_all()
3020 struct sysctl_oid *oidp; in db_sysctlbyname() local
3024 error = name2oid(name, oid, &nlen, &oidp); in db_sysctlbyname()
3029 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_NODE) { in db_sysctlbyname()
3032 error = db_show_oid(oidp, oid, nlen, flags); in db_sysctlbyname()