Home | History | Annotate | Line # | Download | only in include
      1  1.4   scole /*	$NetBSD: pte.h,v 1.4 2016/08/08 17:20:17 scole Exp $	*/
      2  1.1  cherry 
      3  1.1  cherry /*-
      4  1.1  cherry  * Copyright (c) 2001 Doug Rabson
      5  1.1  cherry  * All rights reserved.
      6  1.1  cherry  *
      7  1.1  cherry  * Redistribution and use in source and binary forms, with or without
      8  1.1  cherry  * modification, are permitted provided that the following conditions
      9  1.1  cherry  * are met:
     10  1.1  cherry  * 1. Redistributions of source code must retain the above copyright
     11  1.1  cherry  *    notice, this list of conditions and the following disclaimer.
     12  1.1  cherry  * 2. Redistributions in binary form must reproduce the above copyright
     13  1.1  cherry  *    notice, this list of conditions and the following disclaimer in the
     14  1.1  cherry  *    documentation and/or other materials provided with the distribution.
     15  1.1  cherry  *
     16  1.1  cherry  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
     17  1.1  cherry  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     18  1.1  cherry  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     19  1.1  cherry  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
     20  1.1  cherry  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     21  1.1  cherry  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     22  1.1  cherry  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     23  1.1  cherry  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     24  1.1  cherry  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     25  1.1  cherry  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     26  1.1  cherry  * SUCH DAMAGE.
     27  1.1  cherry  *
     28  1.3   scole  * $FreeBSD: releng/10.1/sys/ia64/include/pte.h 137978 2004-11-21 21:40:08Z marcel $
     29  1.1  cherry  */
     30  1.1  cherry 
     31  1.1  cherry #ifndef _MACHINE_PTE_H_
     32  1.1  cherry #define	_MACHINE_PTE_H_
     33  1.1  cherry 
     34  1.1  cherry #define	PTE_PRESENT	0x0000000000000001
     35  1.1  cherry #define	PTE__RV1_	0x0000000000000002
     36  1.1  cherry #define	PTE_MA_MASK	0x000000000000001C
     37  1.1  cherry #define	PTE_MA_WB	0x0000000000000000
     38  1.1  cherry #define	PTE_MA_UC	0x0000000000000010
     39  1.1  cherry #define	PTE_MA_UCE	0x0000000000000014
     40  1.1  cherry #define	PTE_MA_WC	0x0000000000000018
     41  1.1  cherry #define	PTE_MA_NATPAGE	0x000000000000001C
     42  1.1  cherry #define	PTE_ACCESSED	0x0000000000000020
     43  1.1  cherry #define	PTE_DIRTY	0x0000000000000040
     44  1.1  cherry #define	PTE_PL_MASK	0x0000000000000180
     45  1.1  cherry #define	PTE_PL_KERN	0x0000000000000000
     46  1.1  cherry #define	PTE_PL_USER	0x0000000000000180
     47  1.1  cherry #define	PTE_AR_MASK	0x0000000000000E00
     48  1.1  cherry #define	PTE_AR_R	0x0000000000000000
     49  1.1  cherry #define	PTE_AR_RX	0x0000000000000200
     50  1.1  cherry #define	PTE_AR_RW	0x0000000000000400
     51  1.1  cherry #define	PTE_AR_RWX	0x0000000000000600
     52  1.1  cherry #define	PTE_AR_R_RW	0x0000000000000800
     53  1.1  cherry #define	PTE_AR_RX_RWX	0x0000000000000A00
     54  1.1  cherry #define	PTE_AR_RWX_RW	0x0000000000000C00
     55  1.1  cherry #define	PTE_AR_X_RX	0x0000000000000E00
     56  1.1  cherry #define	PTE_PPN_MASK	0x0003FFFFFFFFF000
     57  1.1  cherry #define	PTE__RV2_	0x000C000000000000
     58  1.1  cherry #define	PTE_ED		0x0010000000000000
     59  1.1  cherry #define	PTE_IG_MASK	0xFFE0000000000000
     60  1.1  cherry #define	PTE_WIRED	0x0020000000000000
     61  1.1  cherry #define	PTE_MANAGED	0x0040000000000000
     62  1.1  cherry #define	PTE_PROT_MASK	0x0700000000000000
     63  1.1  cherry 
     64  1.1  cherry #define	ITIR__RV1_	0x0000000000000003
     65  1.1  cherry #define	ITIR_PS_MASK	0x00000000000000FC
     66  1.1  cherry #define	ITIR_KEY_MASK	0x00000000FFFFFF00
     67  1.1  cherry #define	ITIR__RV2_	0xFFFFFFFF00000000
     68  1.1  cherry 
     69  1.1  cherry #ifndef _LOCORE
     70  1.1  cherry 
     71  1.1  cherry typedef uint64_t pt_entry_t;
     72  1.1  cherry 
     73  1.1  cherry /*
     74  1.1  cherry  * A long-format VHPT entry.
     75  1.1  cherry  */
     76  1.1  cherry struct ia64_lpte {
     77  1.4   scole 	pt_entry_t	pte;
     78  1.4   scole 	uint64_t	itir;
     79  1.4   scole 	uint64_t	tag;		/* includes ti */
     80  1.4   scole 	uint64_t	chain;		/* pa of collision chain */
     81  1.1  cherry };
     82  1.1  cherry 
     83  1.1  cherry /*
     84  1.1  cherry  * Layout of rr[x].
     85  1.1  cherry  */
     86  1.1  cherry struct ia64_rr {
     87  1.1  cherry 	uint64_t	rr_ve	:1;	/* bit 0 */
     88  1.1  cherry 	uint64_t	__rv1__	:1;	/* bit 1 */
     89  1.1  cherry 	uint64_t	rr_ps	:6;	/* bits 2..7 */
     90  1.1  cherry 	uint64_t	rr_rid	:24;	/* bits 8..31 */
     91  1.1  cherry 	uint64_t	__rv2__	:32;	/* bits 32..63 */
     92  1.1  cherry };
     93  1.1  cherry 
     94  1.1  cherry #endif /* !LOCORE */
     95  1.1  cherry 
     96  1.1  cherry #endif /* !_MACHINE_PTE_H_ */
     97