FreeNOS
lib
libarch
arm64
ARM64Exception.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2025 Ivan Tan
3
* Copyright (C) 2015 Niek Linnenbank
4
*
5
* This program is free software: you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation, either version 3 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
#include <
MemoryBlock.h
>
20
#include "
ARM64Exception.h
"
21
#include "
ARM64Control.h
"
22
#include <
Log.h
>
23
#include <
String.h
>
24
25
extern
Address
vecTable
[],
handlerTable
[];
26
27
ARM64Exception::ARM64Exception
()
28
: m_vecTable((
Address
)
vecTable
)
29
{
30
ARM64Control::write
(
ARM64Control::VectorBaseAddress
,
m_vecTable
);
31
}
32
33
ARM64Exception::Result
ARM64Exception::install
(
34
ARM64Exception::ExceptionType
vector,
35
ARM64Exception::Handler
handler)
36
{
37
handlerTable
[vector] = (
Address
) handler;
38
return
Success
;
39
}
ARM64Control.h
vecTable
Address vecTable[]
handlerTable
Address handlerTable[]
Definition
ARM64Exception.cpp:25
ARM64Exception.h
handlerTable
Address handlerTable
Definition
ARMException.cpp:23
Log.h
MemoryBlock.h
String.h
ARM64Exception::Result
Result
Result codes.
Definition
ARM64Exception.h:76
ARM64Exception::Success
@ Success
Definition
ARM64Exception.h:77
ARM64Exception::ExceptionType
ExceptionType
ARM64 exception types.
Definition
ARM64Exception.h:53
ARM64Exception::m_vecTable
Address m_vecTable
ARM64 exception vector jump table.
Definition
ARM64Exception.h:120
ARM64Exception::install
Result install(ExceptionType vector, Handler handler)
Install an exception handler.
Definition
ARM64Exception.cpp:33
ARM64Exception::Handler
void Handler(struct CPUState state)
Function which is called when the CPU is interrupted.
Definition
ARM64Exception.h:87
ARM64Exception::ARM64Exception
ARM64Exception()
Constructor.
Definition
ARM64Exception.cpp:27
Address
unsigned long Address
A memory address.
Definition
Types.h:131
ARM64Control::write
void write(Register reg, u64 value)
Write register to the CP15.
Definition
ARM64Control.cpp:62
ARM64Control::VectorBaseAddress
@ VectorBaseAddress
Definition
ARM64Control.h:82
Generated by
1.9.8