Lines Matching defs:evtchn

2  * evtchn.c
57 #include <xen/evtchn.h>
66 /* Notification ring, accessed via /dev/xen/evtchn. */
107 static int add_evtchn(struct per_user_data *u, struct user_evtchn *evtchn)
119 if (this->port < evtchn->port)
121 else if (this->port > evtchn->port)
128 rb_link_node(&evtchn->node, parent, new);
129 rb_insert_color(&evtchn->node, &u->evtchns);
134 static void del_evtchn(struct per_user_data *u, struct user_evtchn *evtchn)
137 rb_erase(&evtchn->node, &u->evtchns);
138 kfree(evtchn);
147 struct user_evtchn *evtchn;
149 evtchn = rb_entry(node, struct user_evtchn, node);
151 if (evtchn->port < port)
153 else if (evtchn->port > port)
156 return evtchn;
163 struct user_evtchn *evtchn = data;
164 struct per_user_data *u = evtchn->user;
166 WARN(!evtchn->enabled,
168 evtchn->port, u);
170 evtchn->enabled = false;
175 *evtchn_ring_entry(u, u->ring_prod) = evtchn->port;
290 struct user_evtchn *evtchn;
292 evtchn = find_evtchn(u, port);
293 if (evtchn && !evtchn->enabled) {
294 evtchn->enabled = true;
366 struct user_evtchn *evtchn;
379 evtchn = kzalloc(sizeof(*evtchn), GFP_KERNEL);
380 if (!evtchn)
383 evtchn->user = u;
384 evtchn->port = port;
385 evtchn->enabled = true; /* start enabled */
387 rc = add_evtchn(u, evtchn);
396 u->name, evtchn);
408 del_evtchn(u, evtchn);
413 struct user_evtchn *evtchn)
415 int irq = irq_from_evtchn(evtchn->port);
419 unbind_from_irqhandler(irq, evtchn);
421 del_evtchn(u, evtchn);
426 static void evtchn_bind_interdom_next_vcpu(evtchn_port_t evtchn)
432 irq = irq_from_evtchn(evtchn);
545 struct user_evtchn *evtchn;
556 evtchn = find_evtchn(u, unbind.port);
557 if (!evtchn)
561 evtchn_unbind_from_user(u, evtchn);
568 struct user_evtchn *evtchn;
575 evtchn = find_evtchn(u, notify.port);
576 if (evtchn) {
651 u->name = kasprintf(GFP_KERNEL, "evtchn:%s", current->comm);
676 struct user_evtchn *evtchn;
678 evtchn = rb_entry(node, struct user_evtchn, node);
679 disable_irq(irq_from_evtchn(evtchn->port));
680 evtchn_unbind_from_user(u, evtchn);
704 .name = "xen/evtchn",
714 /* Create '/dev/xen/evtchn'. */
717 pr_err("Could not register /dev/xen/evtchn\n");