xref: /netbsd/sys/arch/hppa/include/pte.h (revision c4a72b64)
1 /*	$NetBSD: pte.h,v 1.2 2002/08/11 22:29:09 fredette Exp $	*/
2 
3 /*	$OpenBSD: pte.h,v 1.8 2001/01/12 23:37:49 mickey Exp $	*/
4 
5 /*
6  * Copyright (c) 1990,1993,1994 The University of Utah and
7  * the Computer Systems Laboratory at the University of Utah (CSL).
8  * All rights reserved.
9  *
10  * Permission to use, copy, modify and distribute this software is hereby
11  * granted provided that (1) source code retains these copyright, permission,
12  * and disclaimer notices, and (2) redistributions including binaries
13  * reproduce the notices in supporting documentation, and (3) all advertising
14  * materials mentioning features or use of this software display the following
15  * acknowledgement: ``This product includes software developed by the
16  * Computer Systems Laboratory at the University of Utah.''
17  *
18  * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
19  * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
20  * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
21  *
22  * CSL requests users of this software to return to csl-dist@cs.utah.edu any
23  * improvements that they make and grant CSL redistribution rights.
24  *
25  * 	Utah $Hdr: pmap.h 1.24 94/12/14$
26  *	Author: Mike Hibler, Bob Wheeler, University of Utah CSL, 9/90
27  */
28 
29 #ifndef	_HPPA_PTE_H_
30 #define	_HPPA_PTE_H_
31 
32 /* TLB access/protection values */
33 #define TLB_REF		0x80000000	/* software/HPT only */
34 #define TLB_NO_RW_ALIAS	0x40000000	/* software only */
35 #define TLB_TRAP	0x20000000
36 #define TLB_DIRTY	0x10000000
37 #define TLB_BREAK	0x08000000
38 #define TLB_AR_MASK	0x07f00000
39 #define		TLB_AR_NA	0x07300000
40 #define		TLB_AR_KR	0x00000000
41 #define		TLB_AR_KRW	0x01000000
42 #define		TLB_AR_KRX	0x02000000
43 #define		TLB_AR_KRWX	0x03000000
44 #define		TLB_AR_UR	0x00f00000
45 #define		TLB_AR_URW	0x01f00000
46 #define		TLB_AR_URX	0x02f00000
47 #define		TLB_AR_URWX	0x03f00000
48 #define		TLB_AR_WRITABLE(x) (((x) & 0x05000000) == 0x01000000)
49 #define TLB_UNCACHEABLE	0x00080000
50 #define TLB_UNMANAGED	0x00040000	/* software only */
51 #define TLB_PID_MASK	0x0000fffe
52 #define TLB_WIRED	0x00000001	/* software only */
53 
54 #define	TLB_BITS	"\020\024U\031W\032X\033N\034B\035D\036T\037A\040R"
55 
56 #define TLB_REF_POS		0
57 #define TLB_NO_RW_ALIAS_POS	1
58 #define TLB_TRAP_POS		2
59 #define TLB_DIRTY_POS		3
60 #define TLB_BREAK_POS		4
61 #define TLB_UNCACHEABLE_POS	12
62 #define TLB_UNMANAGED_POS	13
63 #define TLB_WIRED_POS		31
64 
65 /* protection for a gateway page */
66 #define TLB_GATE_PROT	0x04c00000
67 
68 /* protection for break page */
69 #define TLB_BREAK_PROT	0x02c00000
70 
71 #endif	/* _HPPA_PTE_H_ */
72