#include <kernel.h>
#include <ee_cop0_defs.h>
Go to the source code of this file.
|
int | PutTLBEntry (unsigned int PageMask, unsigned int EntryHi, unsigned int EntryLo0, unsigned int EntryLo1) |
|
int | SetTLBEntry (unsigned int index, unsigned int PageMask, unsigned int EntryHi, unsigned int EntryLo0, unsigned int EntryLo1) |
|
int | GetTLBEntry (unsigned int index, unsigned int *PageMask, unsigned int *EntryHi, unsigned int *EntryLo0, unsigned int *EntryLo1) |
|
int | ProbeTLBEntry (unsigned int EntryHi, unsigned int *PageMask, unsigned int *EntryLo0, unsigned int *EntryLo1) |
|
int | ExpandScratchPad (unsigned int page) |
|
int | _start (int syscall) |
|
◆ _start()
int _start |
( |
int |
syscall | ) |
|
◆ ExpandScratchPad()
int ExpandScratchPad |
( |
unsigned int |
page | ) |
|
Definition at line 163 of file tlbsrc.c.
165 unsigned int PageMask, EntryHi, EntryLo0, EntryLo1;
171 EntryHi=0xE0010000+((
index-1)<<13);
173 __asm
volatile(
"mfc0 $v0, $6\n"
174 "addiu $v0, $v0, 0xFFFF\n"
183 "sync.p\n" ::
"r"(
index),
"r"(EntryHi));
186 __asm
volatile(
"mfc0 %0, $6\n"
188 "mtc0 $v0, $6\n" ::
"r"(
index));
200 EntryLo0=((page+0x1000)&0xFFFFF000)>>6|0x1F;
201 EntryLo1=(page&0xFFFFF000)>>6|0x1F;
203 __asm
volatile(
"mtc0 %0, $0\n"
204 "daddu $v1, $zero, $zero\n"
211 "sync.p\n" ::
"r"(
index),
"r"(EntryHi),
"r"(EntryLo0),
"r"(EntryLo1));
int ProbeTLBEntry(unsigned int EntryHi, unsigned int *PageMask, unsigned int *EntryLo0, unsigned int *EntryLo1)
References index, ProbeTLBEntry(), and result.
◆ GetTLBEntry()
int GetTLBEntry |
( |
unsigned int |
index, |
|
|
unsigned int * |
PageMask, |
|
|
unsigned int * |
EntryHi, |
|
|
unsigned int * |
EntryLo0, |
|
|
unsigned int * |
EntryLo1 |
|
) |
| |
Definition at line 111 of file tlbsrc.c.
115 __asm
volatile(
"mtc0 %0, $0\n"
126 "sw $v0, (%4)\n" ::
"r"(
index),
"r"(PageMask),
"r"(EntryHi),
"r"(EntryLo0),
"r"(EntryLo1));
References index, and result.
◆ ProbeTLBEntry()
int ProbeTLBEntry |
( |
unsigned int |
EntryHi, |
|
|
unsigned int * |
PageMask, |
|
|
unsigned int * |
EntryLo0, |
|
|
unsigned int * |
EntryLo1 |
|
) |
| |
Definition at line 136 of file tlbsrc.c.
139 __asm
volatile(
"mtc0 %1, $10\n"
143 "mfc0 %0, $0\n" :
"=r"(
index):
"r"(EntryHi));
146 __asm
volatile(
"tlbr\n"
153 "sw $v0, (%2)\n" ::
"r"(PageMask),
"r"(EntryLo0),
"r"(EntryLo1));
References index, and result.
Referenced by ExpandScratchPad().
◆ PutTLBEntry()
int PutTLBEntry |
( |
unsigned int |
PageMask, |
|
|
unsigned int |
EntryHi, |
|
|
unsigned int |
EntryLo0, |
|
|
unsigned int |
EntryLo1 |
|
) |
| |
Definition at line 61 of file tlbsrc.c.
69 __asm
volatile(
"mtc0 %1, $5\n"
78 "mfc0 %0, $0\n" :
"=r"(
result):
"r"(PageMask),
"r"(EntryHi),
"r"(EntryLo0),
"r"(EntryLo1));
References result.
◆ SetTLBEntry()
int SetTLBEntry |
( |
unsigned int |
index, |
|
|
unsigned int |
PageMask, |
|
|
unsigned int |
EntryHi, |
|
|
unsigned int |
EntryLo0, |
|
|
unsigned int |
EntryLo1 |
|
) |
| |
Definition at line 90 of file tlbsrc.c.
94 __asm
volatile(
"mtc0 %0, $0\n"
101 "sync.p\n" ::
"r"(
index),
"r"(PageMask),
"r"(EntryHi),
"r"(EntryLo0),
"r"(EntryLo1));
References index, and result.
◆ _kExecArg
char* _kExecArg[] = {NULL} |
◆ SyscallPatchData
Initial value:={
}
int GetTLBEntry(unsigned int index, unsigned int *PageMask, unsigned int *EntryHi, unsigned int *EntryLo0, unsigned int *EntryLo1)
int PutTLBEntry(unsigned int PageMask, unsigned int EntryHi, unsigned int EntryLo0, unsigned int EntryLo1)
int SetTLBEntry(unsigned int index, unsigned int PageMask, unsigned int EntryHi, unsigned int EntryLo0, unsigned int EntryLo1)
int ExpandScratchPad(unsigned int page)
Definition at line 34 of file tlbsrc.c.