aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/iocap.h
blob: 591ae1736875614717aee4c81528f0bc0ae3c63e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/******************************************************************************
 * iocap.h
 * 
 * Architecture-specific per-domain I/O capabilities.
 */

#ifndef __X86_IOCAP_H__
#define __X86_IOCAP_H__

#define ioports_permit_access(d, s, e)                  \
    rangeset_add_range((d)->arch.ioport_caps, s, e)
#define ioports_deny_access(d, s, e)                    \
    rangeset_remove_range((d)->arch.ioport_caps, s, e)
#define ioports_access_permitted(d, s, e)               \
    rangeset_contains_range((d)->arch.ioport_caps, s, e)

#define cache_flush_permitted(d)                        \
    (!rangeset_is_empty((d)->iomem_caps) ||             \
     !rangeset_is_empty((d)->arch.ioport_caps))

#define multipage_allocation_permitted(d, order)        \
    (((order) <= 9) || /* allow 2MB superpages */       \
     !rangeset_is_empty((d)->iomem_caps) ||             \
     !rangeset_is_empty((d)->arch.ioport_caps))

#endif /* __X86_IOCAP_H__ */