ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
Loading...
Searching...
No Matches
etiss
include
etiss
mm
PTEFormatBuilder.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: BSD-3-Clause
2
//
3
// This file is part of ETISS. It is licensed under the BSD 3-Clause License; you may not use this file except in
4
// compliance with the License. You should have received a copy of the license along with this project. If not, see the
5
// LICENSE file.
6
7
#ifndef ETISS_INCLUDE_MM_PTEFORMATBUILDER_H_
8
#define ETISS_INCLUDE_MM_PTEFORMATBUILDER_H_
9
10
#include <iostream>
11
#include <map>
12
#include <memory>
13
14
#include "
etiss/mm/PTEFormat.h
"
15
16
namespace
etiss
17
{
18
namespace
mm
19
{
20
24
class
PTEFormatBuilder
25
{
26
public
:
30
static
PTEFormatBuilder
&
Instance
()
31
{
32
static
std::shared_ptr<PTEFormatBuilder> builder(
new
PTEFormatBuilder
((
PTEFormat::Instance
())));
33
return
*builder;
34
}
35
39
PTEFormatBuilder
&
AddPPNBitField
(
uint32_t
begin,
uint32_t
end)
40
{
41
format_
.
AddBitField
(
"PPN"
, begin, end);
42
return
*
this
;
43
}
44
49
PTEFormatBuilder
&
AddPageOffset
(
uint32_t
begin,
uint32_t
end)
50
{
51
format_
.
AddBitField
(
"PAGEOFFSET"
, begin, end);
52
return
*
this
;
53
}
54
58
PTEFormatBuilder
&
AddFlag
(std::string name,
uint32_t
begin,
uint32_t
end)
59
{
60
format_
.
AddBitField
(name, begin, end);
61
return
*
this
;
62
}
63
67
PTEFormatBuilder
&
AddFlag
(std::string name,
uint32_t
pos)
68
{
69
format_
.
AddBitField
(name, pos, pos);
70
return
*
this
;
71
}
72
73
private
:
74
PTEFormatBuilder
(
PTEFormat
&format) :
format_
(format) {}
75
76
PTEFormat
&
format_
;
77
78
friend
class
PTEFormat
;
79
};
80
81
}
// namespace mm
82
}
// namespace etiss
83
84
#endif
PTEFormat.h
uint32_t
static __inline__ uint32_t
Definition
arm_cde.h:25
etiss::mm::PTEFormatBuilder
Sigleton builder utility to build up customized PTE format.
Definition
PTEFormatBuilder.h:25
etiss::mm::PTEFormatBuilder::AddPageOffset
PTEFormatBuilder & AddPageOffset(uint32_t begin, uint32_t end)
Add mandatory bit field for page size offset (Not included in PTE neither in PTE format)
Definition
PTEFormatBuilder.h:49
etiss::mm::PTEFormatBuilder::Instance
static PTEFormatBuilder & Instance()
Get the singleton instance.
Definition
PTEFormatBuilder.h:30
etiss::mm::PTEFormatBuilder::AddPPNBitField
PTEFormatBuilder & AddPPNBitField(uint32_t begin, uint32_t end)
Add mandatory bit field, Physical Page Number (PPN), for PTE.
Definition
PTEFormatBuilder.h:39
etiss::mm::PTEFormatBuilder::format_
PTEFormat & format_
Definition
PTEFormatBuilder.h:76
etiss::mm::PTEFormatBuilder::AddFlag
PTEFormatBuilder & AddFlag(std::string name, uint32_t pos)
Add optional bit field for protection flag in PTE.
Definition
PTEFormatBuilder.h:67
etiss::mm::PTEFormatBuilder::PTEFormatBuilder
PTEFormatBuilder(PTEFormat &format)
Definition
PTEFormatBuilder.h:74
etiss::mm::PTEFormatBuilder::AddFlag
PTEFormatBuilder & AddFlag(std::string name, uint32_t begin, uint32_t end)
Add optional bit field for protection flag in PTE.
Definition
PTEFormatBuilder.h:58
etiss::mm::PTEFormat
Definition
PTEFormat.h:29
etiss::mm::PTEFormat::Instance
static PTEFormat & Instance()
Get the singleton instance.
Definition
PTEFormat.h:34
etiss::mm::PTEFormat::AddBitField
void AddBitField(std::string name, uint32_t begin, uint32_t end)
Called only by PTEFormatBuilder.
Definition
PTEFormat.cpp:19
etiss
forwards: include/jit/*
Definition
Benchmark.h:17
Generated on Sat Nov 15 2025 19:30:10 for ETISS 0.11.2 by
1.9.8