* Fix up head later.
*/
pv_h->pmap = PMAP_NULL;
+
+ pmap_phys_attributes[pai] &= ~PHYS_NOENCRYPT;
} else {
/*
* Delete this entry.
mappingrecurse = 0;
}
+
+boolean_t
+pmap_is_noencrypt(ppnum_t pn)
+{
+ int pai;
+
+ pai = ppn_to_pai(pn);
+
+ if (!IS_MANAGED_PAGE(pai))
+ return (TRUE);
+
+ if (pmap_phys_attributes[pai] & PHYS_NOENCRYPT)
+ return (TRUE);
+
+ return (FALSE);
+}
+
+
+void
+pmap_set_noencrypt(ppnum_t pn)
+{
+ int pai;
+
+ pai = ppn_to_pai(pn);
+
+ if (IS_MANAGED_PAGE(pai)) {
+ LOCK_PVH(pai);
+
+ pmap_phys_attributes[pai] |= PHYS_NOENCRYPT;
+
+ UNLOCK_PVH(pai);
+ }
+}
+
+
+void
+pmap_clear_noencrypt(ppnum_t pn)
+{
+ int pai;
+
+ pai = ppn_to_pai(pn);
+
+ if (IS_MANAGED_PAGE(pai)) {
+ LOCK_PVH(pai);
+
+ pmap_phys_attributes[pai] &= ~PHYS_NOENCRYPT;
+
+ UNLOCK_PVH(pai);
+ }
+}
+