/root/src/xen/xen/include/xen/iocap.h
Line | Count | Source (jump to first uncovered line) |
1 | | /****************************************************************************** |
2 | | * iocap.h |
3 | | * |
4 | | * Per-domain I/O capabilities. |
5 | | */ |
6 | | |
7 | | #ifndef __XEN_IOCAP_H__ |
8 | | #define __XEN_IOCAP_H__ |
9 | | |
10 | | #include <xen/rangeset.h> |
11 | | #include <asm/iocap.h> |
12 | | |
13 | | #define iomem_permit_access(d, s, e) \ |
14 | 0 | rangeset_add_range((d)->iomem_caps, s, e) |
15 | | #define iomem_deny_access(d, s, e) \ |
16 | 1 | rangeset_remove_range((d)->iomem_caps, s, e) |
17 | | #define iomem_access_permitted(d, s, e) \ |
18 | 0 | rangeset_contains_range((d)->iomem_caps, s, e) |
19 | | |
20 | | #define irq_permit_access(d, i) \ |
21 | 90 | rangeset_add_singleton((d)->irq_caps, i) |
22 | | #define irq_deny_access(d, i) \ |
23 | 0 | rangeset_remove_singleton((d)->irq_caps, i) |
24 | | #define irqs_permit_access(d, s, e) \ |
25 | | rangeset_add_range((d)->irq_caps, s, e) |
26 | | #define irqs_deny_access(d, s, e) \ |
27 | | rangeset_remove_range((d)->irq_caps, s, e) |
28 | | #define irq_access_permitted(d, i) \ |
29 | 48 | rangeset_contains_singleton((d)->irq_caps, i) |
30 | | |
31 | 0 | #define pirq_access_permitted(d, i) ({ \ |
32 | 0 | struct domain *d__ = (d); \ |
33 | 0 | int irq__ = domain_pirq_to_irq(d__, i); \ |
34 | 0 | irq__ > 0 && irq_access_permitted(d__, irq__) \ |
35 | 0 | ? irq__ : 0; \ |
36 | 0 | }) |
37 | | |
38 | | #endif /* __XEN_IOCAP_H__ */ |