#pragma once #include "sceLibKernel.h" struct _SceUltOptParamHeader { le_t reserved[2]; }; struct SceUltWaitingQueueResourcePoolOptParam { _SceUltOptParamHeader header; le_t reserved[14]; }; CHECK_SIZE(SceUltWaitingQueueResourcePoolOptParam, 128); struct SceUltWaitingQueueResourcePool { le_t reserved[32]; }; CHECK_SIZE(SceUltWaitingQueueResourcePool, 256); struct SceUltQueueDataResourcePoolOptParam { _SceUltOptParamHeader header; le_t reserved[14]; }; CHECK_SIZE(SceUltQueueDataResourcePoolOptParam, 128); struct SceUltQueueDataResourcePool { le_t reserved[32]; }; CHECK_SIZE(SceUltQueueDataResourcePool, 256); struct SceUltMutexOptParam { _SceUltOptParamHeader header; le_t attribute; le_t reserved_0; le_t reserved[13]; }; CHECK_SIZE(SceUltMutexOptParam, 128); struct SceUltMutex { le_t reserved[32]; }; CHECK_SIZE(SceUltMutex, 256); struct SceUltConditionVariableOptParam { _SceUltOptParamHeader header; le_t reserved[14]; }; CHECK_SIZE(SceUltConditionVariableOptParam, 128); struct SceUltConditionVariable { le_t reserved[32]; }; CHECK_SIZE(SceUltConditionVariable, 256); struct SceUltQueueOptParam { _SceUltOptParamHeader header; le_t reserved[14]; }; CHECK_SIZE(SceUltQueueOptParam, 128); struct SceUltQueue { le_t reserved[32]; }; CHECK_SIZE(SceUltQueue, 256); struct SceUltReaderWriterLockOptParam { _SceUltOptParamHeader header; le_t reserved[14]; }; CHECK_SIZE(SceUltReaderWriterLockOptParam, 128); struct SceUltReaderWriterLock { le_t reserved[32]; }; CHECK_SIZE(SceUltReaderWriterLock, 256); struct SceUltSemaphoreOptParam { _SceUltOptParamHeader header; le_t reserved[14]; }; CHECK_SIZE(SceUltSemaphoreOptParam, 128); struct SceUltSemaphore { le_t reserved[32]; }; CHECK_SIZE(SceUltSemaphore, 256); struct SceUltUlthreadRuntimeOptParam { _SceUltOptParamHeader header; le_t oneShotThreadStackSize; le_t workerThreadPriority; le_t workerThreadCpuAffinityMask; le_t workerThreadAttr; vm::lcptr workerThreadOptParam; le_t reserved[11]; }; CHECK_SIZE(SceUltUlthreadRuntimeOptParam, 128); struct SceUltUlthreadRuntime { le_t reserved[128]; }; CHECK_SIZE(SceUltUlthreadRuntime, 1024); struct SceUltUlthreadOptParam { _SceUltOptParamHeader header; le_t attribute; le_t reserved_0; le_t reserved[13]; }; CHECK_SIZE(SceUltUlthreadOptParam, 128); struct SceUltUlthread { le_t reserved[32]; }; CHECK_SIZE(SceUltUlthread, 256); using SceUltUlthreadEntry = s32(u32 arg);