}
-int is_iomem_page(unsigned long mfn)
+bool is_iomem_page(mfn_t mfn)
{
struct page_info *page;
- if ( !mfn_valid(mfn) )
- return 1;
+ if ( !mfn_valid(mfn_x(mfn)) )
+ return true;
/* Caller must know that it is an iomem page, or a reference is held. */
- page = mfn_to_page(mfn);
+ page = mfn_to_page(mfn_x(mfn));
ASSERT((page->count_info & PGC_count_mask) != 0);
return (page_get_owner(page) == dom_io);
struct domain *pg_owner;
struct vcpu *v;
- if ( !(l1e_get_flags(l1e) & _PAGE_PRESENT) || is_iomem_page(pfn) )
+ if ( !(l1e_get_flags(l1e) & _PAGE_PRESENT) || is_iomem_page(_mfn(pfn)) )
return;
page = mfn_to_page(pfn);
if ( op->flags & GNTMAP_device_map )
{
- if ( !is_iomem_page(act->frame) )
+ if ( !is_iomem_page(_mfn(act->frame)) )
{
if ( op->flags & GNTMAP_readonly )
put_page(pg);
goto act_release_out;
}
- if ( !is_iomem_page(op->frame) )
+ if ( !is_iomem_page(_mfn(op->frame)) )
{
if ( gnttab_host_mapping_get_page_type(op, ld, rd) )
put_page_type(pg);
{
BUG_ON(!(act->pin & GNTPIN_devr_mask));
act->pin -= GNTPIN_devr_inc;
- if ( !is_iomem_page(act->frame) )
+ if ( !is_iomem_page(_mfn(act->frame)) )
put_page(pg);
}
BUG_ON(!(act->pin & GNTPIN_hstr_mask));
act->pin -= GNTPIN_hstr_inc;
if ( gnttab_release_host_mappings(d) &&
- !is_iomem_page(act->frame) )
+ !is_iomem_page(_mfn(act->frame)) )
put_page(pg);
}
}
{
BUG_ON(!(act->pin & GNTPIN_devw_mask));
act->pin -= GNTPIN_devw_inc;
- if ( !is_iomem_page(act->frame) )
+ if ( !is_iomem_page(_mfn(act->frame)) )
put_page_and_type(pg);
}
BUG_ON(!(act->pin & GNTPIN_hstw_mask));
act->pin -= GNTPIN_hstw_inc;
if ( gnttab_release_host_mappings(d) &&
- !is_iomem_page(act->frame) )
+ !is_iomem_page(_mfn(act->frame)) )
{
if ( gnttab_host_mapping_get_page_type(map, d, rd) )
put_page_type(pg);
}
int get_page_type(struct page_info *page, unsigned long type);
-int is_iomem_page(unsigned long mfn);
+bool is_iomem_page(mfn_t mfn);
static inline int get_page_and_type(struct page_info *page,
struct domain *domain,
unsigned long type)
bool_t fill_ro_mpt(unsigned long mfn);
void zap_ro_mpt(unsigned long mfn);
-int is_iomem_page(unsigned long mfn);
+bool is_iomem_page(mfn_t mfn);
void clear_superpage_mark(struct page_info *page);