diff options
author | David Vrabel <david.vrabel@citrix.com> | 2013-10-14 10:17:14 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2013-10-14 10:17:14 +0200 |
commit | 611d0ecc81bf948f6f9c592afdd6c2aebcfaaadb (patch) | |
tree | a3a741503fc9917448c46450b621f2f081d379f5 /xen/common/event_2l.c | |
parent | fbbd5009e6ed1201731b1727762070c1a988e67d (diff) | |
download | xen-611d0ecc81bf948f6f9c592afdd6c2aebcfaaadb.tar.gz xen-611d0ecc81bf948f6f9c592afdd6c2aebcfaaadb.tar.bz2 xen-611d0ecc81bf948f6f9c592afdd6c2aebcfaaadb.zip |
evtchn: print ABI specific state with the 'e' debug key
In the output of the 'e' debug key, print some ABI specific state in
addition to the (p)ending and (m)asked bits.
For the 2-level ABI, print the state of that event's selector
bit. e.g.,
(XEN) port [p/m/s]
(XEN) 1 [0/0/1]: s=3 n=0 x=0 d=0 p=74
(XEN) 2 [0/0/1]: s=3 n=0 x=0 d=0 p=75
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/common/event_2l.c')
-rw-r--r-- | xen/common/event_2l.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/xen/common/event_2l.c b/xen/common/event_2l.c index 7b28942933..a9d99d3e92 100644 --- a/xen/common/event_2l.c +++ b/xen/common/event_2l.c @@ -74,6 +74,15 @@ static bool_t evtchn_2l_is_masked(struct domain *d, return test_bit(evtchn->port, &shared_info(d, evtchn_mask)); } +static void evtchn_2l_print_state(struct domain *d, + const struct evtchn *evtchn) +{ + struct vcpu *v = d->vcpu[evtchn->notify_vcpu_id]; + + printk("%d", !!test_bit(evtchn->port / BITS_PER_EVTCHN_WORD(d), + &vcpu_info(v, evtchn_pending_sel))); +} + static const struct evtchn_port_ops evtchn_port_ops_2l = { .set_pending = evtchn_2l_set_pending, @@ -81,6 +90,7 @@ static const struct evtchn_port_ops evtchn_port_ops_2l = .unmask = evtchn_2l_unmask, .is_pending = evtchn_2l_is_pending, .is_masked = evtchn_2l_is_masked, + .print_state = evtchn_2l_print_state, }; void evtchn_2l_init(struct domain *d) |