From fbbd5009e6ed1201731b1727762070c1a988e67d Mon Sep 17 00:00:00 2001 From: David Vrabel Date: Mon, 14 Oct 2013 10:15:49 +0200 Subject: evtchn: refactor low-level event channel port ops Use functions for the low-level event channel port operations (set/clear pending, unmask, is_pending and is_masked). Group these functions into a struct evtchn_port_op so they can be replaced by alternate implementations (for different ABIs) on a per-domain basis. Signed-off-by: David Vrabel Reviewed-by: Jan Beulich Acked-by: Keir Fraser --- xen/include/xen/sched.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'xen/include/xen/sched.h') diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 2e83f08dd9..7c9eca38d2 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -66,6 +66,7 @@ struct evtchn u8 state; /* ECS_* */ u8 xen_consumer; /* Consumer in Xen, if any? (0 = send to guest) */ u16 notify_vcpu_id; /* VCPU for local delivery notification */ + u32 port; union { struct { domid_t remote_domid; @@ -238,6 +239,8 @@ struct mem_event_per_domain struct mem_event_domain access; }; +struct evtchn_port_ops; + struct domain { domid_t domain_id; @@ -271,6 +274,7 @@ struct domain /* Event channel information. */ struct evtchn *evtchn[NR_EVTCHN_BUCKETS]; spinlock_t event_lock; + const struct evtchn_port_ops *evtchn_port_ops; struct grant_table *grant_table; -- cgit v1.2.3