Home | History | Annotate | Line # | Download | only in include
pte.h revision 1.2.14.1
      1  1.2.14.1   skrll /*	$NetBSD: pte.h,v 1.2.14.1 2016/10/05 20:55:29 skrll 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.2.14.1   skrll  * $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.2.14.1   skrll 	pt_entry_t	pte;
     78  1.2.14.1   skrll 	uint64_t	itir;
     79  1.2.14.1   skrll 	uint64_t	tag;		/* includes ti */
     80  1.2.14.1   skrll 	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