mirror of
https://github.com/wiiu-env/WiiUPluginLoaderBackend.git
synced 2024-11-26 06:34:16 +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(int32_t,OSGetThreadPriority,OSThread * thread);
|
||||||
EXPORT_DECL(void,OSSetThreadName,OSThread * thread, const char *name);
|
EXPORT_DECL(void,OSSetThreadName,OSThread * thread, const char *name);
|
||||||
EXPORT_DECL(int32_t, OSGetCoreId, void);
|
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(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*, MEMAllocFromExpHeapEx, int32_t heap, uint32_t size, int alignment);
|
||||||
EXPORT_DECL(void, MEMFreeToExpHeap, int32_t heap, void * block);
|
EXPORT_DECL(void, MEMFreeToExpHeap, int32_t heap, void * block);
|
||||||
|
|
||||||
|
EXPORT_DECL(OSMessageQueue *, OSGetSystemMessageQueue, void);
|
||||||
EXPORT_DECL(void, OSEnableHomeButtonMenu, int32_t);
|
EXPORT_DECL(void, OSEnableHomeButtonMenu, int32_t);
|
||||||
|
|
||||||
EXPORT_VAR(uint32_t *, pMEMAllocFromDefaultHeapEx);
|
EXPORT_VAR(uint32_t *, pMEMAllocFromDefaultHeapEx);
|
||||||
@ -50,6 +55,14 @@ EXPORT_DECL(void, OSLockMutex, void* mutex);
|
|||||||
EXPORT_DECL(void, OSUnlockMutex, void* mutex);
|
EXPORT_DECL(void, OSUnlockMutex, void* mutex);
|
||||||
EXPORT_DECL(int32_t, OSTryLockMutex, 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) {
|
void _os_find_export(uint32_t handle, const char *funcName, void *funcPointer) {
|
||||||
OSDynLoad_FindExport(handle, 0, funcName, 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, OSScreenClearBufferEx);
|
||||||
OS_FIND_EXPORT(coreinit_handle, OSEnableHomeButtonMenu);
|
OS_FIND_EXPORT(coreinit_handle, OSEnableHomeButtonMenu);
|
||||||
|
|
||||||
|
OS_FIND_EXPORT(coreinit_handle, OSGetSystemMessageQueue);
|
||||||
OS_FIND_EXPORT(coreinit_handle, OSIsHomeButtonMenuEnabled);
|
OS_FIND_EXPORT(coreinit_handle, OSIsHomeButtonMenuEnabled);
|
||||||
OS_FIND_EXPORT(coreinit_handle, DCInvalidateRange);
|
OS_FIND_EXPORT(coreinit_handle, DCInvalidateRange);
|
||||||
OS_FIND_EXPORT(coreinit_handle, DCFlushRange);
|
OS_FIND_EXPORT(coreinit_handle, DCFlushRange);
|
||||||
@ -136,6 +150,16 @@ void InitOSFunctionPointers(void) {
|
|||||||
OS_FIND_EXPORT(coreinit_handle, OSSetThreadName);
|
OS_FIND_EXPORT(coreinit_handle, OSSetThreadName);
|
||||||
OS_FIND_EXPORT(coreinit_handle, OSGetCoreId);
|
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, "MEMAllocFromDefaultHeapEx", &pMEMAllocFromDefaultHeapEx);
|
||||||
OSDynLoad_FindExport(coreinit_handle, 1, "MEMAllocFromDefaultHeap", &pMEMAllocFromDefaultHeap);
|
OSDynLoad_FindExport(coreinit_handle, 1, "MEMAllocFromDefaultHeap", &pMEMAllocFromDefaultHeap);
|
||||||
OSDynLoad_FindExport(coreinit_handle, 1, "MEMFreeToDefaultHeap", &pMEMFreeToDefaultHeap);
|
OSDynLoad_FindExport(coreinit_handle, 1, "MEMFreeToDefaultHeap", &pMEMFreeToDefaultHeap);
|
||||||
|
@ -141,6 +141,43 @@ typedef struct OSMessageQueue_ {
|
|||||||
int usedCount;
|
int usedCount;
|
||||||
} OSMessageQueue;
|
} 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 (*DCInvalidateRange)(void *buffer, uint32_t length);
|
||||||
extern void (* DCFlushRange)(const void *addr, uint32_t length);
|
extern void (* DCFlushRange)(const void *addr, uint32_t length);
|
||||||
extern void (* DCStoreRange)(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* (* OSSleepTicks)(uint64_t ticks);
|
||||||
extern void (* OSEnableHomeButtonMenu)(int32_t);
|
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 (* 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);
|
extern int32_t (* OSResumeThread)(OSThread *thread);
|
||||||
@ -165,6 +207,10 @@ extern void (* OSGetActiveThreadLink)(OSThread * thread, void* link);
|
|||||||
extern uint32_t (* OSGetThreadAffinity)(OSThread * thread);
|
extern uint32_t (* OSGetThreadAffinity)(OSThread * thread);
|
||||||
extern int32_t (* OSGetThreadPriority)(OSThread * thread);
|
extern int32_t (* OSGetThreadPriority)(OSThread * thread);
|
||||||
extern void (* OSSetThreadName)(OSThread * thread, const char *name);
|
extern void (* OSSetThreadName)(OSThread * thread, const char *name);
|
||||||
|
|
||||||
|
extern int32_t (* OSEnableInterrupts)(void);
|
||||||
|
extern void (* OSRestoreInterrupts)(int32_t);
|
||||||
|
|
||||||
extern int32_t (* OSGetCoreId)(void);
|
extern int32_t (* OSGetCoreId)(void);
|
||||||
extern uint64_t (* OSGetTitleID)(void);
|
extern uint64_t (* OSGetTitleID)(void);
|
||||||
|
|
||||||
@ -195,6 +241,8 @@ extern uint32_t *pMEMAllocFromDefaultHeapEx;
|
|||||||
extern uint32_t *pMEMAllocFromDefaultHeap;
|
extern uint32_t *pMEMAllocFromDefaultHeap;
|
||||||
extern uint32_t *pMEMFreeToDefaultHeap;
|
extern uint32_t *pMEMFreeToDefaultHeap;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void InitAcquireOS();
|
void InitAcquireOS();
|
||||||
void InitOSFunctionPointers(void);
|
void InitOSFunctionPointers(void);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user