Home | History | Annotate | Download | only in m68k

Lines Matching refs:ih

138 m68k_ih_stdfree(struct m68k_intrhand *ih)
140 kmem_free(ih, sizeof(*ih));
158 m68k_ih_free(struct m68k_intrhand *ih)
161 if (__predict_true(ih != &m68k_spurintr_ih)) {
162 ih_allocfuncs->free(ih);
174 m68k_intrvec_add(struct m68k_intrhand *ih)
176 if (ih->ih_vec < MACHINE_USERVEC_START || ih->ih_vec >= NVECTORS) {
178 ih->ih_vec);
183 &m68k_intrhands_vectored[ih->ih_vec - MACHINE_USERVEC_START];
187 ih->ih_vec);
191 if (vec_get_entry(ih->ih_vec) != INTR_FREEVEC) {
193 ih->ih_vec);
197 *slot = ih;
198 vec_set_entry(ih->ih_vec, intrstub_vectored);
203 m68k_intrvec_remove(struct m68k_intrhand *ih)
205 KASSERT(ih->ih_vec >= MACHINE_USERVEC_START);
206 KASSERT(ih->ih_vec < NVECTORS);
209 &m68k_intrhands_vectored[ih->ih_vec - MACHINE_USERVEC_START];
211 KASSERT(*slot == ih);
212 KASSERT(vec_get_entry(ih->ih_vec) == intrstub_vectored);
214 vec_set_entry(ih->ih_vec, INTR_FREEVEC);
265 struct m68k_intrhand *ih;
292 ih = m68k_ih_alloc();
293 ih->ih_func = func;
294 ih->ih_arg = arg;
295 ih->ih_vec = vec;
296 ih->ih_ipl = ipl;
297 ih->ih_isrpri = isrpri;
298 if ((ih->ih_evcnt = ev) == NULL) {
299 ih->ih_evcnt = &bitbucket;
305 m68k_ih_free(ih);
308 if (! m68k_intrvec_add(ih)) {
309 m68k_ih_free(ih);
312 return ih;
329 LIST_INSERT_HEAD(list, ih, ih_link);
335 if (ih->ih_isrpri > curih->ih_isrpri) {
336 LIST_INSERT_BEFORE(curih, ih, ih_link);
340 LIST_INSERT_AFTER(curih, ih, ih_link);
344 return ih;
355 struct m68k_intrhand *ih = v;
360 if (ih->ih_vec != 0) {
361 KASSERT(vec_get_entry(ih->ih_vec) == intrstub_vectored);
362 m68k_intrvec_remove(ih);
368 LIST_REMOVE(ih, ih_link);
369 empty = LIST_EMPTY(&m68k_intrhands_autovec[ih->ih_ipl]);
373 m68k_ih_free(ih);
393 struct m68k_intrhand *ih;
398 LIST_FOREACH(ih, &m68k_intrhands_autovec[ipl], ih_link) {
399 void *arg = ih->ih_arg ? ih->ih_arg : &frame;
400 if (ih->ih_func(arg)) {
401 ih->ih_evcnt->ev_count++;
425 struct m68k_intrhand *ih;
435 ih = m68k_intrvec_handler(vec);
436 if (ih == NULL) {
441 if (__predict_true((*ih->ih_func)(ih->ih_arg ? ih->ih_arg
443 ih->ih_evcnt->ev_count++;