RTEMS
6.1-rc1
bsps
sparc64
include
arch
mm
sun4u
tte.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2005 Jakub Jermar
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* - Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
* - Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in the
13
* documentation and/or other materials provided with the distribution.
14
* - The name of the author may not be used to endorse or promote products
15
* derived from this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
*/
28
35
#ifndef KERN_sparc64_sun4u_TTE_H_
36
#define KERN_sparc64_sun4u_TTE_H_
37
38
#define TTE_G (1 << 0)
39
#define TTE_W (1 << 1)
40
#define TTE_P (1 << 2)
41
#define TTE_E (1 << 3)
42
#define TTE_CV (1 << 4)
43
#define TTE_CP (1 << 5)
44
#define TTE_L (1 << 6)
45
46
#define TTE_V_SHIFT 63
47
#define TTE_SIZE_SHIFT 61
48
49
#ifndef __ASM__
50
51
#include <arch/types.h>
52
53
/* TTE tag's VA_tag field contains bits <63:VA_TAG_PAGE_SHIFT> of the VA */
54
#define VA_TAG_PAGE_SHIFT 22
55
57
union
tte_tag
{
58
uint64_t value;
59
struct
{
60
unsigned
g
: 1;
61
unsigned : 2;
62
unsigned
context
: 13;
63
unsigned : 6;
64
uint64_t
va_tag
: 42;
65
}
__attribute__
((packed));
66
};
67
68
typedef
union
tte_tag
tte_tag_t
;
69
71
union
tte_data
{
72
uint64_t value;
73
struct
{
74
unsigned
v
: 1;
75
unsigned
size
: 2;
76
unsigned
nfo
: 1;
77
unsigned
ie
: 1;
78
unsigned
soft2
: 9;
79
#if defined (US)
80
unsigned
diag : 9;
81
unsigned
pfn : 28;
82
#elif defined (US3)
83
unsigned : 7;
84
unsigned
pfn : 30;
85
#endif
86
unsigned
soft
: 6;
87
unsigned
l
: 1;
88
unsigned
cp
: 1;
89
unsigned
cv
: 1;
90
unsigned
e
: 1;
91
unsigned
p
: 1;
92
unsigned
w
: 1;
93
unsigned
g
: 1;
94
}
__attribute__
((packed));
95
};
96
97
typedef
union
tte_data
tte_data_t
;
98
99
#endif
/* !def __ASM__ */
100
101
#endif
102
__attribute__
Definition:
xnandpsu_onfi.h:181
tte_data
Definition:
tte.h:71
tte_data::size
unsigned size
Definition:
tte.h:75
tte_data::cp
unsigned cp
Definition:
tte.h:88
tte_data::nfo
unsigned nfo
Definition:
tte.h:76
tte_data::w
unsigned w
Definition:
tte.h:92
tte_data::g
unsigned g
Definition:
tte.h:93
tte_data::l
unsigned l
Definition:
tte.h:87
tte_data::cv
unsigned cv
Definition:
tte.h:89
tte_data::v
unsigned v
Definition:
tte.h:74
tte_data::p
unsigned p
Definition:
tte.h:91
tte_data::e
unsigned e
Definition:
tte.h:90
tte_data::soft2
unsigned soft2
Definition:
tte.h:78
tte_data::ie
unsigned ie
Definition:
tte.h:77
tte_data::soft
unsigned soft
Definition:
tte.h:86
tte_tag
Definition:
tte.h:57
tte_tag::context
unsigned context
Definition:
tte.h:62
tte_tag::g
unsigned g
Definition:
tte.h:60
tte_tag::va_tag
uint64_t va_tag
Definition:
tte.h:64
Generated by
1.9.4