17f4dd379Sjsg /* Public domain. */ 27f4dd379Sjsg 37f4dd379Sjsg #ifndef _ASM_PGTABLE_H 47f4dd379Sjsg #define _ASM_PGTABLE_H 57f4dd379Sjsg 67f4dd379Sjsg #include <machine/pmap.h> 77f4dd379Sjsg #include <machine/pte.h> 87f4dd379Sjsg #include <linux/types.h> 97f4dd379Sjsg 10*9f6b7c50Sjsg #define pgprot_val(p) (p) 11*9f6b7c50Sjsg #define pgprot_decrypted(p) (p) 127f4dd379Sjsg #define PAGE_KERNEL 0 137f4dd379Sjsg #define PAGE_KERNEL_IO 0 147f4dd379Sjsg 157f4dd379Sjsg static inline pgprot_t pgprot_writecombine(pgprot_t prot)167f4dd379Sjsgpgprot_writecombine(pgprot_t prot) 177f4dd379Sjsg { 187f4dd379Sjsg #if PMAP_WC != 0 197f4dd379Sjsg return prot | PMAP_WC; 207f4dd379Sjsg #else 217f4dd379Sjsg return prot | PMAP_NOCACHE; 227f4dd379Sjsg #endif 237f4dd379Sjsg } 247f4dd379Sjsg 257f4dd379Sjsg static inline pgprot_t pgprot_noncached(pgprot_t prot)267f4dd379Sjsgpgprot_noncached(pgprot_t prot) 277f4dd379Sjsg { 287f4dd379Sjsg #if PMAP_DEVICE != 0 297f4dd379Sjsg return prot | PMAP_DEVICE; 307f4dd379Sjsg #else 317f4dd379Sjsg return prot | PMAP_NOCACHE; 327f4dd379Sjsg #endif 337f4dd379Sjsg } 347f4dd379Sjsg 357f4dd379Sjsg #if defined(__i386__) || defined(__amd64__) 367f4dd379Sjsg #define _PAGE_PRESENT PG_V 377f4dd379Sjsg #define _PAGE_RW PG_RW 387f4dd379Sjsg #define _PAGE_PAT PG_PAT 397f4dd379Sjsg #define _PAGE_PWT PG_WT 407f4dd379Sjsg #define _PAGE_PCD PG_N 417f4dd379Sjsg #endif 427f4dd379Sjsg 437f4dd379Sjsg #endif 44