-
Notifications
You must be signed in to change notification settings - Fork 11
/
psp-dev-x86-mem.c
78 lines (64 loc) · 1.94 KB
/
psp-dev-x86-mem.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/** @file
* PSP Emulator - x86 memory regions present in the system (secure DRAM, etc.).
*/
/*
* Copyright (C) 2020 Alexander Eichner <alexander.eichner@campus.tu-berlin.de>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <common/cdefs.h>
#include <psp-devs.h>
/**
* x86 memory device instance data.
*/
typedef struct PSPDEVX86MEM
{
/** Pointer to the owning device instance. */
PPSPDEV pDev;
/** Secure DRAM region handle. */
PSPIOMREGIONHANDLE hMemSecureDram;
} PSPDEVX86MEM;
/** Pointer to the device instance data. */
typedef PSPDEVX86MEM *PPSPDEVX86MEM;
static int pspDevX86MemInit(PPSPDEV pDev)
{
PPSPDEVX86MEM pThis = (PPSPDEVX86MEM)&pDev->abInstance[0];
pThis->pDev = pDev;
/* Register secure DRAM ranges. */
int rc = PSPEmuIoMgrX86MemRegister(pDev->hIoMgr, 0xfffdf8000000, 64 * _1M, true /*fCanExec*/,
NULL /*pfnFetch*/, NULL,
"SecureDram", &pThis->hMemSecureDram);
return rc;
}
static void pspDevX86MemDestruct(PPSPDEV pDev)
{
/* Nothing to do so far. */
}
/**
* Device registration structure.
*/
const PSPDEVREG g_DevRegX86Mem =
{
/** pszName */
"x86-mem",
/** pszDesc */
"x86 memory",
/** cbInstance */
sizeof(PSPDEVX86MEM),
/** pfnInit */
pspDevX86MemInit,
/** pfnDestruct */
pspDevX86MemDestruct,
/** pfnReset */
NULL
};