Lines Matching defs:oidp

124 static int	sysctl_remove_oid_locked(struct sysctl_oid *oidp, int del,
133 struct sysctl_oid *oidp;
136 SYSCTL_FOREACH(oidp, list) {
137 if (strcmp(oidp->oid_name, name) == 0) {
138 return (oidp);
148 struct sysctl_oid *oidp;
151 SYSCTL_FOREACH(oidp, list) {
152 if (strncmp(oidp->oid_name, name, len) == 0 &&
153 oidp->oid_name[len] == '\0')
154 return (oidp);
221 sysctl_load_tunable_by_oid_locked(struct sysctl_oid *oidp)
235 for (curr = oidp; curr != NULL; curr = SYSCTL_PARENT(curr)) {
238 if (curr != oidp)
245 if (curr != oidp)
256 switch (oidp->oid_kind & CTLTYPE) {
351 error = sysctl_root_handler_locked(oidp, oidp->oid_arg1,
352 oidp->oid_arg2, &req, NULL);
436 sysctl_warn_reuse(__func__, oidp);
446 sysctl_register_oid(struct sysctl_oid *oidp)
448 struct sysctl_oid_list *parent = oidp->oid_parent;
458 p = sysctl_find_oidname(oidp->oid_name, parent);
469 oid_number = oidp->oid_number;
517 if (oidp->oid_number >= 0 && oidp->oid_number < CTL_AUTO_START &&
520 oidp->oid_number, oidp->oid_name);
523 oidp->oid_number = oid_number;
524 RB_INSERT(sysctl_oid_list, parent, oidp);
526 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE &&
527 (oidp->oid_kind & CTLFLAG_TUN) != 0 &&
528 (oidp->oid_kind & CTLFLAG_NOFETCH) == 0) {
534 if ((oidp->oid_kind & CTLFLAG_VNET) == 0)
536 oidp->oid_kind |= CTLFLAG_NOFETCH;
538 sysctl_load_tunable_by_oid_locked(oidp);
543 sysctl_register_disabled_oid(struct sysctl_oid *oidp)
551 KASSERT((oidp->oid_kind & CTLFLAG_DORMANT) == 0,
553 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE)
554 oidp->oid_kind |= CTLFLAG_DORMANT;
555 sysctl_register_oid(oidp);
559 sysctl_enable_oid(struct sysctl_oid *oidp)
563 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_NODE) {
564 KASSERT((oidp->oid_kind & CTLFLAG_DORMANT) == 0,
568 KASSERT((oidp->oid_kind & CTLFLAG_DORMANT) != 0,
570 oidp->oid_kind &= ~CTLFLAG_DORMANT;
574 sysctl_unregister_oid(struct sysctl_oid *oidp)
579 if (oidp->oid_number == OID_AUTO) {
583 if (RB_REMOVE(sysctl_oid_list, oidp->oid_parent, oidp))
594 __func__, error, oidp->oid_name);
668 sysctl_ctx_entry_add(struct sysctl_ctx_list *clist, struct sysctl_oid *oidp)
673 if (clist == NULL || oidp == NULL)
676 e->entry = oidp;
683 sysctl_ctx_entry_find(struct sysctl_ctx_list *clist, struct sysctl_oid *oidp)
688 if (clist == NULL || oidp == NULL)
691 if (e->entry == oidp)
699 * NOTE: this function doesn't free oidp! You have to remove it
703 sysctl_ctx_entry_del(struct sysctl_ctx_list *clist, struct sysctl_oid *oidp)
707 if (clist == NULL || oidp == NULL)
710 e = sysctl_ctx_entry_find(clist, oidp);
724 * oidp - top of the tree to be removed
729 sysctl_remove_oid(struct sysctl_oid *oidp, int del, int recurse)
734 error = sysctl_remove_oid_locked(oidp, del, recurse);
797 sysctl_remove_oid_locked(struct sysctl_oid *oidp, int del, int recurse)
803 if (oidp == NULL)
805 if ((oidp->oid_kind & CTLFLAG_DYN) == 0) {
807 oidp->oid_name);
817 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_NODE) {
818 if (oidp->oid_refcnt == 1) {
819 for(p = RB_MIN(sysctl_oid_list, &oidp->oid_children);
824 oidp->oid_name, p->oid_name);
828 &oidp->oid_children, p);
836 if (oidp->oid_refcnt > 1 ) {
837 oidp->oid_refcnt--;
839 if (oidp->oid_refcnt == 0) {
841 oidp->oid_refcnt, oidp->oid_name);
844 sysctl_unregister_oid(oidp);
852 while (oidp->oid_running > 0) {
853 oidp->oid_kind |= CTLFLAG_DYING;
854 SYSCTL_SLEEP(&oidp->oid_running, "oidrm", 0);
856 if (oidp->oid_descr)
857 free(__DECONST(char *, oidp->oid_descr),
859 if (oidp->oid_label)
860 free(__DECONST(char *, oidp->oid_label),
862 free(__DECONST(char *, oidp->oid_name), M_SYSCTLOID);
863 free(oidp, M_SYSCTLOID);
878 struct sysctl_oid *oidp;
887 oidp = sysctl_find_oidname(escaped, parent);
888 if (oidp != NULL) {
890 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_NODE) {
891 oidp->oid_refcnt++;
894 sysctl_ctx_entry_add(clist, oidp);
896 return (oidp);
898 sysctl_warn_reuse(__func__, oidp);
903 oidp = malloc(sizeof(struct sysctl_oid), M_SYSCTLOID, M_WAITOK|M_ZERO);
904 oidp->oid_parent = parent;
905 RB_INIT(&oidp->oid_children);
906 oidp->oid_number = number;
907 oidp->oid_refcnt = 1;
908 oidp->oid_name = escaped;
909 oidp->oid_handler = handler;
910 oidp->oid_kind = CTLFLAG_DYN | kind;
911 oidp->oid_arg1 = arg1;
912 oidp->oid_arg2 = arg2;
913 oidp->oid_fmt = fmt;
915 oidp->oid_descr = strdup(descr, M_SYSCTLOID);
917 oidp->oid_label = strdup(label, M_SYSCTLOID);
920 sysctl_ctx_entry_add(clist, oidp);
922 sysctl_register_oid(oidp);
924 return (oidp);
931 sysctl_rename_oid(struct sysctl_oid *oidp, const char *name)
938 oldname = __DECONST(char *, oidp->oid_name);
939 oidp->oid_name = newname;
950 struct sysctl_oid *oidp;
957 oidp = sysctl_find_oidname(oid->oid_name, parent);
958 if (oidp != NULL) {
978 struct sysctl_oid **oidp;
984 SET_FOREACH(oidp, sysctl_set)
985 sysctl_register_oid(*oidp);
994 struct sysctl_oid *oidp;
999 error = name2oid(name, oid, &nlen, &oidp);
1003 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE &&
1004 (oidp->oid_kind & CTLFLAG_VNET) != 0 &&
1005 (oidp->oid_kind & CTLFLAG_TUN) != 0 &&
1006 (oidp->oid_kind & CTLFLAG_NOFETCH) == 0) {
1008 sysctl_load_tunable_by_oid_locked(oidp);
1017 struct sysctl_oid *oidp;
1031 error = name2oid(name, oid, &nlen, &oidp);
1035 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE &&
1036 (oidp->oid_kind & CTLFLAG_VNET) != 0 &&
1037 (oidp->oid_kind & CTLFLAG_TUN) != 0 &&
1038 (oidp->oid_kind & CTLFLAG_NOFETCH) == 0) {
1041 switch (oidp->oid_kind & CTLTYPE) {
1067 MPASS(oidp->oid_arg2 > 0);
1068 size = oidp->oid_arg2;
1073 vnet_restore_init(oidp->oid_arg1, size);
1119 struct sysctl_oid *oidp;
1122 SYSCTL_FOREACH(oidp, l) {
1126 printf("%d %s ", oidp->oid_number, oidp->oid_name);
1129 oidp->oid_kind & CTLFLAG_RD ? 'R':' ',
1130 oidp->oid_kind & CTLFLAG_WR ? 'W':' ');
1132 if (oidp->oid_handler)
1135 switch (oidp->oid_kind & CTLTYPE) {
1138 if (!oidp->oid_handler) {
1140 SYSCTL_CHILDREN(oidp), i + 2);
1256 sysctl_sysctl_next_node(struct sysctl_oid *oidp, int *name, unsigned int namelen,
1260 if ((oidp->oid_kind & CTLFLAG_DORMANT) != 0)
1263 if (honor_skip && (oidp->oid_kind & CTLFLAG_SKIP) != 0)
1278 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE)
1281 if (oidp->oid_handler)
1301 if (oidp->oid_number < *name)
1303 if (oidp->oid_number > *name) {
1314 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE)
1317 if (oidp->oid_handler)
1323 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE)
1325 if (oidp->oid_handler)
1340 struct sysctl_oid *oidp = NULL, key;
1351 oidp = RB_FIND(sysctl_oid_list, lsp, &key);
1353 if (!oidp)
1354 oidp = RB_MIN(sysctl_oid_list, lsp);
1355 for(; oidp != NULL; oidp = RB_NEXT(sysctl_oid_list, lsp, oidp)) {
1356 action = sysctl_sysctl_next_node(oidp, name, namelen,
1366 next_lsp = SYSCTL_CHILDREN(oidp);
1392 *next = oidp->oid_number;
1414 oidp->oid_number == CTL_SYSCTL_NEXT);
1435 struct sysctl_oid *oidp;
1443 oidp = sysctl_find_oidnamelen(name, n - name, lsp);
1444 if (oidp == NULL)
1446 *oid++ = oidp->oid_number;
1454 *oidpp = oidp;
1458 if ((oidp->oid_kind & CTLTYPE) != CTLTYPE_NODE)
1461 if (oidp->oid_handler)
1464 lsp = SYSCTL_CHILDREN(oidp);
1787 error = sysctl_handle_int(oidp, &s, 0, req);
1899 if ((oidp->oid_kind & (CTLFLAG_WR | CTLFLAG_TUN)) == 0 ||
2016 error = sysctl_handle_64(oidp, &usec, 0, req);
2036 error = sysctl_handle_64(oidp, &msec, 0, req);
2058 error = sysctl_handle_int(oidp, &secs, 0, req);
2831 db_sysctl(struct sysctl_oid *oidp, int *name, u_int namelen,
2852 g_ddb_oid = oidp;
2877 struct sysctl_oid *oidp;
2885 error = sysctl_find_oid(qoid, nlen + 2, &oidp, NULL, NULL);
2889 error = db_sysctl(oidp, qoid, nlen + 2, NULL, NULL, NULL, 0);
2898 db_oid_safe(const struct sysctl_oid *oidp)
2901 if (oidp->oid_handler == db_safe_handlers[i])
2913 db_show_oid(struct sysctl_oid *oidp, int *oid, size_t nlen, int flags)
2923 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_OPAQUE &&
2938 if ((flags & DB_SYSCTL_SAFE_ONLY) && !db_oid_safe(oidp)) {
2946 error = db_sysctl(oidp, oid, nlen,
2953 error = db_sysctl(oidp, oid, nlen,
2968 struct sysctl_oid *oidp;
3003 error = sysctl_find_oid(next, nlen, &oidp, NULL, NULL);
3007 (void)db_show_oid(oidp, next, nlen, flags | DB_SYSCTL_SAFE_ONLY);
3022 struct sysctl_oid *oidp;
3026 error = name2oid(name, oid, &nlen, &oidp);
3031 if ((oidp->oid_kind & CTLTYPE) == CTLTYPE_NODE) {
3034 error = db_show_oid(oidp, oid, nlen, flags);