Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_tc.c
Show First 20 Lines • Show All 1,212 Lines • ▼ Show 20 Lines | printf("Timecounter \"%s\" frequency %ju Hz quality %d\n", | ||||
tc->tc_quality); | tc->tc_quality); | ||||
} | } | ||||
tc->tc_next = timecounters; | tc->tc_next = timecounters; | ||||
timecounters = tc; | timecounters = tc; | ||||
/* | /* | ||||
* Set up sysctl tree for this counter. | * Set up sysctl tree for this counter. | ||||
*/ | */ | ||||
tc_root = SYSCTL_ADD_NODE(NULL, | tc_root = SYSCTL_ADD_NODE_WITH_LABEL(NULL, | ||||
SYSCTL_STATIC_CHILDREN(_kern_timecounter_tc), OID_AUTO, tc->tc_name, | SYSCTL_STATIC_CHILDREN(_kern_timecounter_tc), OID_AUTO, tc->tc_name, | ||||
CTLFLAG_RW, 0, "timecounter description"); | CTLFLAG_RW, 0, "timecounter description", "timecounter"); | ||||
SYSCTL_ADD_UINT(NULL, SYSCTL_CHILDREN(tc_root), OID_AUTO, | SYSCTL_ADD_UINT(NULL, SYSCTL_CHILDREN(tc_root), OID_AUTO, | ||||
"mask", CTLFLAG_RD, &(tc->tc_counter_mask), 0, | "mask", CTLFLAG_RD, &(tc->tc_counter_mask), 0, | ||||
"mask for implemented bits"); | "mask for implemented bits"); | ||||
SYSCTL_ADD_PROC(NULL, SYSCTL_CHILDREN(tc_root), OID_AUTO, | SYSCTL_ADD_PROC(NULL, SYSCTL_CHILDREN(tc_root), OID_AUTO, | ||||
"counter", CTLTYPE_UINT | CTLFLAG_RD, tc, sizeof(*tc), | "counter", CTLTYPE_UINT | CTLFLAG_RD, tc, sizeof(*tc), | ||||
sysctl_kern_timecounter_get, "IU", "current timecounter value"); | sysctl_kern_timecounter_get, "IU", "current timecounter value"); | ||||
SYSCTL_ADD_PROC(NULL, SYSCTL_CHILDREN(tc_root), OID_AUTO, | SYSCTL_ADD_PROC(NULL, SYSCTL_CHILDREN(tc_root), OID_AUTO, | ||||
"frequency", CTLTYPE_U64 | CTLFLAG_RD, tc, sizeof(*tc), | "frequency", CTLTYPE_U64 | CTLFLAG_RD, tc, sizeof(*tc), | ||||
▲ Show 20 Lines • Show All 944 Lines • Show Last 20 Lines |