Lines Matching defs:et

46 static SYSCTL_NODE(_kern_eventtimer, OID_AUTO, et, CTLFLAG_RW, 0, "");
52 et_register(struct eventtimer *et)
56 if (et->et_quality >= 0 || bootverbose) {
57 if (et->et_frequency == 0) {
59 et->et_name, et->et_quality);
63 et->et_name, (uintmax_t)et->et_frequency,
64 et->et_quality);
67 KASSERT(et->et_start, ("et_register: timer has no start function"));
68 et->et_sysctl = SYSCTL_ADD_NODE(NULL,
69 SYSCTL_STATIC_CHILDREN(_kern_eventtimer_et), OID_AUTO, et->et_name,
71 SYSCTL_ADD_INT(NULL, SYSCTL_CHILDREN(et->et_sysctl), OID_AUTO,
72 "flags", CTLFLAG_RD, &(et->et_flags), 0,
74 SYSCTL_ADD_UQUAD(NULL, SYSCTL_CHILDREN(et->et_sysctl), OID_AUTO,
75 "frequency", CTLFLAG_RD, &(et->et_frequency),
77 SYSCTL_ADD_INT(NULL, SYSCTL_CHILDREN(et->et_sysctl), OID_AUTO,
78 "quality", CTLFLAG_RD, &(et->et_quality), 0,
82 SLIST_FIRST(&eventtimers)->et_quality < et->et_quality) {
83 SLIST_INSERT_HEAD(&eventtimers, et, et_all);
87 if (next == NULL || next->et_quality < et->et_quality) {
88 SLIST_INSERT_AFTER(tmp, et, et_all);
101 et_deregister(struct eventtimer *et)
105 if (et->et_deregister_cb != NULL) {
106 if ((err = et->et_deregister_cb(et, et->et_arg)) != 0)
111 SLIST_REMOVE(&eventtimers, et, eventtimer, et_all);
113 sysctl_remove_oid(et->et_sysctl, 1, 1);
123 et_change_frequency(struct eventtimer *et, uint64_t newfreq)
127 cpu_et_frequency(et, newfreq);
137 struct eventtimer *et = NULL;
139 SLIST_FOREACH(et, &eventtimers, et_all) {
140 if (et->et_active)
142 if (name != NULL && strcasecmp(et->et_name, name) != 0)
144 if (name == NULL && et->et_quality < 0)
146 if ((et->et_flags & check) != want)
150 return (et);
157 et_init(struct eventtimer *et, et_event_cb_t *event,
163 if (et->et_active)
166 et->et_active = 1;
167 et->et_event_cb = event;
168 et->et_deregister_cb = deregister;
169 et->et_arg = arg;
179 et_start(struct eventtimer *et, sbintime_t first, sbintime_t period)
182 if (!et->et_active)
185 KASSERT((et->et_flags & ET_FLAGS_PERIODIC) || period == 0,
187 KASSERT((et->et_flags & ET_FLAGS_ONESHOT) || period != 0,
190 if (period < et->et_min_period)
191 period = et->et_min_period;
192 else if (period > et->et_max_period)
193 period = et->et_max_period;
196 if (first < et->et_min_period)
197 first = et->et_min_period;
198 else if (first > et->et_max_period)
199 first = et->et_max_period;
201 return (et->et_start(et, first, period));
206 et_stop(struct eventtimer *et)
209 if (!et->et_active)
211 if (et->et_stop)
212 return (et->et_stop(et));
218 et_ban(struct eventtimer *et)
221 et->et_flags &= ~(ET_FLAGS_PERIODIC | ET_FLAGS_ONESHOT);
227 et_free(struct eventtimer *et)
230 if (!et->et_active)
233 et->et_active = 0;
242 struct eventtimer *et;
250 SLIST_FOREACH(et, &eventtimers, et_all) {
252 spc, et->et_name, et->et_quality);