static void ivshmem_add_eventfd(IVShmemState *s, int posn, int i) { memory_region_add_eventfd(&s->ivshmem_mmio, DOORBELL, 4, true, (posn << 16) | i, &s->peers[posn].eventfds[i]); }
static int virtio_mmio_ioeventfd_assign(DeviceState *d, EventNotifier *notifier, int n, bool assign) { VirtIOMMIOProxy *proxy = VIRTIO_MMIO(d); if (assign) { memory_region_add_eventfd(&proxy->iomem, VIRTIO_MMIO_QUEUENOTIFY, 4, true, n, notifier); } else { memory_region_del_eventfd(&proxy->iomem, VIRTIO_MMIO_QUEUENOTIFY, 4, true, n, notifier); } return 0; }
static int pci_testdev_start(IOTest *test) { test->hdr->count = 0; if (!test->hasnotifier) { return 0; } event_notifier_test_and_clear(&test->notifier); memory_region_add_eventfd(test->mr, le32_to_cpu(test->hdr->offset), test->size, test->match_data, test->hdr->data, &test->notifier); return 0; }
static void setup_ioeventfds(IVShmemState *s) { int i, j; for (i = 0; i <= s->max_peer; i++) { for (j = 0; j < s->peers[i].nb_eventfds; j++) { memory_region_add_eventfd(&s->ivshmem_mmio, DOORBELL, 4, true, (i << 16) | j, s->peers[i].eventfds[j]); } } }