#include "stdafx.h" #include "Emu/System.h" #include "Emu/PSP2/ARMv7Module.h" #include "sceUlt.h" logs::channel sceUlt("sceUlt"); // Functions s32 _sceUltWaitingQueueResourcePoolOptParamInitialize(vm::ptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } u32 sceUltWaitingQueueResourcePoolGetWorkAreaSize(u32 numThreads, u32 numSyncObjects) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltWaitingQueueResourcePoolCreate( vm::ptr pool, vm::cptr name, u32 numThreads, u32 numSyncObjects, vm::ptr workArea, vm::cptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltWaitingQueueResourcePoolDestroy(vm::ptr pool) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltQueueDataResourcePoolOptParamInitialize(vm::ptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } u32 sceUltQueueDataResourcePoolGetWorkAreaSize(u32 numData, u32 dataSize, u32 numQueueObject) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltQueueDataResourcePoolCreate( vm::ptr pool, vm::cptr name, u32 numData, u32 dataSize, u32 numQueueObject, vm::ptr waitingQueueResourcePool, vm::ptr workArea, vm::cptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltQueueDataResourcePoolDestroy(vm::ptr pool) { fmt::throw_exception("Unimplemented" HERE); } u32 sceUltMutexGetStandaloneWorkAreaSize(u32 waitingQueueDepth, u32 numConditionVariable) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltMutexOptParamInitialize(vm::ptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltMutexCreate( vm::ptr mutex, vm::cptr name, vm::ptr waitingQueueResourcePool, vm::cptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltMutexCreateStandalone( vm::ptr mutex, vm::cptr name, u32 numConditionVariable, u32 maxNumThreads, vm::ptr workArea, vm::cptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltMutexLock(vm::ptr mutex) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltMutexTryLock(vm::ptr mutex) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltMutexUnlock(vm::ptr mutex) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltMutexDestroy(vm::ptr mutex) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltConditionVariableOptParamInitialize(vm::ptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltConditionVariableCreate( vm::ptr conditionVariable, vm::cptr name, vm::ptr mutex, vm::cptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltConditionVariableSignal(vm::ptr conditionVariable) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltConditionVariableSignalAll(vm::ptr conditionVariable) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltConditionVariableWait(vm::ptr conditionVariable) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltConditionVariableDestroy(vm::ptr conditionVariable) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltQueueOptParamInitialize(vm::ptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } u32 sceUltQueueGetStandaloneWorkAreaSize(u32 queueDepth, u32 dataSize, u32 waitingQueueLength) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltQueueCreate( vm::ptr queue, vm::cptr _name, u32 dataSize, vm::ptr resourcePool, vm::ptr queueResourcePool, vm::cptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltQueueCreateStandalone( vm::ptr queue, vm::cptr name, u32 queueDepth, u32 dataSize, u32 waitingQueueLength, vm::ptr workArea, vm::cptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltQueuePush(vm::ptr queue, vm::cptr data) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltQueueTryPush(vm::ptr queue, vm::cptr data) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltQueuePop(vm::ptr queue, vm::ptr data) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltQueueTryPop(vm::ptr queue, vm::ptr data) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltQueueDestroy(vm::ptr queue) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltReaderWriterLockOptParamInitialize(vm::ptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltReaderWriterLockCreate( vm::ptr rwlock, vm::cptr name, vm::ptr waitingQueueResourcePool, vm::cptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltReaderWriterLockCreateStandalone( vm::ptr rwlock, vm::cptr name, u32 waitingQueueDepth, vm::ptr workArea, vm::cptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } u32 sceUltReaderWriterLockGetStandaloneWorkAreaSize(u32 waitingQueueDepth) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltReaderWriterLockLockRead(vm::ptr rwlock) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltReaderWriterLockTryLockRead(vm::ptr rwlock) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltReaderWriterLockUnlockRead(vm::ptr rwlock) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltReaderWriterLockLockWrite(vm::ptr rwlock) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltReaderWriterLockTryLockWrite(vm::ptr rwlock) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltReaderWriterLockUnlockWrite(vm::ptr rwlock) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltReaderWriterLockDestroy(vm::ptr rwlock) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltSemaphoreOptParamInitialize(vm::ptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltSemaphoreCreate( vm::ptr semaphore, vm::cptr name, s32 numInitialResource, vm::ptr waitingQueueResourcePool, vm::cptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltSemaphoreAcquire(vm::ptr semaphore, s32 numResource) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltSemaphoreTryAcquire(vm::ptr semaphore, s32 numResource) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltSemaphoreRelease(vm::ptr semaphore, s32 numResource) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltSemaphoreDestroy(vm::ptr semaphore) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltUlthreadRuntimeOptParamInitialize(vm::ptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } u32 sceUltUlthreadRuntimeGetWorkAreaSize(u32 numMaxUlthread, u32 numWorkerThread) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltUlthreadRuntimeCreate( vm::ptr runtime, vm::cptr name, u32 numMaxUlthread, u32 numWorkerThread, vm::ptr workArea, vm::cptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltUlthreadRuntimeDestroy(vm::ptr runtime) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltUlthreadOptParamInitialize(vm::ptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 _sceUltUlthreadCreate( vm::ptr ulthread, vm::cptr name, vm::ptr entry, u32 arg, vm::ptr context, u32 sizeContext, vm::ptr runtime, vm::cptr optParam, u32 buildVersion) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltUlthreadYield() { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltUlthreadExit(s32 status) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltUlthreadJoin(vm::ptr ulthread, vm::ptr status) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltUlthreadTryJoin(vm::ptr ulthread, vm::ptr status) { fmt::throw_exception("Unimplemented" HERE); } s32 sceUltUlthreadGetSelf(vm::pptr ulthread) { fmt::throw_exception("Unimplemented" HERE); } #define REG_FUNC(nid, name) REG_FNID(SceUlt, nid, name) DECLARE(arm_module_manager::SceUlt)("SceUlt", []() { REG_FUNC(0xEF094E35, _sceUltWaitingQueueResourcePoolOptParamInitialize); REG_FUNC(0x644DA029, sceUltWaitingQueueResourcePoolGetWorkAreaSize); REG_FUNC(0x62F9493E, _sceUltWaitingQueueResourcePoolCreate); REG_FUNC(0xC9E96714, sceUltWaitingQueueResourcePoolDestroy); REG_FUNC(0x8A4F88A2, _sceUltQueueDataResourcePoolOptParamInitialize); REG_FUNC(0xECDA7FEE, sceUltQueueDataResourcePoolGetWorkAreaSize); REG_FUNC(0x40856827, _sceUltQueueDataResourcePoolCreate); REG_FUNC(0x2B8D33F1, sceUltQueueDataResourcePoolDestroy); REG_FUNC(0x24D87E05, _sceUltMutexOptParamInitialize); REG_FUNC(0x5AFEC7A1, _sceUltMutexCreate); REG_FUNC(0x001EAC8A, sceUltMutexLock); REG_FUNC(0xE5936A69, sceUltMutexTryLock); REG_FUNC(0x897C9097, sceUltMutexUnlock); REG_FUNC(0xEEBD9052, sceUltMutexDestroy); REG_FUNC(0x0603FCC1, _sceUltConditionVariableOptParamInitialize); REG_FUNC(0xD76A156C, _sceUltConditionVariableCreate); REG_FUNC(0x9FE7CB9F, sceUltConditionVariableSignal); REG_FUNC(0xEBB6FC1E, sceUltConditionVariableSignalAll); REG_FUNC(0x2CD0F57C, sceUltConditionVariableWait); REG_FUNC(0x53420ED2, sceUltConditionVariableDestroy); REG_FUNC(0xF7A83023, _sceUltQueueOptParamInitialize); REG_FUNC(0x14DA1BB4, _sceUltQueueCreate); REG_FUNC(0xA7E78FF9, sceUltQueuePush); REG_FUNC(0x6D356B29, sceUltQueueTryPush); REG_FUNC(0x1AD58A53, sceUltQueuePop); REG_FUNC(0x2A1A8EA6, sceUltQueueTryPop); REG_FUNC(0xF37862DE, sceUltQueueDestroy); REG_FUNC(0xD8334A1F, _sceUltReaderWriterLockOptParamInitialize); REG_FUNC(0x2FB0EB32, _sceUltReaderWriterLockCreate); REG_FUNC(0x9AD07630, sceUltReaderWriterLockLockRead); REG_FUNC(0x2629C055, sceUltReaderWriterLockTryLockRead); REG_FUNC(0x218D4743, sceUltReaderWriterLockUnlockRead); REG_FUNC(0xF5F63E2C, sceUltReaderWriterLockLockWrite); REG_FUNC(0x944FB222, sceUltReaderWriterLockTryLockWrite); REG_FUNC(0x2A5741F5, sceUltReaderWriterLockUnlockWrite); REG_FUNC(0xB1FEB79B, sceUltReaderWriterLockDestroy); REG_FUNC(0x8E31B9FE, _sceUltSemaphoreOptParamInitialize); REG_FUNC(0xDD59562C, _sceUltSemaphoreCreate); REG_FUNC(0xF220D3AE, sceUltSemaphoreAcquire); REG_FUNC(0xAF15606D, sceUltSemaphoreTryAcquire); REG_FUNC(0x65376E2D, sceUltSemaphoreRelease); REG_FUNC(0x8EC57420, sceUltSemaphoreDestroy); REG_FUNC(0x8486DDE6, _sceUltUlthreadRuntimeOptParamInitialize); REG_FUNC(0x5435C586, sceUltUlthreadRuntimeGetWorkAreaSize); REG_FUNC(0x86DDA3AE, _sceUltUlthreadRuntimeCreate); REG_FUNC(0x4E9A745C, sceUltUlthreadRuntimeDestroy); REG_FUNC(0x7F373376, _sceUltUlthreadOptParamInitialize); REG_FUNC(0xB1290375, _sceUltUlthreadCreate); REG_FUNC(0xCAD57BAD, sceUltUlthreadYield); REG_FUNC(0x1E401DF8, sceUltUlthreadExit); REG_FUNC(0x63483381, sceUltUlthreadJoin); REG_FUNC(0xB4CF88AC, sceUltUlthreadTryJoin); REG_FUNC(0xA798C5D7, sceUltUlthreadGetSelf); });