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__ */
|