mirror of
https://github.com/PCSX2/pcsx2-sourceforge.git
synced 2026-02-04 03:11:18 +01:00
fps2bios: more work on the EE kernel
This commit is contained in:
@@ -42,7 +42,7 @@ all: eeload
|
||||
|
||||
LDFLAGS = -L$(PS2LIB)/ee/lib
|
||||
LDADD = -lmc -lpad -lc -lkernel
|
||||
OBJECTS = eeirq.o eedata.o eekernel.o eeinit.o eeelf.o eedebug.o romdir.o
|
||||
OBJECTS = eeirq.o eedata.o eekernel.o eeinit.o eeload.o eeelf.o eedebug.o romdir.o
|
||||
|
||||
eeload: $(OBJECTS)
|
||||
$(EELD) -Wl,--oformat,binary,--Map,eeload.map -T linkfile $(EECFLAGS) $(OBJECTS) $(LDFLAGS) $(LDADD) -o ../../build/EELOAD
|
||||
|
||||
@@ -16,8 +16,14 @@ u128 SavedRA __attribute((aligned(16)));
|
||||
u128 SavedAT __attribute((aligned(16)));
|
||||
u64 SavedT9 __attribute((aligned(16)));
|
||||
|
||||
u32 excepRA=0;
|
||||
u32 excepSP=0;
|
||||
u32 _CpuConfig_0(u32);
|
||||
u32 _CpuConfig_1(u32);
|
||||
u32 _CpuConfig_2(u32);
|
||||
u32 _CpuConfig_3(u32);
|
||||
u32 _CpuConfig_4(u32);
|
||||
u32 _CpuConfig_5(u32);
|
||||
u32 (*table_CpuConfig[6])(u32) = {_CpuConfig_0, _CpuConfig_1, _CpuConfig_2,
|
||||
_CpuConfig_3, _CpuConfig_4, _CpuConfig_5};
|
||||
|
||||
u32 dmac_CHCR[10] = {
|
||||
0xB0008000,
|
||||
@@ -85,14 +91,14 @@ void (*table_SYSCALL[0x80])() = {
|
||||
(void (*))__DisableIntc,
|
||||
(void (*))__EnableDmac,
|
||||
(void (*))__DisableDmac,
|
||||
(void (*))__SetAlarm, // 0x18
|
||||
(void (*))__ReleaseAlarm,
|
||||
(void (*))_SetAlarm, // 0x18
|
||||
(void (*))_ReleaseAlarm,
|
||||
(void (*))__EnableIntc,
|
||||
(void (*))__DisableIntc,
|
||||
(void (*))__EnableDmac, // 0x1C
|
||||
(void (*))__DisableDmac,
|
||||
(void (*))__SetAlarm,
|
||||
(void (*))__ReleaseAlarm,
|
||||
(void (*))_SetAlarm,
|
||||
(void (*))_ReleaseAlarm,
|
||||
(void (*))_CreateThread, // 0x20
|
||||
(void (*))_DeleteThread,
|
||||
(void (*))_StartThread,
|
||||
@@ -134,7 +140,7 @@ void (*table_SYSCALL[0x80])() = {
|
||||
(void (*))_PollSema,
|
||||
(void (*))_ReferSemaStatus,
|
||||
(void (*))_ReferSemaStatus,
|
||||
(void (*))_RFU073,
|
||||
(void (*))_iDeleteSema,
|
||||
(void (*))_SetOsdConfigParam,
|
||||
(void (*))_GetOsdConfigParam,
|
||||
(void (*))_GetGsHParam,
|
||||
@@ -168,11 +174,11 @@ void (*table_SYSCALL[0x80])() = {
|
||||
(void (*))_FlushCache,
|
||||
(void (*))_105,
|
||||
(void (*))_CpuConfig,
|
||||
(void (*))_sceSifStopDma, //_sceSifStopDma,
|
||||
(void (*))_SifStopDma, //_sceSifStopDma,
|
||||
(void (*))_SetCPUTimerHandler,
|
||||
(void (*))_SetCPUTimer,
|
||||
(void (*))0,
|
||||
(void (*))0,
|
||||
(void (*))0,//_SetOsdConfigParam2,
|
||||
(void (*))0,//_GetOsdConfigParam2,
|
||||
(void (*))_GsGetIMR, // 0x70
|
||||
(void (*))_GsPutIMR,
|
||||
(void (*))_SetPgifHandler,
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
#include <tamtypes.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "eeload.h"
|
||||
#include "eekernel.h"
|
||||
#include "eeirq.h"
|
||||
|
||||
void InitializeGS();
|
||||
void InitializeGIF();
|
||||
@@ -235,7 +236,7 @@ void InitializeFPU()
|
||||
"mtc1 $0, $29\n"
|
||||
"mtc1 $0, $30\n"
|
||||
"mtc1 $0, $31\n"
|
||||
"adda.s $0, $1\n"
|
||||
"adda.s $f0, $f1\n"
|
||||
"sync\n"
|
||||
"ctc1 $0, $31\n"
|
||||
);
|
||||
@@ -259,7 +260,8 @@ void InitializeUserMemory(u32 base)
|
||||
u128 *memsz;
|
||||
u128 *p = (u128*)base;
|
||||
|
||||
for (memsz=(u128*)_GetMemorySize(); p<memsz; p++) *p = 0;
|
||||
for (memsz=(u128*)_GetMemorySize(); p<memsz; p++)
|
||||
*p = 0;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
@@ -366,28 +368,6 @@ void _TlbSet(u32 Index, u32 PageMask, u32 EntryHi, u32 EntryLo0, u32 EntryLo1) {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
int _SemasInit() {
|
||||
int i;
|
||||
|
||||
// memset(bSema, 0, sizeof(bSema));
|
||||
|
||||
for (i=0; i<256; i++) {
|
||||
semas_array[i].free = &semas_array[i+1];
|
||||
semas_array[i].count = -1;
|
||||
semas_array[i].wait_threads = 0;
|
||||
semas_array[i].wait_next = (struct TCB*)&semas_array[i].wait_next;
|
||||
semas_array[i].wait_prev = (struct TCB*)&semas_array[i].wait_next;
|
||||
}
|
||||
semas_array[255].free = 0;
|
||||
|
||||
semas_last = semas_array;
|
||||
semas_count = 0;
|
||||
|
||||
return 256;
|
||||
}
|
||||
|
||||
|
||||
void TlbInit() {
|
||||
int i, last;
|
||||
u32 *ptr;
|
||||
@@ -442,21 +422,10 @@ void TlbInit() {
|
||||
__printf("Ok\n");
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//80001630
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void DefaultINTCHandler(int n)
|
||||
{
|
||||
//TODO
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//80001798
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void DefaultDMACHandler(int n)
|
||||
{
|
||||
//TODO
|
||||
}
|
||||
void DefaultINTCHandler(int n);
|
||||
void DefaultDMACHandler(int n);
|
||||
void rcnt3Handler();
|
||||
void sbusHandler();
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//80002050
|
||||
@@ -469,8 +438,8 @@ int InitPgifHandler() {
|
||||
for (i=0; i<15; i++) {
|
||||
intcs_array[i].count = 0;
|
||||
// intcs_array[-1] = ihandlers_last,first
|
||||
intcs_array[i-1].l.prev = &intcs_array[i-1].l.next;
|
||||
intcs_array[i-1].l.next = &intcs_array[i-1].l.next;
|
||||
intcs_array[i-1].l.prev = (struct ll*)&intcs_array[i-1].l.next;
|
||||
intcs_array[i-1].l.next = (struct ll*)&intcs_array[i-1].l.next;
|
||||
setINTCHandler(i, DefaultINTCHandler);
|
||||
}
|
||||
|
||||
@@ -485,8 +454,8 @@ int InitPgifHandler() {
|
||||
|
||||
for (i=0; i<16; i++) {
|
||||
dmacs_array[i].count = 0;
|
||||
dmacs_array[i-1].l.prev = &dmacs_array[i-1].l.next;
|
||||
dmacs_array[i-1].l.next = &dmacs_array[i-1].l.next;
|
||||
dmacs_array[i-1].l.prev = (struct ll*)&dmacs_array[i-1].l.next;
|
||||
dmacs_array[i-1].l.next = (struct ll*)&dmacs_array[i-1].l.next;
|
||||
setDMACHandler(i, DefaultDMACHandler);
|
||||
}
|
||||
|
||||
@@ -515,8 +484,8 @@ int InitPgifHandler2()
|
||||
if(i != 1 ) {
|
||||
intcs_array[i].count = 0;
|
||||
// intcs_array[-1] = ihandlers_last,first
|
||||
intcs_array[i-1].l.prev = &intcs_array[i-1].l.next;
|
||||
intcs_array[i-1].l.next = &intcs_array[i-1].l.next;
|
||||
intcs_array[i-1].l.prev = (struct ll*)&intcs_array[i-1].l.next;
|
||||
intcs_array[i-1].l.next = (struct ll*)&intcs_array[i-1].l.next;
|
||||
setINTCHandler(i, DefaultINTCHandler);
|
||||
}
|
||||
}
|
||||
@@ -525,8 +494,8 @@ int InitPgifHandler2()
|
||||
|
||||
for (i=0; i<16; i++) {
|
||||
dmacs_array[i].count = 0;
|
||||
dmacs_array[i-1].l.prev = &dmacs_array[i-1].l.next;
|
||||
dmacs_array[i-1].l.next = &dmacs_array[i-1].l.next;
|
||||
dmacs_array[i-1].l.prev = (struct ll*)&dmacs_array[i-1].l.next;
|
||||
dmacs_array[i-1].l.next = (struct ll*)&dmacs_array[i-1].l.next;
|
||||
setDMACHandler(i, DefaultDMACHandler);
|
||||
}
|
||||
|
||||
|
||||
@@ -32,128 +32,3 @@ void Kmemcpy(void *dest, const void *src, int n) {
|
||||
}
|
||||
}
|
||||
|
||||
int _ResetSif1()
|
||||
{
|
||||
sif1tagdata = 0xFFFF001E;
|
||||
//*(int*)0xa0001e330 = 0x20000000;
|
||||
//*(int*)0xa0001e334 = (u32)ptag&0x0fffffff;
|
||||
D6_QWC = 0;
|
||||
D6_TAG = (u32)&sif1tagdata&0x0fffffff;
|
||||
}
|
||||
|
||||
void SifDmaInit()
|
||||
{
|
||||
int msflg;
|
||||
memset(sifEEbuff, 0, sizeof(sifEEbuff));
|
||||
memset(sifRegs, 0, sizeof(sifRegs));
|
||||
|
||||
*(u32*)0xB000F260 = 0xFF;
|
||||
D5_CHCR = 0;
|
||||
D6_CHCR = 0;
|
||||
|
||||
_SifSetDChain();
|
||||
*(u32*)0xB000F200 = sifEEbuff;
|
||||
__printf("MSFLG = 0x10000\n");
|
||||
SBUS_MSFLG = 0x10000;
|
||||
msflg = SBUS_MSFLG;
|
||||
_ResetSif1();
|
||||
_SifSetReg(1, 0);
|
||||
|
||||
while (!(_SifGetReg(4) & 0x10000)) { __asm__ ("nop\nnop\nnop\nnop\n"); }
|
||||
|
||||
sifIOPbuff = *(u32*)0xB000F210;
|
||||
|
||||
SBUS_MSFLG = 0x20000;
|
||||
SBUS_MSFLG;
|
||||
}
|
||||
|
||||
int _TlbWriteRandom(u32 PageMask, u32 EntryHi, u32 EntryLo0, u32 EntryLo1) {
|
||||
if ((EntryHi >> 24) != 4) return -1;
|
||||
__asm__ (
|
||||
"mfc0 $2, $1\n"
|
||||
"mtc0 $2, $0\n"
|
||||
"mtc0 $4, $5\n"
|
||||
"mtc0 $5, $10\n"
|
||||
"mtc0 $6, $2\n"
|
||||
"mtc0 $7, $3\n"
|
||||
"sync\n"
|
||||
"tlbwi\n"
|
||||
"sync\n"
|
||||
);
|
||||
}
|
||||
|
||||
int _sifGetMSFLG() {
|
||||
u32 msflg;
|
||||
for (;;) {
|
||||
msflg = SBUS_MSFLG;
|
||||
__asm__ ("nop\nnop\nnop\nnop\nnop\nnop\nnop\nnop\n");
|
||||
__asm__ ("nop\nnop\nnop\nnop\nnop\nnop\nnop\nnop\n");
|
||||
__asm__ ("nop\nnop\nnop\nnop\nnop\nnop\nnop\nnop\n");
|
||||
|
||||
if (msflg == SBUS_MSFLG) return msflg;
|
||||
}
|
||||
}
|
||||
|
||||
int _sifGetSMFLG() {
|
||||
u32 smflg;
|
||||
for (;;) {
|
||||
smflg = SBUS_SMFLG;
|
||||
__asm__ ("nop\nnop\nnop\nnop\nnop\nnop\nnop\nnop\n");
|
||||
__asm__ ("nop\nnop\nnop\nnop\nnop\nnop\nnop\nnop\n");
|
||||
__asm__ ("nop\nnop\nnop\nnop\nnop\nnop\nnop\nnop\n");
|
||||
|
||||
if (smflg == SBUS_SMFLG) return smflg;
|
||||
}
|
||||
}
|
||||
|
||||
int _SifSetReg(int reg, u32 val) {
|
||||
__printf("%s: reg=%d; val=%x\n", __FUNCTION__, reg, val);
|
||||
|
||||
if (reg == 1) {
|
||||
*(u32*)0xB000F200 = val;
|
||||
return *(u32*)0xB000F200;
|
||||
} else
|
||||
if (reg == 3) {
|
||||
SBUS_MSFLG = val;
|
||||
return _sifGetMSFLG();
|
||||
} else
|
||||
if (reg == 4) {
|
||||
SBUS_SMFLG = val;
|
||||
return _sifGetSMFLG();
|
||||
} else
|
||||
if (reg >= 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
reg&= 0x7FFFFFFF;
|
||||
if (reg >= 32) return 0;
|
||||
|
||||
sifRegs[reg] = val;
|
||||
return val;
|
||||
}
|
||||
|
||||
int _SifGetReg(int reg) {
|
||||
//__printf("%s: reg=%x\n", __FUNCTION__, reg);
|
||||
|
||||
if (reg == 1) {
|
||||
return *(u32*)0xB000F200;
|
||||
} else
|
||||
if (reg == 2) {
|
||||
return *(u32*)0xB000F210;
|
||||
} else
|
||||
if (reg == 3) {
|
||||
return _sifGetMSFLG();
|
||||
} else
|
||||
if (reg == 4) {
|
||||
return _sifGetSMFLG();
|
||||
} else
|
||||
if (reg >= 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
reg&= 0x7FFFFFFF;
|
||||
if (reg >= 32) return 0;
|
||||
|
||||
//__printf("ret=%x\n", sifRegs[reg]);
|
||||
return sifRegs[reg];
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -112,6 +112,36 @@
|
||||
//#define DMAC_14 14 //not used
|
||||
#define DMAC_ERROR 15
|
||||
|
||||
///////////////////////
|
||||
// DMA TAG REGISTERS //
|
||||
///////////////////////
|
||||
#define DMA_TAG_REFE 0x00
|
||||
#define DMA_TAG_CNT 0x01
|
||||
#define DMA_TAG_NEXT 0x02
|
||||
#define DMA_TAG_REF 0x03
|
||||
#define DMA_TAG_REFS 0x04
|
||||
#define DMA_TAG_CALL 0x05
|
||||
#define DMA_TAG_RET 0x06
|
||||
#define DMA_TAG_END 0x07
|
||||
|
||||
// Modes for DMA transfers
|
||||
#define SIF_DMA_FROM_IOP 0x0
|
||||
#define SIF_DMA_TO_IOP 0x1
|
||||
#define SIF_DMA_FROM_EE 0x0
|
||||
#define SIF_DMA_TO_EE 0x1
|
||||
|
||||
#define SIF_DMA_INT_I 0x2
|
||||
#define SIF_DMA_INT_O 0x4
|
||||
#define SIF_DMA_SPR 0x8
|
||||
#define SIF_DMA_BSN 0x10 /* ? what is this? */
|
||||
#define SIF_DMA_TAG 0x20
|
||||
#define SIF_DMA_ERT 0x40
|
||||
#define DMA_TAG_IRQ 0x80000000
|
||||
#define DMA_TAG_PCE 0x0C000000
|
||||
|
||||
#define KSEG1_ADDR(x) (((u32)(x))|0xA0000000)
|
||||
#define KUSEG_ADDR(x) (((u32)(x))&0x1FFFFFFF)
|
||||
|
||||
#define MAX_SEMAS 256
|
||||
#define STACK_RES 0x2A0
|
||||
|
||||
@@ -146,7 +176,7 @@ struct ThreadParam {
|
||||
int currentPriority;
|
||||
u32 attr;
|
||||
u32 option;
|
||||
int waitType;
|
||||
int waitSema; // waitType?
|
||||
int waitId;
|
||||
int wakeupCount;
|
||||
};
|
||||
@@ -160,7 +190,7 @@ struct TCB { //internal struct
|
||||
void *gpReg; //+14
|
||||
short currentPriority; //+18
|
||||
short initPriority; //+1A
|
||||
int waitSema, //+1C
|
||||
int waitSema, //+1C waitType?
|
||||
semaId, //+20
|
||||
wakeupCount, //+24
|
||||
attr, //+28
|
||||
@@ -171,7 +201,7 @@ struct TCB { //internal struct
|
||||
void *stack;//+3C
|
||||
int stackSize; //+40
|
||||
int (*root)(); //+44
|
||||
int heap_base; //+48
|
||||
void* heap_base; //+48
|
||||
};
|
||||
|
||||
struct threadCtx {
|
||||
@@ -205,25 +235,26 @@ struct SemaParam {
|
||||
};
|
||||
|
||||
struct kSema { // internal struct
|
||||
struct kSema *free;
|
||||
int count;
|
||||
int max_count;
|
||||
int attr;
|
||||
int option;
|
||||
int wait_threads;
|
||||
struct TCB *wait_next,
|
||||
*wait_prev;
|
||||
struct kSema *free;//+00
|
||||
int count;//+04
|
||||
int max_count;//+08
|
||||
int attr;//+0C
|
||||
int option;//+10
|
||||
int wait_threads;//+14
|
||||
struct TCB *wait_next,//+18
|
||||
*wait_prev;//+1C
|
||||
};
|
||||
|
||||
struct ll { struct ll *next, *prev; }; //linked list
|
||||
|
||||
//internal struct
|
||||
struct IDhandl { //intc dmac handler
|
||||
struct ll *next, *prev;
|
||||
int (*handler)(int);
|
||||
u32 gp;
|
||||
void *arg;
|
||||
int flag;
|
||||
struct ll *next, //+00
|
||||
*prev; //+04
|
||||
int (*handler)(int); //+08
|
||||
u32 gp; //+0C
|
||||
void *arg; //+10
|
||||
int flag; //+14
|
||||
};
|
||||
|
||||
//internal struct
|
||||
@@ -232,7 +263,6 @@ struct HCinfo{ //handler cause info
|
||||
struct ll l;
|
||||
};
|
||||
|
||||
|
||||
extern u128 SavedSP;
|
||||
extern u128 SavedRA;
|
||||
extern u128 SavedAT;
|
||||
@@ -243,6 +273,7 @@ extern eeRegs SavedRegs;
|
||||
extern u32 excepRA;
|
||||
extern u32 excepSP;
|
||||
|
||||
extern u32 (*table_CpuConfig[6])(u32);
|
||||
extern void (*table_SYSCALL[0x80])();
|
||||
|
||||
extern void (*VCRTable[14])();
|
||||
@@ -275,14 +306,14 @@ extern struct HCinfo dmacs_array[15];
|
||||
extern struct IDhandl pgifhandlers_array[161];
|
||||
extern void (*sbus_handlers[32])(int ca);
|
||||
|
||||
extern int rcnt3Mode;
|
||||
extern int rcnt3TargetTable[0x140];
|
||||
extern char rcnt3TargetNum;
|
||||
extern int rcnt3Code;
|
||||
extern int rcnt3TargetTable[0x142];
|
||||
extern u8 rcnt3TargetNum[0x40];
|
||||
extern int threads_count;
|
||||
extern struct ll thread_ll_free;
|
||||
extern struct ll thread_ll_priorities[128];
|
||||
extern int semas_count;
|
||||
extern int semas_last;
|
||||
extern struct kSema* semas_last;
|
||||
|
||||
extern struct TCB threads_array[256];
|
||||
extern struct kSema semas_array[256];
|
||||
@@ -298,15 +329,6 @@ extern int extrastorage[(16/4) * 8][31];
|
||||
|
||||
extern int osdConfigParam;
|
||||
|
||||
extern u32 sifEEbuff[32];
|
||||
extern u32 sifRegs[32];
|
||||
extern u32 sifIOPbuff;
|
||||
extern u32 sif1tagdata;
|
||||
|
||||
// internal functions
|
||||
void Kmemcpy(void *dest, const void *src, int n);
|
||||
void SifDmaInit();
|
||||
|
||||
// syscalls
|
||||
// Every syscall is officially prefixed with _ (to avoid clashing with ps2sdk)
|
||||
void _SetSYSCALL(int num, int address);
|
||||
@@ -319,8 +341,8 @@ void *_SetVCommonHandler(int cause, void (*handler)());
|
||||
void *_SetVInterruptHandler(int cause, void (*handler)());
|
||||
void _PSMode();
|
||||
u32 _MachineType();
|
||||
long _SetMemorySize(long size);
|
||||
long _GetMemorySize();
|
||||
u32 _SetMemorySize(u32 size);
|
||||
u32 _GetMemorySize();
|
||||
u64 _GsGetIMR();
|
||||
u64 _GsPutIMR(u64 val);
|
||||
int _Exit(); // 3
|
||||
@@ -348,7 +370,6 @@ int _WaitSema(int sid);
|
||||
void _ChangeThreadPriority(int tid, int prio);
|
||||
int _CreateThread(struct ThreadParam *param);
|
||||
int _iChangeThreadPriority(int tid, int prio);
|
||||
int _iRotateThreadReadyQueue(int prio);
|
||||
int _GetThreadId();
|
||||
int _ReferThreadStatus(int tid, struct ThreadParam *info);
|
||||
int _iWakeupThread(int tid);
|
||||
@@ -362,15 +383,15 @@ int _iSignalSema(int sid);
|
||||
int _PollSema(int sid);
|
||||
int _ReferSemaStatus(int sid, struct SemaParam *sema);
|
||||
int _DeleteEventFlag();
|
||||
char *_InitializeMainThread(int gp, void *stack, int stack_size,
|
||||
void*_InitializeMainThread(u32 gp, void *stack, int stack_size,
|
||||
char *args, int root);
|
||||
void *_InitializeHeapArea(void *heap_base, int heap_size);
|
||||
void *_EndOfHeap();
|
||||
int _LoadPS2Exe(const char *filename, int argc, char **argv);
|
||||
int _LoadPS2Exe(char *filename, int argc, char **argv);
|
||||
int _ExecOSD(int argc, char **argv);
|
||||
void _sceSifSetDChain();
|
||||
void _sceSifStopDma();
|
||||
void _sceSifSetDma(SifDmaTransfer_t *sdd, int len);
|
||||
void _SifSetDChain();
|
||||
void _SifStopDma();
|
||||
u32 _SifSetDma(SifDmaTransfer_t *sdd, int len);
|
||||
void _SetGsCrt(short arg0, short arg1, short arg2); // 2
|
||||
void _GetGsHParam(int *p0, int *p1, int *p2, int *p3);
|
||||
int _GetGsVParam();
|
||||
@@ -379,45 +400,41 @@ void _GetOsdConfigParam(int *result);
|
||||
void _SetOsdConfigParam(int *param);
|
||||
int _ResetEE(int init); // 1
|
||||
int _TlbWriteRandom(u32 PageMask, u32 EntryHi, u32 EntryLo0, u32 EntryLo1);
|
||||
void __SetAlarm();
|
||||
void __ReleaseAlarm();
|
||||
int _SetAlarm(short a0, int a1, int a2);
|
||||
void _ReleaseAlarm();
|
||||
int _TerminateThread(int tid);
|
||||
void _RotateThreadReadyQueue(int prio);
|
||||
int _iTerminateThread(int tid);
|
||||
void _DisableDispatchThread();
|
||||
void _EnableDispatchThread();
|
||||
void _RotateThreadReadyQueue();
|
||||
int _DisableDispatchThread();
|
||||
int _EnableDispatchThread();
|
||||
int _iRotateThreadReadyQueue(int prio);
|
||||
void _ReleaseWaitThread();
|
||||
void _iReleaseWaitThread();
|
||||
void _ResumeThread();
|
||||
void _ReleaseWaitThread(int tid);
|
||||
int _iReleaseWaitThread(int tid);
|
||||
int _ResumeThread(int tid);
|
||||
int _iResumeThread(int tid);
|
||||
void _JoinThread();
|
||||
void _DeleteSema();
|
||||
void _SignalSema();
|
||||
void _SetGsHParam();
|
||||
void _SetEventFlag();
|
||||
void _iSetEventFlag();
|
||||
void _EnableIntcHandler();
|
||||
void _DisableIntcHandler();
|
||||
void _EnableDmacHandler();
|
||||
void _DisableDmacHandler();
|
||||
void _KSeg0();
|
||||
void _EnableCache();
|
||||
void _DisableCache();
|
||||
void _FlushCache();
|
||||
void _105();
|
||||
void _CpuConfig();
|
||||
void _SetCPUTimerHandler();
|
||||
void _SetCPUTimer();
|
||||
void _SetPgifHandler();
|
||||
int _DeleteSema(int sid);
|
||||
int _iDeleteSema(int sid);
|
||||
void _SignalSema(int sid);
|
||||
void _SetGsHParam(int a0, int a1, int a2, int a3);
|
||||
int _SetEventFlag(int ef, u32 bits); // bits is EF_X
|
||||
int _iSetEventFlag(int ef, u32 bits);
|
||||
void _EnableIntcHandler(u32 id);
|
||||
void _DisableIntcHandler(u32 id);
|
||||
void _EnableDmacHandler(u32 id);
|
||||
void _DisableDmacHandler(u32 id);
|
||||
void _KSeg0(u32 arg);
|
||||
int _EnableCache(int cache);
|
||||
int _DisableCache(int cache);
|
||||
void _FlushCache(int op);
|
||||
void _105(int op1, int op2);
|
||||
u32 _CpuConfig(u32 op);
|
||||
void _SetCPUTimerHandler(void (*handler)());
|
||||
void _SetCPUTimer(int compval);
|
||||
void _SetPgifHandler(void (*handler)(int));
|
||||
void _print();
|
||||
void _sceSifDmaStat();
|
||||
int _sceSifSetReg(int reg, u32 val);
|
||||
int _sceSifGetReg(int reg);
|
||||
int _SifDmaStat(int id);
|
||||
|
||||
void _SifDmaStat();
|
||||
void _SifSetDma(SifDmaTransfer_t *sdd, int len);
|
||||
void _SifSetDChain();
|
||||
int _SifGetReg(int reg);
|
||||
int _SifSetReg(int reg, u32 val);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user