mirror of
https://github.com/wiiu-env/WiiUPluginLoaderBackend.git
synced 2024-11-25 14:16:53 +01:00
Add new functions to the dynamic_libs
This commit is contained in:
parent
6b6038a004
commit
d305958ea4
@ -24,10 +24,15 @@ EXPORT_DECL(uint32_t,OSGetThreadAffinity,OSThread * thread);
|
||||
EXPORT_DECL(int32_t,OSGetThreadPriority,OSThread * thread);
|
||||
EXPORT_DECL(void,OSSetThreadName,OSThread * thread, const char *name);
|
||||
EXPORT_DECL(int32_t, OSGetCoreId, void);
|
||||
|
||||
EXPORT_DECL(int32_t, OSEnableInterrupts, void);
|
||||
EXPORT_DECL(void, OSRestoreInterrupts, int32_t);
|
||||
|
||||
EXPORT_DECL(int32_t, MEMCreateExpHeapEx, void *heap, uint32_t size, uint16_t flags);
|
||||
EXPORT_DECL(void*, MEMAllocFromExpHeapEx, int32_t heap, uint32_t size, int alignment);
|
||||
EXPORT_DECL(void, MEMFreeToExpHeap, int32_t heap, void * block);
|
||||
|
||||
EXPORT_DECL(OSMessageQueue *, OSGetSystemMessageQueue, void);
|
||||
EXPORT_DECL(void, OSEnableHomeButtonMenu, int32_t);
|
||||
|
||||
EXPORT_VAR(uint32_t *, pMEMAllocFromDefaultHeapEx);
|
||||
@ -50,6 +55,14 @@ EXPORT_DECL(void, OSLockMutex, void* mutex);
|
||||
EXPORT_DECL(void, OSUnlockMutex, void* mutex);
|
||||
EXPORT_DECL(int32_t, OSTryLockMutex, void* mutex);
|
||||
|
||||
EXPORT_DECL(void, OSInitEvent, OSEvent *event, int32_t value, OSEventMode mode);
|
||||
EXPORT_DECL(void, OSSignalEvent, OSEvent *event);
|
||||
EXPORT_DECL(void, OSWaitEvent, OSEvent *event);
|
||||
EXPORT_DECL(void, OSResetEvent, OSEvent *event);
|
||||
|
||||
EXPORT_DECL(int32_t, OSReceiveMessage, OSMessageQueue *, OSMessage * , int32_t);
|
||||
EXPORT_DECL(int32_t, OSSendMessage, OSMessageQueue *, OSMessage * , int32_t);
|
||||
|
||||
void _os_find_export(uint32_t handle, const char *funcName, void *funcPointer) {
|
||||
OSDynLoad_FindExport(handle, 0, funcName, funcPointer);
|
||||
|
||||
@ -108,6 +121,7 @@ void InitOSFunctionPointers(void) {
|
||||
OS_FIND_EXPORT(coreinit_handle, OSScreenClearBufferEx);
|
||||
OS_FIND_EXPORT(coreinit_handle, OSEnableHomeButtonMenu);
|
||||
|
||||
OS_FIND_EXPORT(coreinit_handle, OSGetSystemMessageQueue);
|
||||
OS_FIND_EXPORT(coreinit_handle, OSIsHomeButtonMenuEnabled);
|
||||
OS_FIND_EXPORT(coreinit_handle, DCInvalidateRange);
|
||||
OS_FIND_EXPORT(coreinit_handle, DCFlushRange);
|
||||
@ -136,6 +150,16 @@ void InitOSFunctionPointers(void) {
|
||||
OS_FIND_EXPORT(coreinit_handle, OSSetThreadName);
|
||||
OS_FIND_EXPORT(coreinit_handle, OSGetCoreId);
|
||||
|
||||
OS_FIND_EXPORT(coreinit_handle, OSEnableInterrupts);
|
||||
OS_FIND_EXPORT(coreinit_handle, OSRestoreInterrupts);
|
||||
|
||||
OS_FIND_EXPORT(coreinit_handle, OSInitEvent);
|
||||
OS_FIND_EXPORT(coreinit_handle, OSSignalEvent);
|
||||
OS_FIND_EXPORT(coreinit_handle, OSWaitEvent);
|
||||
OS_FIND_EXPORT(coreinit_handle, OSResetEvent);
|
||||
OS_FIND_EXPORT(coreinit_handle, OSSendMessage);
|
||||
OS_FIND_EXPORT(coreinit_handle, OSReceiveMessage);
|
||||
|
||||
OSDynLoad_FindExport(coreinit_handle, 1, "MEMAllocFromDefaultHeapEx", &pMEMAllocFromDefaultHeapEx);
|
||||
OSDynLoad_FindExport(coreinit_handle, 1, "MEMAllocFromDefaultHeap", &pMEMAllocFromDefaultHeap);
|
||||
OSDynLoad_FindExport(coreinit_handle, 1, "MEMFreeToDefaultHeap", &pMEMFreeToDefaultHeap);
|
||||
|
@ -141,6 +141,43 @@ typedef struct OSMessageQueue_ {
|
||||
int usedCount;
|
||||
} OSMessageQueue;
|
||||
|
||||
|
||||
typedef struct OSEvent OSEvent;
|
||||
|
||||
typedef enum OSEventMode
|
||||
{
|
||||
//! A manual event will only reset when OSResetEvent is called.
|
||||
OS_EVENT_MODE_MANUAL = 0,
|
||||
|
||||
//! An auto event will reset everytime a thread is woken.
|
||||
OS_EVENT_MODE_AUTO = 1,
|
||||
} OSEventMode;
|
||||
|
||||
#define OS_EVENT_TAG 0x65566E54u
|
||||
|
||||
struct OSEvent
|
||||
{
|
||||
//! Should always be set to the value OS_EVENT_TAG.
|
||||
uint32_t tag;
|
||||
|
||||
//! Name set by OSInitEventEx.
|
||||
const char *name;
|
||||
|
||||
char unknwn[4];
|
||||
|
||||
//! The current value of the event object.
|
||||
int32_t value;
|
||||
|
||||
//! The threads currently waiting on this event object with OSWaitEvent.
|
||||
OSThreadQueue queue;
|
||||
|
||||
//! The mode of the event object, set by OSInitEvent.
|
||||
OSEventMode mode;
|
||||
};
|
||||
|
||||
extern OSMessageQueue * (*OSGetSystemMessageQueue)(void);
|
||||
extern int32_t (*OSReceiveMessage)(OSMessageQueue *, OSMessage * , int32_t);
|
||||
extern int32_t (*OSSendMessage)(OSMessageQueue *, OSMessage * , int32_t);
|
||||
extern void (*DCInvalidateRange)(void *buffer, uint32_t length);
|
||||
extern void (* DCFlushRange)(const void *addr, uint32_t length);
|
||||
extern void (* DCStoreRange)(const void *addr, uint32_t length);
|
||||
@ -149,6 +186,11 @@ extern void* (* OSEffectiveToPhysical)(uint32_t);
|
||||
extern void* (* OSSleepTicks)(uint64_t ticks);
|
||||
extern void (* OSEnableHomeButtonMenu)(int32_t);
|
||||
|
||||
extern void (* OSInitEvent)(OSEvent *event, int32_t value, OSEventMode mode);
|
||||
extern void (* OSSignalEvent)(OSEvent *event);
|
||||
extern void (* OSWaitEvent)(OSEvent *event);
|
||||
extern void (* OSResetEvent)(OSEvent *event);
|
||||
|
||||
|
||||
extern int32_t (* OSCreateThread)(OSThread *thread, int32_t (*callback)(int32_t, void*), int32_t argc, void *args, uint32_t stack, uint32_t stack_size, int32_t priority, uint32_t attr);
|
||||
extern int32_t (* OSResumeThread)(OSThread *thread);
|
||||
@ -165,6 +207,10 @@ extern void (* OSGetActiveThreadLink)(OSThread * thread, void* link);
|
||||
extern uint32_t (* OSGetThreadAffinity)(OSThread * thread);
|
||||
extern int32_t (* OSGetThreadPriority)(OSThread * thread);
|
||||
extern void (* OSSetThreadName)(OSThread * thread, const char *name);
|
||||
|
||||
extern int32_t (* OSEnableInterrupts)(void);
|
||||
extern void (* OSRestoreInterrupts)(int32_t);
|
||||
|
||||
extern int32_t (* OSGetCoreId)(void);
|
||||
extern uint64_t (* OSGetTitleID)(void);
|
||||
|
||||
@ -195,6 +241,8 @@ extern uint32_t *pMEMAllocFromDefaultHeapEx;
|
||||
extern uint32_t *pMEMAllocFromDefaultHeap;
|
||||
extern uint32_t *pMEMFreeToDefaultHeap;
|
||||
|
||||
|
||||
|
||||
void InitAcquireOS();
|
||||
void InitOSFunctionPointers(void);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user