Lines Matching refs:entry

100 static bool irq_do_timetravel_handler(struct irq_entry *entry,  in irq_do_timetravel_handler()  argument
103 struct irq_reg *reg = &entry->reg[t]; in irq_do_timetravel_handler()
114 reg->timetravel_handler(reg->irq, entry->fd, reg->id, &reg->event); in irq_do_timetravel_handler()
124 struct irq_entry *entry; in irq_do_pending_events() local
131 list_for_each_entry(entry, &active_fds, list) { in irq_do_pending_events()
135 struct irq_reg *reg = &entry->reg[t]; in irq_do_pending_events()
151 static bool irq_do_timetravel_handler(struct irq_entry *entry, in irq_do_timetravel_handler() argument
162 static void sigio_reg_handler(int idx, struct irq_entry *entry, enum um_irq_type t, in sigio_reg_handler() argument
166 struct irq_reg *reg = &entry->reg[t]; in sigio_reg_handler()
174 if (irq_do_timetravel_handler(entry, t)) in sigio_reg_handler()
271 static bool update_irq_entry(struct irq_entry *entry) in update_irq_entry() argument
277 events |= entry->reg[i].events; in update_irq_entry()
281 os_add_epoll_fd(events, entry->fd, entry); in update_irq_entry()
285 os_del_epoll_fd(entry->fd); in update_irq_entry()
289 static struct irq_entry *update_or_remove_irq_entry(struct irq_entry *entry) in update_or_remove_irq_entry() argument
291 if (update_irq_entry(entry)) in update_or_remove_irq_entry()
293 remove_irq_entry(entry, false); in update_or_remove_irq_entry()
294 return entry; in update_or_remove_irq_entry()
384 struct irq_entry *entry, *to_free = NULL; in free_irq_by_irq_and_dev() local
388 list_for_each_entry(entry, &active_fds, list) { in free_irq_by_irq_and_dev()
392 struct irq_reg *reg = &entry->reg[i]; in free_irq_by_irq_and_dev()
401 os_del_epoll_fd(entry->fd); in free_irq_by_irq_and_dev()
403 to_free = update_or_remove_irq_entry(entry); in free_irq_by_irq_and_dev()
414 struct irq_entry *entry; in deactivate_fd() local
421 entry = get_irq_entry_by_fd(fd); in deactivate_fd()
422 if (!entry) in deactivate_fd()
426 if (!entry->reg[i].events) in deactivate_fd()
428 if (entry->reg[i].irq == irqnum) in deactivate_fd()
429 entry->reg[i].events = 0; in deactivate_fd()
432 entry = update_or_remove_irq_entry(entry); in deactivate_fd()
435 kfree(entry); in deactivate_fd()
449 struct irq_entry *entry; in deactivate_all_fds() local
458 list_for_each_entry(entry, &active_fds, list) in deactivate_all_fds()
459 os_del_epoll_fd(entry->fd); in deactivate_all_fds()
560 struct irq_entry *entry; in um_irqs_suspend() local
566 list_for_each_entry(entry, &active_fds, list) { in um_irqs_suspend()
571 if (!entry->reg[t].events) in um_irqs_suspend()
580 if (entry->reg[t].wakeup || in um_irqs_suspend()
581 entry->reg[t].irq == SIGIO_WRITE_IRQ in um_irqs_suspend()
583 || entry->reg[t].timetravel_handler in um_irqs_suspend()
592 entry->suspended = true; in um_irqs_suspend()
593 os_clear_fd_async(entry->fd); in um_irqs_suspend()
594 entry->sigio_workaround = in um_irqs_suspend()
595 !__ignore_sigio_fd(entry->fd); in um_irqs_suspend()
603 struct irq_entry *entry; in um_irqs_resume() local
608 list_for_each_entry(entry, &active_fds, list) { in um_irqs_resume()
609 if (entry->suspended) { in um_irqs_resume()
610 int err = os_set_fd_async(entry->fd); in um_irqs_resume()
613 entry->suspended = false; in um_irqs_resume()
615 if (entry->sigio_workaround) { in um_irqs_resume()
616 err = __add_sigio_fd(entry->fd); in um_irqs_resume()
629 struct irq_entry *entry; in normal_irq_set_wake() local
633 list_for_each_entry(entry, &active_fds, list) { in normal_irq_set_wake()
637 if (!entry->reg[t].events) in normal_irq_set_wake()
640 if (entry->reg[t].irq != d->irq) in normal_irq_set_wake()
642 entry->reg[t].wakeup = on; in normal_irq_set_wake()