RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
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
34
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
va_tag
uint64_t va_tag
Definition
tte.h:4
v
unsigned v
Definition
tte.h:0
g
unsigned g
Definition
tte.h:0
soft2
unsigned soft2
Definition
tte.h:4
size
unsigned size
Definition
tte.h:1
p
unsigned p
Definition
tte.h:17
soft
unsigned soft
Definition
tte.h:12
nfo
unsigned nfo
Definition
tte.h:2
cp
unsigned cp
Definition
tte.h:14
e
unsigned e
Definition
tte.h:16
context
unsigned context
Definition
tte.h:2
w
unsigned w
Definition
tte.h:18
l
unsigned l
Definition
tte.h:13
cv
unsigned cv
Definition
tte.h:15
ie
unsigned ie
Definition
tte.h:3
tte_data
Definition
tte.h:71
tte_tag
Definition
tte.h:57
Generated by
1.18.0