aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/xen/sched.h
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2011-05-01 13:17:44 +0100
committerJan Beulich <jbeulich@novell.com>2011-05-01 13:17:44 +0100
commit76ce27755b87aa5a91ce0f5a02e560ab5c0515e4 (patch)
treef2a7fcbd31e863d8a0238782c12a716bbc0f21e9 /xen/include/xen/sched.h
parentf22f2fe48d144141fffd42a380383f45efbea8e3 (diff)
downloadxen-76ce27755b87aa5a91ce0f5a02e560ab5c0515e4.tar.gz
xen-76ce27755b87aa5a91ce0f5a02e560ab5c0515e4.tar.bz2
xen-76ce27755b87aa5a91ce0f5a02e560ab5c0515e4.zip
replace d->nr_pirqs sized arrays with radix tree
With this it is questionable whether retaining struct domain's nr_pirqs is actually necessary - the value now only serves for bounds checking, and this boundary could easily be nr_irqs. Another thing to consider is whether it's worth storing the pirq number in struct pirq, to avoid passing the number and a pointer to quite a number of functions. Note that ia64, the build of which is broken currently anyway, is only partially fixed up. Signed-off-by: Jan Beulich <jbeulich@novell.com>
Diffstat (limited to 'xen/include/xen/sched.h')
-rw-r--r--xen/include/xen/sched.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 17fac57dfd..2adb3262af 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -21,6 +21,7 @@
#include <xen/irq.h>
#include <xen/mm.h>
#include <xen/tasklet.h>
+#include <xen/radix-tree.h>
#include <public/mem_event.h>
#include <xen/cpumask.h>
#include <xen/nodemask.h>
@@ -234,13 +235,11 @@ struct domain
struct grant_table *grant_table;
/*
- * Interrupt to event-channel mappings. Updates should be protected by the
- * domain's event-channel spinlock. Read accesses can also synchronise on
- * the lock, but races don't usually matter.
+ * Interrupt to event-channel mappings and other per-guest-pirq data.
+ * Protected by the domain's event-channel spinlock.
*/
unsigned int nr_pirqs;
- u16 *pirq_to_evtchn;
- unsigned long *pirq_mask;
+ struct radix_tree_root pirq_tree;
/* I/O capabilities (access to IRQs and memory-mapped I/O). */
struct rangeset *iomem_caps;