}
}
- BUG_ON(!lpae_valid(*entry));
+ BUG_ON(!lpae_is_valid(*entry));
third = __mfn_to_virt(entry->pt.base);
entry = &third[third_table_offset(addr)];
switch ( op ) {
case INSERT:
case RESERVE:
- if ( lpae_valid(*entry) )
+ if ( lpae_is_valid(*entry) )
{
printk("%s: trying to replace an existing mapping addr=%lx mfn=%"PRI_mfn"\n",
__func__, addr, mfn_x(mfn));
break;
case MODIFY:
case REMOVE:
- if ( !lpae_valid(*entry) )
+ if ( !lpae_is_valid(*entry) )
{
printk("%s: trying to %s a non-existing mapping addr=%lx\n",
__func__, op == REMOVE ? "remove" : "modify", addr);
entry = *table + offset;
- if ( !lpae_valid(*entry) )
+ if ( !lpae_is_valid(*entry) )
{
if ( read_only )
return GUEST_TABLE_MAP_FAILED;
entry = table[offsets[level]];
- if ( lpae_valid(entry) )
+ if ( lpae_is_valid(entry) )
{
*t = entry.p2m.type;
lpae_t *p;
lpae_t pte;
- ASSERT(!lpae_valid(*entry));
+ ASSERT(!lpae_is_valid(*entry));
page = alloc_domheap_page(NULL, 0);
if ( page == NULL )
*/
static void p2m_put_l3_page(const lpae_t pte)
{
- ASSERT(lpae_valid(pte));
+ ASSERT(lpae_is_valid(pte));
/*
* TODO: Handle other p2m types
struct page_info *pg;
/* Nothing to do if the entry is invalid. */
- if ( !lpae_valid(entry) )
+ if ( !lpae_is_valid(entry) )
return;
/* Nothing to do but updating the stats if the entry is a super-page. */
* sequence when updating the translation table (D4.7.1 in ARM DDI
* 0487A.j).
*/
- if ( lpae_valid(orig_pte) )
+ if ( lpae_is_valid(orig_pte) )
p2m_remove_pte(entry, p2m->clean_pte);
if ( mfn_eq(smfn, INVALID_MFN) )
/* Flush can be deferred if the entry is removed */
- p2m->need_flush |= !!lpae_valid(orig_pte);
+ p2m->need_flush |= !!lpae_is_valid(orig_pte);
else
{
lpae_t pte = mfn_to_p2m_entry(smfn, t, a);
* Although, it could be defered when only the permissions are
* changed (e.g in case of memaccess).
*/
- if ( lpae_valid(orig_pte) )
+ if ( lpae_is_valid(orig_pte) )
{
if ( likely(!p2m->mem_access_enabled) ||
P2M_CLEAR_PERM(pte) != P2M_CLEAR_PERM(orig_pte) )
* Free the entry only if the original pte was valid and the base
* is different (to avoid freeing when permission is changed).
*/
- if ( lpae_valid(orig_pte) && entry->p2m.base != orig_pte.p2m.base )
+ if ( lpae_is_valid(orig_pte) && entry->p2m.base != orig_pte.p2m.base )
p2m_free_entry(p2m, orig_pte, level);
if ( need_iommu(p2m->domain) &&
- (lpae_valid(orig_pte) || lpae_valid(*entry)) )
+ (lpae_is_valid(orig_pte) || lpae_is_valid(*entry)) )
rc = iommu_iotlb_flush(p2m->domain, gfn_x(sgfn), 1UL << page_order);
else
rc = 0;
lpae_walk_t walk;
} lpae_t;
-static inline bool lpae_valid(lpae_t pte)
+static inline bool lpae_is_valid(lpae_t pte)
{
return pte.walk.valid;
}
static inline bool lpae_is_table(lpae_t pte, unsigned int level)
{
- return (level < 3) && lpae_valid(pte) && pte.walk.table;
+ return (level < 3) && lpae_is_valid(pte) && pte.walk.table;
}
static inline bool lpae_is_mapping(lpae_t pte, unsigned int level)
{
- if ( !lpae_valid(pte) )
+ if ( !lpae_is_valid(pte) )
return false;
else if ( level == 3 )
return pte.walk.table;
static inline bool lpae_is_page(lpae_t pte, unsigned int level)
{
- return (level == 3) && lpae_valid(pte) && pte.walk.table;
+ return (level == 3) && lpae_is_valid(pte) && pte.walk.table;
}
/*