Lines Matching refs:oidp
126 static int sysctl_remove_oid_locked(struct sysctl_oid *oidp, int del,
134 struct sysctl_oid *oidp; in sysctl_find_oidname() local
137 SYSCTL_FOREACH(oidp, list) { in sysctl_find_oidname()
138 if (strcmp(oidp->oid_name, name) == 0) { in sysctl_find_oidname()
139 return (oidp); in sysctl_find_oidname()
207 sysctl_load_tunable_by_oid_locked(struct sysctl_oid *oidp) in sysctl_load_tunable_by_oid_locked() argument
221 for (curr = oidp; curr != NULL; curr = SYSCTL_PARENT(curr)) { in sysctl_load_tunable_by_oid_locked()
224 if (curr != oidp) in sysctl_load_tunable_by_oid_locked()
231 if (curr != oidp) in sysctl_load_tunable_by_oid_locked()
242 switch (oidp->oid_kind & CTLTYPE) { in sysctl_load_tunable_by_oid_locked()
337 error = sysctl_root_handler_locked(oidp, oidp->oid_arg1, in sysctl_load_tunable_by_oid_locked()
338 oidp->oid_arg2, &req, NULL); in sysctl_load_tunable_by_oid_locked()
422 sysctl_warn_reuse(__func__, oidp); in sysctl_reuse_test()
432 sysctl_register_oid(struct sysctl_oid *oidp) in sysctl_register_oid() argument
434 struct sysctl_oid_list *parent = oidp->oid_parent; in sysctl_register_oid()
444 p = sysctl_find_oidname(oidp->oid_name, parent); in sysctl_register_oid()
455 oid_number = oidp->oid_number; in sysctl_register_oid()
503 if (oidp->oid_number >= 0 && oidp->oid_number < CTL_AUTO_START && in sysctl_register_oid()
506 oidp->oid_number, oidp->oid_name); in sysctl_register_oid()
509 oidp->oid_number = oid_number; in sysctl_register_oid()
510 RB_INSERT(sysctl_oid_list, parent, oidp); in sysctl_register_oid()
512 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE && in sysctl_register_oid()
514 (oidp->oid_kind & CTLFLAG_VNET) == 0 && in sysctl_register_oid()
516 (oidp->oid_kind & CTLFLAG_TUN) != 0 && in sysctl_register_oid()
517 (oidp->oid_kind & CTLFLAG_NOFETCH) == 0) { in sysctl_register_oid()
519 oidp->oid_kind |= CTLFLAG_NOFETCH; in sysctl_register_oid()
521 sysctl_load_tunable_by_oid_locked(oidp); in sysctl_register_oid()
526 sysctl_register_disabled_oid(struct sysctl_oid *oidp) in sysctl_register_disabled_oid() argument
534 KASSERT((oidp->oid_kind & CTLFLAG_DORMANT) == 0, in sysctl_register_disabled_oid()
536 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE) in sysctl_register_disabled_oid()
537 oidp->oid_kind |= CTLFLAG_DORMANT; in sysctl_register_disabled_oid()
538 sysctl_register_oid(oidp); in sysctl_register_disabled_oid()
542 sysctl_enable_oid(struct sysctl_oid *oidp) in sysctl_enable_oid() argument
546 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_NODE) { in sysctl_enable_oid()
547 KASSERT((oidp->oid_kind & CTLFLAG_DORMANT) == 0, in sysctl_enable_oid()
551 KASSERT((oidp->oid_kind & CTLFLAG_DORMANT) != 0, in sysctl_enable_oid()
553 oidp->oid_kind &= ~CTLFLAG_DORMANT; in sysctl_enable_oid()
557 sysctl_unregister_oid(struct sysctl_oid *oidp) in sysctl_unregister_oid() argument
562 if (oidp->oid_number == OID_AUTO) { in sysctl_unregister_oid()
566 if (RB_REMOVE(sysctl_oid_list, oidp->oid_parent, oidp)) in sysctl_unregister_oid()
577 __func__, error, oidp->oid_name); in sysctl_unregister_oid()
651 sysctl_ctx_entry_add(struct sysctl_ctx_list *clist, struct sysctl_oid *oidp) in sysctl_ctx_entry_add() argument
656 if (clist == NULL || oidp == NULL) in sysctl_ctx_entry_add()
659 e->entry = oidp; in sysctl_ctx_entry_add()
666 sysctl_ctx_entry_find(struct sysctl_ctx_list *clist, struct sysctl_oid *oidp) in sysctl_ctx_entry_find() argument
671 if (clist == NULL || oidp == NULL) in sysctl_ctx_entry_find()
674 if (e->entry == oidp) in sysctl_ctx_entry_find()
686 sysctl_ctx_entry_del(struct sysctl_ctx_list *clist, struct sysctl_oid *oidp) in sysctl_ctx_entry_del() argument
690 if (clist == NULL || oidp == NULL) in sysctl_ctx_entry_del()
693 e = sysctl_ctx_entry_find(clist, oidp); in sysctl_ctx_entry_del()
712 sysctl_remove_oid(struct sysctl_oid *oidp, int del, int recurse) in sysctl_remove_oid() argument
717 error = sysctl_remove_oid_locked(oidp, del, recurse); in sysctl_remove_oid()
780 sysctl_remove_oid_locked(struct sysctl_oid *oidp, int del, int recurse) in sysctl_remove_oid_locked() argument
786 if (oidp == NULL) in sysctl_remove_oid_locked()
788 if ((oidp->oid_kind & CTLFLAG_DYN) == 0) { in sysctl_remove_oid_locked()
790 oidp->oid_name); in sysctl_remove_oid_locked()
800 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_NODE) { in sysctl_remove_oid_locked()
801 if (oidp->oid_refcnt == 1) { in sysctl_remove_oid_locked()
802 for(p = RB_MIN(sysctl_oid_list, &oidp->oid_children); in sysctl_remove_oid_locked()
807 oidp->oid_name, p->oid_name); in sysctl_remove_oid_locked()
811 &oidp->oid_children, p); in sysctl_remove_oid_locked()
819 if (oidp->oid_refcnt > 1 ) { in sysctl_remove_oid_locked()
820 oidp->oid_refcnt--; in sysctl_remove_oid_locked()
822 if (oidp->oid_refcnt == 0) { in sysctl_remove_oid_locked()
824 oidp->oid_refcnt, oidp->oid_name); in sysctl_remove_oid_locked()
827 sysctl_unregister_oid(oidp); in sysctl_remove_oid_locked()
835 while (oidp->oid_running > 0) { in sysctl_remove_oid_locked()
836 oidp->oid_kind |= CTLFLAG_DYING; in sysctl_remove_oid_locked()
837 SYSCTL_SLEEP(&oidp->oid_running, "oidrm", 0); in sysctl_remove_oid_locked()
839 if (oidp->oid_descr) in sysctl_remove_oid_locked()
840 free(__DECONST(char *, oidp->oid_descr), in sysctl_remove_oid_locked()
842 if (oidp->oid_label) in sysctl_remove_oid_locked()
843 free(__DECONST(char *, oidp->oid_label), in sysctl_remove_oid_locked()
845 free(__DECONST(char *, oidp->oid_name), M_SYSCTLOID); in sysctl_remove_oid_locked()
846 free(oidp, M_SYSCTLOID); in sysctl_remove_oid_locked()
861 struct sysctl_oid *oidp; in sysctl_add_oid() local
870 oidp = sysctl_find_oidname(escaped, parent); in sysctl_add_oid()
871 if (oidp != NULL) { in sysctl_add_oid()
873 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_NODE) { in sysctl_add_oid()
874 oidp->oid_refcnt++; in sysctl_add_oid()
877 sysctl_ctx_entry_add(clist, oidp); in sysctl_add_oid()
879 return (oidp); in sysctl_add_oid()
881 sysctl_warn_reuse(__func__, oidp); in sysctl_add_oid()
886 oidp = malloc(sizeof(struct sysctl_oid), M_SYSCTLOID, M_WAITOK|M_ZERO); in sysctl_add_oid()
887 oidp->oid_parent = parent; in sysctl_add_oid()
888 RB_INIT(&oidp->oid_children); in sysctl_add_oid()
889 oidp->oid_number = number; in sysctl_add_oid()
890 oidp->oid_refcnt = 1; in sysctl_add_oid()
891 oidp->oid_name = escaped; in sysctl_add_oid()
892 oidp->oid_handler = handler; in sysctl_add_oid()
893 oidp->oid_kind = CTLFLAG_DYN | kind; in sysctl_add_oid()
894 oidp->oid_arg1 = arg1; in sysctl_add_oid()
895 oidp->oid_arg2 = arg2; in sysctl_add_oid()
896 oidp->oid_fmt = fmt; in sysctl_add_oid()
898 oidp->oid_descr = strdup(descr, M_SYSCTLOID); in sysctl_add_oid()
900 oidp->oid_label = strdup(label, M_SYSCTLOID); in sysctl_add_oid()
903 sysctl_ctx_entry_add(clist, oidp); in sysctl_add_oid()
905 sysctl_register_oid(oidp); in sysctl_add_oid()
907 return (oidp); in sysctl_add_oid()
914 sysctl_rename_oid(struct sysctl_oid *oidp, const char *name) in sysctl_rename_oid() argument
921 oldname = __DECONST(char *, oidp->oid_name); in sysctl_rename_oid()
922 oidp->oid_name = newname; in sysctl_rename_oid()
933 struct sysctl_oid *oidp; in sysctl_move_oid() local
940 oidp = sysctl_find_oidname(oid->oid_name, parent); in sysctl_move_oid()
941 if (oidp != NULL) { in sysctl_move_oid()
961 struct sysctl_oid **oidp; in sysctl_register_all() local
967 SET_FOREACH(oidp, sysctl_set) in sysctl_register_all()
968 sysctl_register_oid(*oidp); in sysctl_register_all()
1006 struct sysctl_oid *oidp; in sysctl_sysctl_debug_dump_node() local
1009 SYSCTL_FOREACH(oidp, l) { in sysctl_sysctl_debug_dump_node()
1013 printf("%d %s ", oidp->oid_number, oidp->oid_name); in sysctl_sysctl_debug_dump_node()
1016 oidp->oid_kind & CTLFLAG_RD ? 'R':' ', in sysctl_sysctl_debug_dump_node()
1017 oidp->oid_kind & CTLFLAG_WR ? 'W':' '); in sysctl_sysctl_debug_dump_node()
1019 if (oidp->oid_handler) in sysctl_sysctl_debug_dump_node()
1022 switch (oidp->oid_kind & CTLTYPE) { in sysctl_sysctl_debug_dump_node()
1025 if (!oidp->oid_handler) { in sysctl_sysctl_debug_dump_node()
1027 SYSCTL_CHILDREN(oidp), i + 2); in sysctl_sysctl_debug_dump_node()
1143 sysctl_sysctl_next_node(struct sysctl_oid *oidp, int *name, unsigned int namelen, in sysctl_sysctl_next_node() argument
1147 if ((oidp->oid_kind & CTLFLAG_DORMANT) != 0) in sysctl_sysctl_next_node()
1150 if (honor_skip && (oidp->oid_kind & CTLFLAG_SKIP) != 0) in sysctl_sysctl_next_node()
1165 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE) in sysctl_sysctl_next_node()
1168 if (oidp->oid_handler) in sysctl_sysctl_next_node()
1188 if (oidp->oid_number < *name) in sysctl_sysctl_next_node()
1190 if (oidp->oid_number > *name) { in sysctl_sysctl_next_node()
1201 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE) in sysctl_sysctl_next_node()
1204 if (oidp->oid_handler) in sysctl_sysctl_next_node()
1210 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE) in sysctl_sysctl_next_node()
1212 if (oidp->oid_handler) in sysctl_sysctl_next_node()
1227 struct sysctl_oid *oidp = NULL, key; in sysctl_sysctl_next_action() local
1238 oidp = RB_FIND(sysctl_oid_list, lsp, &key); in sysctl_sysctl_next_action()
1240 if (!oidp) in sysctl_sysctl_next_action()
1241 oidp = RB_MIN(sysctl_oid_list, lsp); in sysctl_sysctl_next_action()
1242 for(; oidp != NULL; oidp = RB_NEXT(sysctl_oid_list, lsp, oidp)) { in sysctl_sysctl_next_action()
1243 action = sysctl_sysctl_next_node(oidp, name, namelen, in sysctl_sysctl_next_action()
1253 next_lsp = SYSCTL_CHILDREN(oidp); in sysctl_sysctl_next_action()
1279 *next = oidp->oid_number; in sysctl_sysctl_next_action()
1301 oidp->oid_number == CTL_SYSCTL_NEXT); in sysctl_sysctl_next()
1322 struct sysctl_oid *oidp; in name2oid() local
1328 oidp = sysctl_find_oidname(strsep(&name, "."), lsp); in name2oid()
1329 if (oidp == NULL) in name2oid()
1331 *oid++ = oidp->oid_number; in name2oid()
1336 *oidpp = oidp; in name2oid()
1340 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE) in name2oid()
1343 if (oidp->oid_handler) in name2oid()
1346 lsp = SYSCTL_CHILDREN(oidp); in name2oid()
1669 error = sysctl_handle_int(oidp, &s, 0, req); in sysctl_msec_to_ticks()
1781 if ((oidp->oid_kind & (CTLFLAG_WR | CTLFLAG_TUN)) == 0 || in sysctl_handle_string()
1898 error = sysctl_handle_64(oidp, &usec, 0, req); in sysctl_usec_to_sbintime()
1918 error = sysctl_handle_64(oidp, &msec, 0, req); in sysctl_msec_to_sbintime()
1940 error = sysctl_handle_int(oidp, &secs, 0, req); in sysctl_sec_to_timeval()
2711 db_sysctl(struct sysctl_oid *oidp, int *name, u_int namelen, in db_sysctl() argument
2732 g_ddb_oid = oidp; in db_sysctl()
2757 struct sysctl_oid *oidp; in db_show_oid_name() local
2765 error = sysctl_find_oid(qoid, nlen + 2, &oidp, NULL, NULL); in db_show_oid_name()
2769 error = db_sysctl(oidp, qoid, nlen + 2, NULL, NULL, NULL, 0); in db_show_oid_name()
2778 db_oid_safe(const struct sysctl_oid *oidp) in db_oid_safe() argument
2781 if (oidp->oid_handler == db_safe_handlers[i]) in db_oid_safe()
2793 db_show_oid(struct sysctl_oid *oidp, int *oid, size_t nlen, int flags) in db_show_oid() argument
2803 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_OPAQUE && in db_show_oid()
2818 if ((flags & DB_SYSCTL_SAFE_ONLY) && !db_oid_safe(oidp)) { in db_show_oid()
2826 error = db_sysctl(oidp, oid, nlen, in db_show_oid()
2833 error = db_sysctl(oidp, oid, nlen, in db_show_oid()
2848 struct sysctl_oid *oidp; in db_show_sysctl_all() local
2883 error = sysctl_find_oid(next, nlen, &oidp, NULL, NULL); in db_show_sysctl_all()
2887 (void)db_show_oid(oidp, next, nlen, flags | DB_SYSCTL_SAFE_ONLY); in db_show_sysctl_all()
2902 struct sysctl_oid *oidp; in db_sysctlbyname() local
2906 error = name2oid(name, oid, &nlen, &oidp); in db_sysctlbyname()
2911 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_NODE) { in db_sysctlbyname()
2914 error = db_show_oid(oidp, oid, nlen, flags); in db_sysctlbyname()