1*4cc5b607Sskrll /* $NetBSD: pte.h,v 1.5 2019/04/16 12:25:17 skrll Exp $ */ 2f4f0d8a3Sfredette 38516d557Sskrll /* $OpenBSD: pte.h,v 1.11 2002/09/05 18:41:19 mickey Exp $ */ 4f4f0d8a3Sfredette 5f4f0d8a3Sfredette /* 6f4f0d8a3Sfredette * Copyright (c) 1990,1993,1994 The University of Utah and 7f4f0d8a3Sfredette * the Computer Systems Laboratory at the University of Utah (CSL). 8f4f0d8a3Sfredette * All rights reserved. 9f4f0d8a3Sfredette * 10f4f0d8a3Sfredette * Permission to use, copy, modify and distribute this software is hereby 11f4f0d8a3Sfredette * granted provided that (1) source code retains these copyright, permission, 12f4f0d8a3Sfredette * and disclaimer notices, and (2) redistributions including binaries 13f4f0d8a3Sfredette * reproduce the notices in supporting documentation, and (3) all advertising 14f4f0d8a3Sfredette * materials mentioning features or use of this software display the following 15f4f0d8a3Sfredette * acknowledgement: ``This product includes software developed by the 16f4f0d8a3Sfredette * Computer Systems Laboratory at the University of Utah.'' 17f4f0d8a3Sfredette * 18f4f0d8a3Sfredette * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS 19f4f0d8a3Sfredette * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF 20f4f0d8a3Sfredette * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 21f4f0d8a3Sfredette * 22f4f0d8a3Sfredette * CSL requests users of this software to return to csl-dist@cs.utah.edu any 23f4f0d8a3Sfredette * improvements that they make and grant CSL redistribution rights. 24f4f0d8a3Sfredette * 25f4f0d8a3Sfredette * Utah $Hdr: pmap.h 1.24 94/12/14$ 26f4f0d8a3Sfredette * Author: Mike Hibler, Bob Wheeler, University of Utah CSL, 9/90 27f4f0d8a3Sfredette */ 28f4f0d8a3Sfredette 29f4f0d8a3Sfredette #ifndef _HPPA_PTE_H_ 30f4f0d8a3Sfredette #define _HPPA_PTE_H_ 31f4f0d8a3Sfredette 328516d557Sskrll typedef uint32_t pt_entry_t; 338516d557Sskrll 348516d557Sskrll #define PTE_PROT_SHIFT 19 358516d557Sskrll #define PTE_PROT(tlb) ((tlb) >> PTE_PROT_SHIFT) 368516d557Sskrll #define TLB_PROT(pte) ((pte) << PTE_PROT_SHIFT) 378516d557Sskrll #define PDE_MASK (0xffc00000) 388516d557Sskrll #define PDE_SIZE (0x00400000) 398516d557Sskrll #define PTE_MASK (0x003ff000) 408516d557Sskrll #define PTE_PAGE(pte) ((pte) & ~PGOFSET) 418516d557Sskrll 42f4f0d8a3Sfredette /* TLB access/protection values */ 4315b38a38Sskrll /* 0x80000000 has no pt_entry_t equivalent */ 448516d557Sskrll #define TLB_WIRED 0x40000000 /* software only */ 458516d557Sskrll #define TLB_REFTRAP 0x20000000 /* bit 2, T */ 468516d557Sskrll #define TLB_DIRTY 0x10000000 /* bit 3, D */ 478516d557Sskrll #define TLB_BREAK 0x08000000 /* bit 4, B */ 488516d557Sskrll #define TLB_AR_MASK 0x07f00000 /* bits 5-11, Access Rights */ 498516d557Sskrll #define TLB_READ 0x00000000 508516d557Sskrll #define TLB_WRITE 0x01000000 518516d557Sskrll #define TLB_EXECUTE 0x02000000 528516d557Sskrll #define TLB_GATEWAY 0x04000000 538516d557Sskrll #define TLB_USER 0x00f00000 54f4f0d8a3Sfredette #define TLB_AR_NA 0x07300000 558516d557Sskrll #define TLB_AR_R TLB_READ 568516d557Sskrll #define TLB_AR_RW TLB_READ|TLB_WRITE 578516d557Sskrll #define TLB_AR_RX TLB_READ|TLB_EXECUTE 588516d557Sskrll #define TLB_AR_RWX TLB_READ|TLB_WRITE|TLB_EXECUTE 598516d557Sskrll #define TLB_UNCACHEABLE 0x00080000 /* bit 12, U */ 608516d557Sskrll /* bit 13-30, Access ID */ 61f4f0d8a3Sfredette #define TLB_PID_MASK 0x0000fffe 6215b38a38Sskrll /* 0x00000001 has no pt_entry_t equivalent */ 63f4f0d8a3Sfredette 648516d557Sskrll #define TLB_BITS \ 658516d557Sskrll "\177\020" /* New bitmask */ \ 6615b38a38Sskrll "b\036wired\0" /* bit 30 (1) */ \ 678516d557Sskrll "b\035T\0" /* bit 29 (2) */ \ 688516d557Sskrll "b\034D\0" /* bit 28 (3) */ \ 698516d557Sskrll "b\033B\0" /* bit 27 (4) */ \ 708516d557Sskrll "b\023U\0" /* bit 19 (12) */ \ 7115b38a38Sskrll "f\024\07ar\0" /* bit 20 (11) .. 26 (5) */ \ 728516d557Sskrll "=\x73" "------\0" \ 738516d557Sskrll "=\x00" "r-----\0" \ 748516d557Sskrll "=\x10" "rw----\0" \ 758516d557Sskrll "=\x20" "r-x---\0" \ 768516d557Sskrll "=\x30" "rwx---\0" \ 778516d557Sskrll "=\x0f" "r--r--\0" \ 788516d557Sskrll "=\x1f" "rw-rw-\0" \ 798516d557Sskrll "=\x2f" "r-xr-x\0" \ 808516d557Sskrll "=\x3f" "rwxrwx\0" \ 818516d557Sskrll "=\x4c" "gate\0" \ 828516d557Sskrll "=\x2c" "break\0" \ 8315b38a38Sskrll "f\001\017pid\0\0" /* bit 1 (30) .. 15 (16) */ 84f4f0d8a3Sfredette 85f4f0d8a3Sfredette /* protection for a gateway page */ 86f4f0d8a3Sfredette #define TLB_GATE_PROT 0x04c00000 87f4f0d8a3Sfredette 88f4f0d8a3Sfredette /* protection for break page */ 89f4f0d8a3Sfredette #define TLB_BREAK_PROT 0x02c00000 90f4f0d8a3Sfredette 91f4f0d8a3Sfredette #endif /* _HPPA_PTE_H_ */ 92