sysctl: use names instead of magic numbers.
Replace magic numbers with symbols for internal sysctl operations. Convert in-kernel and libc consumers. Submitted by: Pawel Biernacki MFC after: 1 week Differential revision: https://reviews.freebsd.org/D21693
This commit is contained in:
parent
2fa3479cfa
commit
4e6c9714d2
@ -47,8 +47,8 @@ sysctlnametomib(const char *name, int *mibp, size_t *sizep)
|
||||
int oid[2];
|
||||
int error;
|
||||
|
||||
oid[0] = 0;
|
||||
oid[1] = 3;
|
||||
oid[0] = CTL_SYSCTL;
|
||||
oid[1] = CTL_SYSCTL_NAME2OID;
|
||||
|
||||
*sizep *= sizeof(int);
|
||||
error = sysctl(oid, 2, mibp, sizep, name, strlen(name));
|
||||
|
@ -935,13 +935,18 @@ SYSINIT(sysctl, SI_SUB_KMEM, SI_ORDER_FIRST, sysctl_register_all, NULL);
|
||||
* (be aware though, that the proper interface isn't as obvious as it
|
||||
* may seem, there are various conflicting requirements.
|
||||
*
|
||||
* {0,0} printf the entire MIB-tree.
|
||||
* {0,1,...} return the name of the "..." OID.
|
||||
* {0,2,...} return the next OID.
|
||||
* {0,3} return the OID of the name in "new"
|
||||
* {0,4,...} return the kind & format info for the "..." OID.
|
||||
* {0,5,...} return the description of the "..." OID.
|
||||
* {0,6,...} return the aggregation label of the "..." OID.
|
||||
* {CTL_SYSCTL, CTL_SYSCTL_DEBUG} printf the entire MIB-tree.
|
||||
* {CTL_SYSCTL, CTL_SYSCTL_NAME, ...} return the name of the "..."
|
||||
* OID.
|
||||
* {CTL_SYSCTL, CTL_SYSCTL_NEXT, ...} return the next OID.
|
||||
* {CTL_SYSCTL, CTL_SYSCTL_NAME2OID} return the OID of the name in
|
||||
* "new"
|
||||
* {CTL_SYSCTL, CTL_SYSCTL_OIDFMT, ...} return the kind & format info
|
||||
* for the "..." OID.
|
||||
* {CTL_SYSCTL, CTL_SYSCTL_OIDDESCR, ...} return the description of the
|
||||
* "..." OID.
|
||||
* {CTL_SYSCTL, CTL_SYSCTL_OIDLABEL, ...} return the aggregation label of
|
||||
* the "..." OID.
|
||||
*/
|
||||
|
||||
#ifdef SYSCTL_DEBUG
|
||||
@ -1009,8 +1014,8 @@ sysctl_sysctl_debug(SYSCTL_HANDLER_ARGS)
|
||||
return (ENOENT);
|
||||
}
|
||||
|
||||
SYSCTL_PROC(_sysctl, 0, debug, CTLTYPE_STRING|CTLFLAG_RD|CTLFLAG_MPSAFE,
|
||||
0, 0, sysctl_sysctl_debug, "-", "");
|
||||
SYSCTL_PROC(_sysctl, CTL_SYSCTL_DEBUG, debug, CTLTYPE_STRING | CTLFLAG_RD |
|
||||
CTLFLAG_MPSAFE, 0, 0, sysctl_sysctl_debug, "-", "");
|
||||
#endif
|
||||
|
||||
static int
|
||||
@ -1075,8 +1080,8 @@ sysctl_sysctl_name(SYSCTL_HANDLER_ARGS)
|
||||
* XXXRW/JA: Shouldn't return name data for nodes that we don't permit in
|
||||
* capability mode.
|
||||
*/
|
||||
static SYSCTL_NODE(_sysctl, 1, name, CTLFLAG_RD | CTLFLAG_MPSAFE | CTLFLAG_CAPRD,
|
||||
sysctl_sysctl_name, "");
|
||||
static SYSCTL_NODE(_sysctl, CTL_SYSCTL_NAME, name, CTLFLAG_RD |
|
||||
CTLFLAG_MPSAFE | CTLFLAG_CAPRD, sysctl_sysctl_name, "");
|
||||
|
||||
static int
|
||||
sysctl_sysctl_next_ls(struct sysctl_oid_list *lsp, int *name, u_int namelen,
|
||||
@ -1162,8 +1167,8 @@ sysctl_sysctl_next(SYSCTL_HANDLER_ARGS)
|
||||
* XXXRW/JA: Shouldn't return next data for nodes that we don't permit in
|
||||
* capability mode.
|
||||
*/
|
||||
static SYSCTL_NODE(_sysctl, 2, next, CTLFLAG_RD | CTLFLAG_MPSAFE | CTLFLAG_CAPRD,
|
||||
sysctl_sysctl_next, "");
|
||||
static SYSCTL_NODE(_sysctl, CTL_SYSCTL_NEXT, next, CTLFLAG_RD |
|
||||
CTLFLAG_MPSAFE | CTLFLAG_CAPRD, sysctl_sysctl_next, "");
|
||||
|
||||
static int
|
||||
name2oid(char *name, int *oid, int *len, struct sysctl_oid **oidpp)
|
||||
@ -1249,9 +1254,9 @@ sysctl_sysctl_name2oid(SYSCTL_HANDLER_ARGS)
|
||||
* XXXRW/JA: Shouldn't return name2oid data for nodes that we don't permit in
|
||||
* capability mode.
|
||||
*/
|
||||
SYSCTL_PROC(_sysctl, 3, name2oid,
|
||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_MPSAFE
|
||||
| CTLFLAG_CAPRW, 0, 0, sysctl_sysctl_name2oid, "I", "");
|
||||
SYSCTL_PROC(_sysctl, CTL_SYSCTL_NAME2OID, name2oid, CTLTYPE_INT | CTLFLAG_RW |
|
||||
CTLFLAG_ANYBODY | CTLFLAG_MPSAFE | CTLFLAG_CAPRW, 0, 0,
|
||||
sysctl_sysctl_name2oid, "I", "");
|
||||
|
||||
static int
|
||||
sysctl_sysctl_oidfmt(SYSCTL_HANDLER_ARGS)
|
||||
@ -1279,8 +1284,8 @@ sysctl_sysctl_oidfmt(SYSCTL_HANDLER_ARGS)
|
||||
}
|
||||
|
||||
|
||||
static SYSCTL_NODE(_sysctl, 4, oidfmt, CTLFLAG_RD|CTLFLAG_MPSAFE|CTLFLAG_CAPRD,
|
||||
sysctl_sysctl_oidfmt, "");
|
||||
static SYSCTL_NODE(_sysctl, CTL_SYSCTL_OIDFMT, oidfmt, CTLFLAG_RD |
|
||||
CTLFLAG_MPSAFE | CTLFLAG_CAPRD, sysctl_sysctl_oidfmt, "");
|
||||
|
||||
static int
|
||||
sysctl_sysctl_oiddescr(SYSCTL_HANDLER_ARGS)
|
||||
@ -1304,8 +1309,8 @@ sysctl_sysctl_oiddescr(SYSCTL_HANDLER_ARGS)
|
||||
return (error);
|
||||
}
|
||||
|
||||
static SYSCTL_NODE(_sysctl, 5, oiddescr, CTLFLAG_RD|CTLFLAG_MPSAFE|CTLFLAG_CAPRD,
|
||||
sysctl_sysctl_oiddescr, "");
|
||||
static SYSCTL_NODE(_sysctl, CTL_SYSCTL_OIDDESCR, oiddescr, CTLFLAG_RD |
|
||||
CTLFLAG_MPSAFE|CTLFLAG_CAPRD, sysctl_sysctl_oiddescr, "");
|
||||
|
||||
static int
|
||||
sysctl_sysctl_oidlabel(SYSCTL_HANDLER_ARGS)
|
||||
@ -1329,8 +1334,8 @@ sysctl_sysctl_oidlabel(SYSCTL_HANDLER_ARGS)
|
||||
return (error);
|
||||
}
|
||||
|
||||
static SYSCTL_NODE(_sysctl, 6, oidlabel,
|
||||
CTLFLAG_RD | CTLFLAG_MPSAFE | CTLFLAG_CAPRD, sysctl_sysctl_oidlabel, "");
|
||||
static SYSCTL_NODE(_sysctl, CTL_SYSCTL_OIDLABEL, oidlabel, CTLFLAG_RD |
|
||||
CTLFLAG_MPSAFE | CTLFLAG_CAPRD, sysctl_sysctl_oidlabel, "");
|
||||
|
||||
/*
|
||||
* Default "handler" functions.
|
||||
@ -1857,8 +1862,8 @@ kernel_sysctlbyname(struct thread *td, char *name, void *old, size_t *oldlenp,
|
||||
size_t oidlen, plen;
|
||||
int error;
|
||||
|
||||
oid[0] = 0; /* sysctl internal magic */
|
||||
oid[1] = 3; /* name2oid */
|
||||
oid[0] = CTL_SYSCTL;
|
||||
oid[1] = CTL_SYSCTL_NAME2OID;
|
||||
oidlen = sizeof(oid);
|
||||
|
||||
error = kernel_sysctl(td, oid, 2, oid, &oidlen,
|
||||
@ -2165,8 +2170,8 @@ kern___sysctlbyname(struct thread *td, const char *oname, size_t namelen,
|
||||
if (error != 0)
|
||||
goto out;
|
||||
|
||||
oid[0] = 0;
|
||||
oid[1] = 3;
|
||||
oid[0] = CTL_SYSCTL;
|
||||
oid[1] = CTL_SYSCTL_NAME2OID;
|
||||
oidlen = sizeof(oid);
|
||||
error = kernel_sysctl(td, oid, 2, oid, &oidlen, (void *)name, namelen,
|
||||
retval, flags);
|
||||
@ -2667,8 +2672,8 @@ db_show_sysctl_all(int *oid, size_t len, int flags)
|
||||
int name1[CTL_MAXNAME + 2], name2[CTL_MAXNAME + 2];
|
||||
size_t l1, l2;
|
||||
|
||||
name1[0] = 0;
|
||||
name1[1] = 2;
|
||||
name1[0] = CTL_SYSCTL;
|
||||
name1[1] = CTL_SYSCTL_NEXT;
|
||||
l1 = 2;
|
||||
if (len) {
|
||||
memcpy(name1+2, oid, len * sizeof(int));
|
||||
|
@ -889,7 +889,7 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry);
|
||||
/*
|
||||
* Top-level identifiers
|
||||
*/
|
||||
#define CTL_UNSPEC 0 /* unused */
|
||||
#define CTL_SYSCTL 0 /* "magic" numbers */
|
||||
#define CTL_KERN 1 /* "high kernel": proc, limits */
|
||||
#define CTL_VM 2 /* virtual memory */
|
||||
#define CTL_VFS 3 /* filesystem, mount type is next */
|
||||
@ -900,6 +900,17 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry);
|
||||
#define CTL_USER 8 /* user-level */
|
||||
#define CTL_P1003_1B 9 /* POSIX 1003.1B */
|
||||
|
||||
/*
|
||||
* CTL_SYSCTL identifiers
|
||||
*/
|
||||
#define CTL_SYSCTL_DEBUG 0 /* printf all nodes */
|
||||
#define CTL_SYSCTL_NAME 1 /* string name of OID */
|
||||
#define CTL_SYSCTL_NEXT 2 /* next OID */
|
||||
#define CTL_SYSCTL_NAME2OID 3 /* int array of name */
|
||||
#define CTL_SYSCTL_OIDFMT 4 /* OID's kind and format */
|
||||
#define CTL_SYSCTL_OIDDESCR 5 /* OID's description */
|
||||
#define CTL_SYSCTL_OIDLABEL 6 /* aggregation label */
|
||||
|
||||
/*
|
||||
* CTL_KERN identifiers
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user