Lines Matching refs:xc

1067             struct xenevtchn_handle *xc = s->be_handles[be_port];  in close_port()  local
1068 if (xc) { in close_port()
1072 xc->guest_port = 0; in close_port()
1380 struct xenevtchn_handle *xc = s->be_handles[interdomain->remote_port]; in xen_evtchn_bind_interdomain_op() local
1383 if (!xc) { in xen_evtchn_bind_interdomain_op()
1388 if (xc->guest_port) { in xen_evtchn_bind_interdomain_op()
1393 assert(xc->be_port == interdomain->remote_port); in xen_evtchn_bind_interdomain_op()
1394 xc->guest_port = interdomain->local_port; in xen_evtchn_bind_interdomain_op()
1396 assign_kernel_eventfd(lp->type, xc->guest_port, xc->fd); in xen_evtchn_bind_interdomain_op()
1494 struct xenevtchn_handle *xc = s->be_handles[be_port]; in xen_evtchn_send_op() local
1495 if (xc) { in xen_evtchn_send_op()
1496 eventfd_write(xc->fd, 1); in xen_evtchn_send_op()
1998 struct xenevtchn_handle *xc = g_new0(struct xenevtchn_handle, 1); in xen_be_evtchn_open() local
2000 xc->fd = eventfd(0, EFD_CLOEXEC); in xen_be_evtchn_open()
2001 if (xc->fd < 0) { in xen_be_evtchn_open()
2002 free(xc); in xen_be_evtchn_open()
2006 return xc; in xen_be_evtchn_open()
2009 static int find_be_port(XenEvtchnState *s, struct xenevtchn_handle *xc) in find_be_port() argument
2015 s->be_handles[i] = xc; in find_be_port()
2016 xc->be_port = i; in find_be_port()
2023 int xen_be_evtchn_bind_interdomain(struct xenevtchn_handle *xc, uint32_t domid, in xen_be_evtchn_bind_interdomain() argument
2035 if (!xc) { in xen_be_evtchn_bind_interdomain()
2058 s->be_handles[be_port] = xc; in xen_be_evtchn_bind_interdomain()
2059 xc->guest_port = guest_port; in xen_be_evtchn_bind_interdomain()
2060 ret = xc->be_port = be_port; in xen_be_evtchn_bind_interdomain()
2062 assign_kernel_eventfd(gp->type, guest_port, xc->fd); in xen_be_evtchn_bind_interdomain()
2069 be_port = find_be_port(s, xc); in xen_be_evtchn_bind_interdomain()
2078 xc->guest_port = guest_port; in xen_be_evtchn_bind_interdomain()
2080 assign_kernel_eventfd(gp->type, guest_port, xc->fd); in xen_be_evtchn_bind_interdomain()
2096 int xen_be_evtchn_unbind(struct xenevtchn_handle *xc, evtchn_port_t port) in xen_be_evtchn_unbind() argument
2105 if (!xc) { in xen_be_evtchn_unbind()
2111 if (port && port != xc->be_port) { in xen_be_evtchn_unbind()
2116 if (xc->guest_port) { in xen_be_evtchn_unbind()
2117 XenEvtchnPort *gp = &s->port_table[xc->guest_port]; in xen_be_evtchn_unbind()
2126 deassign_kernel_port(xc->guest_port); in xen_be_evtchn_unbind()
2128 xc->guest_port = 0; in xen_be_evtchn_unbind()
2131 s->be_handles[xc->be_port] = NULL; in xen_be_evtchn_unbind()
2132 xc->be_port = 0; in xen_be_evtchn_unbind()
2139 int xen_be_evtchn_close(struct xenevtchn_handle *xc) in xen_be_evtchn_close() argument
2141 if (!xc) { in xen_be_evtchn_close()
2145 xen_be_evtchn_unbind(xc, 0); in xen_be_evtchn_close()
2147 close(xc->fd); in xen_be_evtchn_close()
2148 free(xc); in xen_be_evtchn_close()
2152 int xen_be_evtchn_fd(struct xenevtchn_handle *xc) in xen_be_evtchn_fd() argument
2154 if (!xc) { in xen_be_evtchn_fd()
2157 return xc->fd; in xen_be_evtchn_fd()
2160 int xen_be_evtchn_notify(struct xenevtchn_handle *xc, evtchn_port_t port) in xen_be_evtchn_notify() argument
2169 if (!xc) { in xen_be_evtchn_notify()
2175 if (xc->guest_port) { in xen_be_evtchn_notify()
2176 set_port_pending(s, xc->guest_port); in xen_be_evtchn_notify()
2187 int xen_be_evtchn_pending(struct xenevtchn_handle *xc) in xen_be_evtchn_pending() argument
2191 if (!xc) { in xen_be_evtchn_pending()
2195 if (!xc->be_port) { in xen_be_evtchn_pending()
2199 if (eventfd_read(xc->fd, &val)) { in xen_be_evtchn_pending()
2203 return val ? xc->be_port : 0; in xen_be_evtchn_pending()
2206 int xen_be_evtchn_unmask(struct xenevtchn_handle *xc, evtchn_port_t port) in xen_be_evtchn_unmask() argument
2208 if (!xc) { in xen_be_evtchn_unmask()
2212 if (xc->be_port != port) { in xen_be_evtchn_unmask()
2223 int xen_be_evtchn_get_guest_port(struct xenevtchn_handle *xc) in xen_be_evtchn_get_guest_port() argument
2225 return xc->guest_port; in xen_be_evtchn_get_guest_port()