Home | History | Annotate | Download | only in acpi

Lines Matching refs:ai

284 	struct acpi_intrvec *ai;
286 TAILQ_FOREACH(ai, &acpi_intrvecs, ai_list) {
287 if (ai->ai_irq == irq) {
288 return ai;
298 struct acpi_intrvec *ai = arg;
302 TAILQ_FOREACH(ah, &ai->ai_handlers, ah_list) {
312 struct acpi_intrvec *ai;
315 ai = acpi_md_intr_lookup(irq);
316 if (ai == NULL) {
317 ai = kmem_zalloc(sizeof(*ai), KM_SLEEP);
318 ai->ai_refcnt = 0;
319 ai->ai_irq = irq;
320 ai->ai_ipl = ipl;
321 ai->ai_type = type;
322 ai->ai_mpsafe = mpsafe;
323 ai->ai_arg = arg;
324 TAILQ_INIT(&ai->ai_handlers);
326 ai->ai_ih = intr_establish_xname(irq, ipl,
330 ai->ai_ih = intr_establish_xname(irq, ipl,
331 type | (mpsafe ? IST_MPSAFE : 0), acpi_md_intr, ai,
334 if (ai->ai_ih == NULL) {
335 kmem_free(ai, sizeof(*ai));
338 TAILQ_INSERT_TAIL(&acpi_intrvecs, ai, ai_list);
340 if (ai->ai_arg == NULL) {
344 if (ai->ai_ipl != ipl) {
348 if (ai->ai_type != type) {
352 if (ai->ai_mpsafe != mpsafe) {
358 ai->ai_refcnt++;
363 TAILQ_INSERT_TAIL(&ai->ai_handlers, ah, ah_list);
365 return ai->ai_ih;
371 struct acpi_intrvec *ai;
374 TAILQ_FOREACH(ai, &acpi_intrvecs, ai_list) {
375 if (ai->ai_ih == ih) {
376 KASSERT(ai->ai_refcnt > 0);
377 if (ai->ai_refcnt > 1) {
381 TAILQ_REMOVE(&acpi_intrvecs, ai, ai_list);
382 ah = TAILQ_FIRST(&ai->ai_handlers);
384 intr_disestablish(ai->ai_ih);
385 kmem_free(ai, sizeof(*ai));