summaryrefslogtreecommitdiff
path: root/include/user/kernel/threadmgr.h
diff options
context:
space:
mode:
authorReiko Asakura2021-01-19 20:35:29 -0500
committerReiko Asakura2021-01-19 20:35:29 -0500
commit1fb507081a37e929f2535939473f29f9c034b95b (patch)
tree093b87475da65087876ad112d12a26d1b165c034 /include/user/kernel/threadmgr.h
parentRemove dupe: sysmem related (diff)
downloadvds-libraries-1fb507081a37e929f2535939473f29f9c034b95b.tar.gz
Remove dupe: kernel/threadmgr.h
Diffstat (limited to 'include/user/kernel/threadmgr.h')
-rw-r--r--include/user/kernel/threadmgr.h1505
1 files changed, 3 insertions, 1502 deletions
diff --git a/include/user/kernel/threadmgr.h b/include/user/kernel/threadmgr.h
index 6ebd8b3..9c4d136 100644
--- a/include/user/kernel/threadmgr.h
+++ b/include/user/kernel/threadmgr.h
@@ -1,58 +1,12 @@
#ifndef _PSP2_KERNEL_THREADMGR_H_
#define _PSP2_KERNEL_THREADMGR_H_
-#include <psp2common/kernel/threadmgr.h>
+#include_next <kernel/threadmgr.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
+SCE_CDECL_BEGIN
/* Threads. */
-/** Structure to hold the status information for a thread
- * @see sceKernelGetThreadInfo
- */
-typedef struct _SceKernelThreadInfo {
- /** Size of the structure */
- SceSize size;
- SceUID processId;
- char name[SCE_UID_NAMELEN+1];
- SceUInt32 attr;
- SceUInt32 status;
- SceKernelThreadEntry entry;
- void *pStack;
- SceSize stackSize;
- SceInt32 initPriority;
- SceInt32 currentPriority;
- SceInt32 initCpuAffinityMask;
- SceInt32 currentCpuAffinityMask;
- SceInt32 currentCpuId;
- SceInt32 lastExecutedCpuId;
- SceUInt32 waitType;
- SceUID waitId;
- SceInt32 exitStatus;
- SceKernelSysClock runClocks;
- SceUInt32 intrPreemptCount;
- SceUInt32 threadPreemptCount;
- SceUInt32 threadReleaseCount;
- SceInt32 changeCpuCount;
- /** Function notify callback UID */
- SceInt32 fNotifyCallback;
- SceInt32 reserved;
-} SceKernelThreadInfo;
-
-/** Statistics about a running thread.
- * @see sceKernelGetThreadRunStatus.
- */
-typedef struct SceKernelThreadRunStatus {
- SceSize size;
- struct {
- SceUID processId;
- SceUID threadId;
- int priority;
- } cpuInfo[SCE_KERNEL_MAX_CPU];
-} SceKernelThreadRunStatus;
-
/* Sure there must be more than this, but haven't seen them */
typedef enum SceThreadStatus {
SCE_THREAD_RUNNING = 1,
@@ -64,174 +18,6 @@ typedef enum SceThreadStatus {
} SceThreadStatus;
/**
- * Create a thread
- *
- * @param pName - An arbitrary thread name.
- * @param entry - The thread function to run when started.
- * @param initPriority - The initial priority of the thread. Less if higher priority.
- * @param stackSize - The size of the initial stack.
- * @param attr - The thread attributes, zero or more of ::SceThreadAttributes.
- * @param cpuAffinityMask - The CPU affinity mask
- * @param pOptParam - Additional options specified by ::SceKernelThreadOptParam.
-
- * @return UID of the created thread, or an error code.
- */
-SceUID sceKernelCreateThread(
- const char *pName,
- SceKernelThreadEntry entry,
- SceInt32 initPriority,
- SceSize stackSize,
- SceUInt32 attr,
- SceInt32 cpuAffinityMask,
- const SceKernelThreadOptParam *pOptParam);
-
-/**
- * Delate a thread
- *
- * @param threadId - UID of the thread to be deleted.
- *
- * @return < 0 on error.
- */
-SceInt32 sceKernelDeleteThread(SceUID threadId);
-
-/**
- * Start a created thread
- *
- * @param threadId - Thread id from ::sceKernelCreateThread
- * @param argSize - Length of the data pointed to by argp, in bytes
- * @param pArgBlock - Pointer to the arguments.
- */
-SceInt32 sceKernelStartThread(SceUID threadId, SceSize argSize, const void *pArgBlock);
-
-/**
- * Exit a thread
- *
- * @param exitStatus - Exit status.
- */
-SceInt32 sceKernelExitThread(SceInt32 exitStatus);
-
-/**
- * Exit a thread and delete itself.
- *
- * @param exitStatus - Exit status
- */
-SceInt32 sceKernelExitDeleteThread(SceInt32 exitStatus);
-
-/**
- * Wait until a thread has ended.
- *
- * @param threadId - Id of the thread to wait for.
- * @param pExitStatus - Exit status.
- * @param pTimeout - Timeout in microseconds.
- *
- * @return < 0 on error.
- */
-SceInt32 sceKernelWaitThreadEnd(SceUID threadId, SceInt32 *pExitStatus, SceUInt32 *pTimeout);
-
-/**
- * Wait until a thread has ended and handle callbacks if necessary.
- *
- * @param threadId - Id of the thread to wait for.
- * @param pExitStatus - Exit status.
- * @param pTimeout - Timeout in microseconds.
- *
- * @return < 0 on error.
- */
-SceInt32 sceKernelWaitThreadEndCB(SceUID threadId, SceInt32 *pExitStatus, SceUInt32 *pTimeout);
-
-/**
- * Delay the current thread by a specified number of microseconds
- *
- * @param usec - Delay in microseconds.
- *
- * @par Example:
- * @code
- * sceKernelDelayThread(1000000); // Delay for a second
- * @endcode
- */
-SceInt32 sceKernelDelayThread(SceUInt32 usec);
-
-/**
- * Delay the current thread by a specified number of microseconds and handle any callbacks.
- *
- * @param usec - Delay in microseconds.
- *
- * @par Example:
- * @code
- * sceKernelDelayThread(1000000); // Delay for a second
- * @endcode
- */
-SceInt32 sceKernelDelayThreadCB(SceUInt32 usec);
-
-/**
- * Modify the attributes of the current thread.
- *
- * @param clearAttr - Bits to clear
- * @param setAttr - Bits to set
- *
- * @return < 0 on error.
- */
-SceInt32 sceKernelChangeCurrentThreadAttr(SceUInt32 clearAttr, SceUInt32 setAttr);
-
-/**
- * Change the threads current priority.
- *
- * @param threadId - The ID of the thread (from ::sceKernelCreateThread or ::sceKernelGetThreadId)
- * @param priority - The new priority (the lower the number the higher the priority)
- *
- * @par Example:
- * @code
- * int threadId = sceKernelGetThreadId();
- * // Change priority of current thread to 16
- * sceKernelChangeThreadPriority(thid, 16);
- * @endcode
- *
- * @return 0 if successful, otherwise the error code.
- */
-SceInt32 sceKernelChangeThreadPriority(SceUID threadId, SceInt32 priority);
-
-/**
- * Change the threads current priority.
- *
- * @param threadId - The ID of the thread (from ::sceKernelCreateThread or ::sceKernelGetThreadId)
- * @param priority - The new priority (the lower the number the higher the priority)
- *
- * @return old priority or error code
- */
-SceInt32 sceKernelChangeThreadPriority2(SceUID threadId, SceInt32 priority);
-
-/**
- * Get the current thread Id
- *
- * @return The thread id of the calling thread.
- */
-SceUID sceKernelGetThreadId(void);
-
-/**
- * Get the current priority of the thread you are in.
- *
- * @return The current thread priority
- */
-SceInt32 sceKernelGetThreadCurrentPriority(void);
-
-/**
- * Get the exit status of a thread.
- *
- * @param threadId - The UID of the thread to check.
- * @param pExitStatus - pointer to area to store result
- *
- * @return 0 or <0 on error
- */
-SceInt32 sceKernelGetThreadExitStatus(SceUID threadId, SceInt32 *pExitStatus);
-
-/**
- * Check remaining thread stack size
- *
- * @return Stack size at the time of function call
- */
-SceSize sceKernelCheckThreadStack(void);
-
-/**
* Get the free stack size for a thread.
*
* @param threadId - The thread ID
@@ -240,523 +26,8 @@ SceSize sceKernelCheckThreadStack(void);
*/
SceSize sceKernelGetThreadStackFreeSize(SceUID threadId);
-/**
- * Get the status information for the specified thread.
- *
- * @param threadId - Id of the thread to get status
- * @param pInfo - Pointer to the info structure to receive the data.
- * Note: The structures size field should be set to
- * sizeof(SceKernelThreadInfo) before calling this function.
- *
- * @par Example:
- * @code
- * SceKernelThreadInfo status;
- * status.size = sizeof(SceKernelThreadInfo);
- * if(sceKernelGetThreadInfo(thid, &status) == 0)
- * { Do something... }
- * @endcode
- * @return 0 if successful, otherwise the error code.
- */
-SceInt32 sceKernelGetThreadInfo(SceUID threadId, SceKernelThreadInfo *pInfo);
-
-/**
- * Retrive the runtime status of a thread.
- *
- * @param pStatus - Pointer to a ::SceKernelThreadRunStatus struct to receive the runtime status.
- *
- * @return 0 if successful, otherwise the error code.
- */
-SceInt32 sceKernelGetThreadRunStatus(SceKernelThreadRunStatus *pStatus);
-
-typedef SceInt32 (*SceKernelChangeStackFunction)(void *pArg);
-
-SceInt32 sceKernelCallWithChangeStack(
- void *pBase,
- SceSize size,
- SceKernelChangeStackFunction changeStackFunc,
- void *pCommon);
-
-SceInt32 sceKernelChangeThreadCpuAffinityMask(SceUID threadId, SceInt32 cpuAffinityMask);
-
-SceInt32 sceKernelGetThreadCpuAffinityMask(SceUID threadId);
-
-/**
- * Get the process ID of the current thread.
- *
- * @return process ID of the current thread
- */
-SceUID sceKernelGetProcessId(void);
-
-SceInt32 sceKernelCheckWaitableStatus(void);
-
-SceInt32 sceKernelChangeThreadVfpException(SceInt32 clearMask, SceInt32 setMask);
-
-SceInt32 sceKernelGetCurrentThreadVfpException(void);
-
-
-/* Semaphores. */
-
-/** Additional options used when creating semaphores. */
-typedef struct SceKernelSemaOptParam {
- /** Size of the ::SceKernelSemaOptParam structure. */
- SceSize size;
-} SceKernelSemaOptParam;
-
-/** Current state of a semaphore.
- * @see sceKernelGetSemaInfo.
- */
-typedef struct SceKernelSemaInfo {
- /** Size of the ::SceKernelSemaInfo structure. */
- SceSize size;
- /** The UID of the semaphore */
- SceUID semaId;
- /** NUL-terminated name of the semaphore. */
- char name[SCE_UID_NAMELEN + 1];
- /** Attributes. */
- SceUInt attr;
- /** The initial count the semaphore was created with. */
- int initCount;
- /** The current count. */
- int currentCount;
- /** The maximum count. */
- int maxCount;
- /** The number of threads waiting on the semaphore. */
- int numWaitThreads;
-} SceKernelSemaInfo;
-
-/**
- * Creates a new semaphore
- *
- * @par Example:
- * @code
- * int semaid;
- * semaid = sceKernelCreateSema("MySema", 0, 1, 1, NULL);
- * @endcode
- *
- * @param name - Specifies the name of the sema
- * @param attr - Sema attribute flags (normally set to 0)
- * @param initCount - Sema initial value
- * @param maxCount - Sema maximum value
- * @param pOptParam - Sema options (normally set to 0)
- * @return A semaphore id
- */
-SceUID sceKernelCreateSema(
- const char *name,
- SceUInt32 attr,
- SceInt32 initCount,
- SceInt32 maxCount,
- SceKernelSemaOptParam *pOptParam);
-
-/**
- * Destroy a semaphore
- *
- * @param semaId - The semaid returned from a previous create call.
- * @return Returns the value 0 if it's successful, otherwise negative
- */
-SceInt32 sceKernelDeleteSema(SceUID semaId);
-
-/**
- * Send a signal to a semaphore
- *
- * @par Example:
- * @code
- * // Signal the sema
- * sceKernelSignalSema(semaId, 1);
- * @endcode
- *
- * @param semaId - The sema ID returned from ::sceKernelCreateSema
- * @param signalCount - The amount to signal the sema (i.e. if 2 then increment the sema by 2)
- *
- * @return < 0 On error.
- */
-SceInt32 sceKernelSignalSema(SceUID semaId, SceInt32 signalCount);
-
-/**
- * Lock a semaphore
- *
- * @par Example:
- * @code
- * sceKernelWaitSema(semaId, 1, 0);
- * @endcode
- *
- * @param semaId - The sema id returned from ::sceKernelCreateSema
- * @param needCount - The value to wait for (i.e. if 1 then wait till reaches a signal state of 1)
- * @param pTimeout - Timeout in microseconds.
- *
- * @return < 0 on error.
- */
-SceInt32 sceKernelWaitSema(SceUID semaId, SceInt32 needCount, SceUInt32 *pTimeout);
-
-/**
- * Lock a semaphore and handle callbacks if necessary.
- *
- * @par Example:
- * @code
- * sceKernelWaitSemaCB(semaId, 1, 0);
- * @endcode
- *
- * @param semaId - The sema id returned from ::sceKernelCreateSema
- * @param needCount - The value to wait for (i.e. if 1 then wait till reaches a signal state of 1)
- * @param pTimeout - Timeout in microseconds.
- *
- * @return < 0 on error.
- */
-SceInt32 sceKernelWaitSemaCB(SceUID semaId, SceInt32 needCount, SceUInt32 *pTimeout);
-
-/**
- * Poll a semaphore.
- *
- * @param semaId - UID of the semaphore to poll.
- * @param needCount - The value to test for.
- *
- * @return < 0 on error.
- */
-SceInt32 sceKernelPollSema(SceUID semaId, SceInt32 needCount);
-
-/**
- * Cancels a semaphore
- *
- * @param semaId - The sema id returned from ::sceKernelCreateSema
- * @param setCount - The new lock count of the semaphore
- * @param pNumWaitThreads - Number of threads waiting for the semaphore
- * @return < 0 On error.
- */
-SceInt32 sceKernelCancelSema(SceUID semaId, SceInt32 setCount, SceUInt32 *pNumWaitThreads);
-
-/**
- * Retrieve information about a semaphore.
- *
- * @param semaId - UID of the semaphore to retrieve info for.
- * @param pInfo - Pointer to a ::SceKernelSemaInfo struct to receive the info.
- *
- * @return < 0 on error.
- */
-SceInt32 sceKernelGetSemaInfo(SceUID semaId, SceKernelSemaInfo *pInfo);
-
-SceUID sceKernelOpenSema(const char *pName);
-
-SceInt32 sceKernelCloseSema(SceUID semaId);
-
-
-/* Mutexes. */
-
-/** Additional options used when creating mutexes. */
-typedef struct SceKernelMutexOptParam {
- /** Size of the ::SceKernelMutexOptParam structure. */
- SceSize size;
- SceInt32 ceilingPriority;
-} SceKernelMutexOptParam;
-
-/** Current state of a mutex.
- * @see sceKernelGetMutexInfo.
- */
-typedef struct SceKernelMutexInfo {
- /** Size of the ::SceKernelMutexInfo structure. */
- SceSize size;
- /** The UID of the mutex. */
- SceUID mutexId;
- /** NUL-terminated name of the mutex. */
- char name[SCE_UID_NAMELEN + 1];
- /** Attributes. */
- SceUInt32 attr;
- /** The initial count the mutex was created with. */
- SceInt32 initCount;
- /** The current count. */
- SceInt32 currentCount;
- /** The UID of the current owner of the mutex. */
- SceUID currentOwnerId;
- /** The number of threads waiting on the mutex. */
- SceUInt32 numWaitThreads;
- SceInt32 ceilingPriority;
-} SceKernelMutexInfo;
-
-/**
- * Creates a new mutex
- *
- * @par Example:
- * @code
- * int mutexid;
- * mutexid = sceKernelCreateMutex("MyMutex", 0, 1, NULL);
- * @endcode
- *
- * @param pName - Specifies the name of the mutex
- * @param attr - Mutex attribute flags (normally set to 0)
- * @param initCount - Mutex initial value
- * @param pOptParam - Mutex options (normally set to 0)
- * @return A mutex id
- */
-SceUID sceKernelCreateMutex(
- const char *pName,
- SceUInt32 attr,
- SceInt32 initCount,
- const SceKernelMutexOptParam *pOptParam);
-
-/**
- * Destroy a mutex
- *
- * @param mutexId - The mutex id returned from ::sceKernelCreateMutex
- * @return Returns the value 0 if it's successful, otherwise < 0
- */
-SceInt32 sceKernelDeleteMutex(SceUID mutexId);
-
-/**
- * Open a mutex
- *
- * @param pName - The name of the mutex to open
- * @return Returns an UID if successful, otherwise < 0
- */
-SceUID sceKernelOpenMutex(const char *pName);
-
-/**
- * Close a mutex
- *
- * @param mutexId - The mutex id returned from ::sceKernelCreateMutex
- * @return Returns the value 0 if it's successful, otherwise < 0
- */
-SceInt32 sceKernelCloseMutex(SceUID mutexId);
-
-/**
- * Lock a mutex
- *
- * @param mutexId - The mutex id returned from ::sceKernelCreateMutex
- * @param lockCount - The value to increment to the lock count of the mutex
- * @param pTimeout - Timeout in microseconds
- * @return < 0 On error.
- */
-SceInt32 sceKernelLockMutex(SceUID mutexId, SceInt32 lockCount, SceUInt32 *pTimeout);
-
-/**
- * Lock a mutex and handle callbacks if necessary.
- *
- * @param mutexId - The mutex id returned from ::sceKernelCreateMutex
- * @param lockCount - The value to increment to the lock count of the mutex
- * @param pTimeout - Timeout in microseconds
- * @return < 0 On error.
- */
-SceInt32 sceKernelLockMutexCB(SceUID mutexId, SceInt32 lockCount, SceUInt32 *pTimeout);
-
-/**
- * Try to lock a mutex (non-blocking)
- *
- * @param mutexId - The mutex id returned from ::sceKernelCreateMutex
- * @param lockCount - The value to increment to the lock count of the mutex
- * @return < 0 On error.
- */
-SceInt32 sceKernelTryLockMutex(SceUID mutexId, SceInt32 lockCount);
-
-/**
- * Try to unlock a mutex (non-blocking)
- *
- * @param mutexId - The mutex id returned from ::sceKernelCreateMutex
- * @param unlockCount - The value to decrement to the lock count of the mutex
- * @return < 0 On error.
- */
-SceInt32 sceKernelUnlockMutex(SceUID mutexId, SceInt32 unlockCount);
-
-/**
- * Cancels a mutex
- *
- * @param mutexId - The mutex id returned from ::sceKernelCreateMutex
- * @param newCount - The new lock count of the mutex
- * @param pNumWaitThreads - Number of threads waiting for the mutex
- * @return < 0 On error.
- */
-SceInt32 sceKernelCancelMutex(SceUID mutexId, SceInt32 newCount, SceUInt32 *pNumWaitThreads);
-
-/**
- * Retrieve information about a mutex.
- *
- * @param mutexId - UID of the mutex to retrieve info for.
- * @param pInfo - Pointer to a ::SceKernelMutexInfo struct to receive the info.
- *
- * @return < 0 on error.
- */
-SceInt32 sceKernelGetMutexInfo(SceUID mutexId, SceKernelMutexInfo *pInfo);
-
-
-/* Event flags. */
-
-/** Structure to hold the event flag information */
-typedef struct SceKernelEventFlagInfo {
- SceSize size;
- SceUID evfId;
- char name[SCE_UID_NAMELEN + 1];
- SceUInt32 attr;
- SceUInt32 initPattern;
- SceUInt32 currentPattern;
- SceUInt32 numWaitThreads;
-} SceKernelEventFlagInfo;
-
-typedef struct SceKernelEventFlagOptParam {
- SceSize size;
-} SceKernelEventFlagOptParam;
-
-/**
- * Create an event flag.
- *
- * @param pName - The name of the event flag.
- * @param attr - Attributes from ::SceEventFlagAttributes
- * @param initPattern - Initial bit pattern.
- * @param pOptParam - Options, set to NULL
- * @return < 0 on error. >= 0 event flag id.
- *
- * @par Example:
- * @code
- * int evid;
- * evid = sceKernelCreateEventFlag("wait_event", 0, 0, NULL);
- * @endcode
- */
-SceUID sceKernelCreateEventFlag(
- const char *pName,
- SceUInt32 attr,
- SceUInt32 initPattern,
- const SceKernelEventFlagOptParam *pOptParam);
-
-/**
- * Set an event flag bit pattern.
- *
- * @param evfId - The event id returned by ::sceKernelCreateEventFlag.
- * @param bitPattern - The bit pattern to set.
- *
- * @return < 0 On error
- */
-SceInt32 sceKernelSetEventFlag(SceUID evfId, SceUInt32 bitPattern);
-
-/**
- * Clear a event flag bit pattern
- *
- * @param evfId - The event id returned by ::sceKernelCreateEventFlag
- * @param bitPattern - The bits to unset
- *
- * @return < 0 on Error
- */
-SceInt32 sceKernelClearEventFlag(SceUID evfId, SceUInt32 bitPattern);
-
-/**
- * Poll an event flag for a given bit pattern.
- *
- * @param evfId - The event id returned by ::sceKernelCreateEventFlag.
- * @param bitPattern - The bit pattern to poll for.
- * @param waitMode - Wait type, one or more of ::SceEventFlagWaitTypes or'ed together
- * @param pResultPat - The bit pattern that was matched.
- * @return < 0 On error
- */
-SceInt32 sceKernelPollEventFlag(SceUID evfId, SceUInt32 bitPattern, SceUInt32 waitMode, SceUInt32 *pResultPat);
-
-/**
- * Wait for an event flag for a given bit pattern.
- *
- * @param evfId - The event id returned by ::sceKernelCreateEventFlag.
- * @param bitPattern - The bit pattern to poll for.
- * @param waitMode - Wait type, one or more of ::SceEventFlagWaitTypes or'ed together
- * @param pResultPat - The bit pattern that was matched.
- * @param pTimeout - Timeout in microseconds
- * @return < 0 On error
- */
-SceInt32 sceKernelWaitEventFlag(
- SceUID evfId,
- SceUInt32 bitPattern,
- SceUInt32 waitMode,
- SceUInt32 *pResultPat,
- SceUInt32 *pTimeout);
-
-/**
- * Wait for an event flag for a given bit pattern with callback.
- *
- * @param evfId - The event id returned by ::sceKernelCreateEventFlag.
- * @param bitPattern - The bit pattern to poll for.
- * @param waitMode - Wait type, one or more of ::SceEventFlagWaitTypes or'ed together
- * @param pResultPat - The bit pattern that was matched.
- * @param pTimeout - Timeout in microseconds
- * @return < 0 On error
- */
-SceInt32 sceKernelWaitEventFlagCB(
- SceUID evfId,
- SceUInt32 bitPattern,
- SceUInt32 waitMode,
- SceUInt32 *pResultPat,
- SceUInt32 *pTimeout);
-
-/**
- * Delete an event flag
- *
- * @param evfId - The event id returned by ::sceKernelCreateEventFlag.
- *
- * @return < 0 On error
- */
-SceInt32 sceKernelDeleteEventFlag(SceUID evfId);
-
-/**
- * Get the status of an event flag.
- *
- * @param evfId - The UID of the event.
- * @param pInfo - A pointer to a ::SceKernelEventFlagInfo structure.
- *
- * @return < 0 on error.
- */
-SceInt32 sceKernelGetEventFlagInfo(SceUID evfId, SceKernelEventFlagInfo *pInfo);
-
-SceUID sceKernelOpenEventFlag(const char *pName);
-
-SceInt32 sceKernelCloseEventFlag(SceUID evfId);
-
-SceInt32 sceKernelCancelEventFlag(SceUID evfId, SceUInt32 setPattern, SceUInt32 *pNumWaitThreads);
-
/* Condition variables */
-/** Additional options used when creating condition variables. */
-typedef struct SceKernelCondOptParam {
- /** Size of the ::SceKernelCondOptParam structure. */
- SceSize size;
-} SceKernelCondOptParam;
-
-/** Current state of a condition variable.
- * @see sceKernelGetCondInfo.
- */
-typedef struct SceKernelCondInfo {
- /** Size of the ::SceKernelCondInfo structure. */
- SceSize size;
- /** The UID of the condition variable. */
- SceUID condId;
- /** NUL-terminated name of the condition variable. */
- char name[SCE_UID_NAMELEN + 1];
- /** Attributes. */
- SceUInt attr;
- /** Mutex associated with the condition variable. */
- SceUID mutexId;
- /** The number of threads waiting on the condition variable. */
- int numWaitThreads;
-} SceKernelCondInfo;
-
-/**
- * Creates a new condition variable
- *
- * @par Example:
- * @code
- * SceUID condId;
- * condId = sceKernelCreateCond("MyCond", 0, mutexId, NULL);
- * @endcode
- *
- * @param pName - Specifies the name of the condition variable
- * @param attr - Condition variable attribute flags (normally set to 0)
- * @param mutexId - Mutex to be related to the condition variable
- * @param pOptParam - Condition variable options (normally set to 0)
- * @return A condition variable id
- */
-SceUID sceKernelCreateCond(
- const char *pName,
- SceUInt32 attr,
- SceUID mutexId,
- const SceKernelCondOptParam *pOptParam);
-
-/**
- * Destroy a condition variable
- *
- * @param condition variableid - The condition variable id returned from ::sceKernelCreateCond
- * @return Returns the value 0 if it's successful, otherwise < 0
- */
-SceInt32 sceKernelDeleteCond(SceUID condId);
-
/**
* Open a condition variable
*
@@ -774,15 +45,6 @@ SceUID sceKernelOpenCond(const char *pName);
SceInt32 sceKernelCloseCond(SceUID condId);
/**
- * Waits for a signal of a condition variable
- *
- * @param condId - The condition variable id returned from ::sceKernelCreateCond
- * @param pTimeout - Timeout in microseconds
- * @return < 0 On error.
- */
-SceInt32 sceKernelWaitCond(SceUID condId, SceUInt32 *pTimeout);
-
-/**
* Waits for a signal of a condition variable (with callbacks)
*
* @param condId - The condition variable id returned from ::sceKernelCreateCond
@@ -791,767 +53,8 @@ SceInt32 sceKernelWaitCond(SceUID condId, SceUInt32 *pTimeout);
*/
SceInt32 sceKernelWaitCondCB(SceUID condId, SceUInt32 *pTimeout);
-/**
- * Signals a condition variable
- *
- * @param condId - The condition variable id returned from ::sceKernelCreateCond
- * @return < 0 On error.
- */
-SceInt32 sceKernelSignalCond(SceUID condId);
-
-/**
- * Signals a condition variable to all threads waiting for it
- *
- * @param condId - The condition variable id returned from ::sceKernelCreateCond
- * @return < 0 On error.
- */
-SceInt32 sceKernelSignalCondAll(SceUID condId);
-
-/**
- * Signals a condition variable to a specific thread waiting for it
- *
- * @param condId - The condition variable id returned from ::sceKernelCreateCond
- * @param threadId - The thread id returned from ::sceKernelCreateThread
- * @return < 0 On error.
- */
-SceInt32 sceKernelSignalCondTo(SceUID condId, SceUID threadId);
-
-SceInt32 sceKernelGetCondInfo(SceUID condId, SceKernelCondInfo *pInfo);
-
-/* Callbacks. */
-
-/** Callback function prototype */
-typedef SceInt32 (*SceKernelCallbackFunction)(
- SceUID notifyId,
- SceInt32 notifyCount,
- SceInt32 notifyArg,
- void *pCommon);
-
-/** Structure to hold the status information for a callback */
-typedef struct SceKernelCallbackInfo {
- /** Size of the structure (i.e. sizeof(SceKernelCallbackInfo)) */
- SceSize size;
- /** The UID of the callback. */
- SceUID callbackId;
- /** The name given to the callback */
- char name[SCE_UID_NAMELEN + 1];
- SceUInt32 attr;
- /** The thread id associated with the callback */
- SceUID threadId;
- /** Pointer to the callback function */
- SceKernelCallbackFunction callbackFunc;
- SceUID notifyId;
- SceInt32 notifyCount;
- SceInt32 notifyArg;
- /** User supplied argument for the callback */
- void *pCommon;
-} SceKernelCallbackInfo;
-
-/**
- * Create callback
- *
- * @par Example:
- * @code
- * int cbid;
- * cbid = sceKernelCreateCallback("Exit Callback", 0, exit_cb, NULL);
- * @endcode
- *
- * @param name - A textual name for the callback
- * @param attr - Set to 0. There are no attributes.
- * @param callbackFunc - A pointer to a function that will be called as the callback
- * @param pCommon - Common data for the callback
- *
- * @return >= 0 A callback id which can be used in subsequent functions, < 0 an error.
- */
-SceUID sceKernelCreateCallback(
- const char *name,
- SceUInt32 attr,
- SceKernelCallbackFunction callbackFunc,
- void *pCommon);
-
-/**
- * Gets the status of a specified callback.
- *
- * @param callbackId - The UID of the callback to retrieve info for.
- * @param pInfo - Pointer to a status structure. The size parameter should be
- * initialised before calling.
- *
- * @return < 0 on error.
- */
-SceInt32 sceKernelGetCallbackInfo(SceUID callbackId, SceKernelCallbackInfo *pInfo);
-
-/**
- * Delete a callback
- *
- * @param callbackId - The UID of the specified callback
- *
- * @return 0 on success, < 0 on error
- */
-SceInt32 sceKernelDeleteCallback(SceUID callbackId);
-
-/**
- * Notify a callback
- *
- * @param callbackId - The UID of the specified callback
- * @param notifyArg - Passed as arg2 into the callback function
- *
- * @return 0 on success, < 0 on error
- */
-SceInt32 sceKernelNotifyCallback(SceUID callbackId, SceInt32 notifyArg);
-
-/**
- * Cancel a callback ?
- *
- * @param callbackId - The UID of the specified callback
- *
- * @return 0 on success, < 0 on error
- */
-SceInt32 sceKernelCancelCallback(SceUID callbackId);
-
-/**
- * Get the callback count
- *
- * @param callbackId - The UID of the specified callback
- *
- * @return The callback count, < 0 on error
- */
-SceInt32 sceKernelGetCallbackCount(SceUID callbackId);
-
-/**
- * Check callback notification
- *
- * @return Callback notification count or < 0 on error
- */
-SceInt32 sceKernelCheckCallback(void);
-
-
-/* Message pipes */
-
-typedef struct _SceKernelMsgPipeOptParam {
- SceSize size;
- SceUInt32 attr;
- SceInt32 reserved[2];
- SceUInt32 openLimit;
-} SceKernelMsgPipeOptParam;
-
-/**
- * Create a message pipe
- *
- * @param pName - Name of the pipe
- * @param type - Message pipe memory type
- * @param attr - Message pipe attribute
- * @param bufSize - The size of the internal buffer in multiples of 0x1000 (4KiB) up to 32MiB
- * @param pOptParam - Message pipe options
- *
- * @return The UID of the created pipe, < 0 on error
- */
-SceUID sceKernelCreateMsgPipe(
- const char *pName,
- SceUInt32 type,
- SceUInt32 attr,
- SceSize bufSize,
- const SceKernelMsgPipeOptParam *pOptParam);
-
-/**
- * Delete a message pipe
- *
- * @param msgPipeId - The UID of the pipe
- *
- * @return 0 on success, < 0 on error
- */
-SceInt32 sceKernelDeleteMsgPipe(SceUID msgPipeId);
-
-/**
- * Send a message to a pipe
- *
- * @param msgPipeId - The UID of the pipe
- * @param pSendBuf - Pointer to the message
- * @param sendSize - Size of the message
- * @param waitMode - Wait mode when sending
- * @param pResult - Pointer to area to store sent size
- * @param pTimeout - Timeout in microseconds
- *
- * @return 0 on success, < 0 on error
- */
-SceInt32 sceKernelSendMsgPipe(
- SceUID msgPipeId,
- const void *pSendBuf,
- SceSize sendSize,
- SceUInt32 waitMode,
- SceSize *pResult,
- SceUInt32 *pTimeout);
-
-/**
- * Send a message to a pipe (with callback)
- *
- * @param msgPipeId - The UID of the pipe
- * @param pSendBuf - Pointer to the message
- * @param sendSize - Size of the message
- * @param waitMode - Wait mode when sending
- * @param pResult - Pointer to area to store sent size
- * @param pTimeout - Timeout in microseconds
- *
- * @return 0 on success, < 0 on error
- */
-SceInt32 sceKernelSendMsgPipeCB(
- SceUID msgPipeId,
- const void *pSendBuf,
- SceSize sendSize,
- SceUInt32 waitMode,
- SceSize *pResult,
- SceUInt32 *pTimeout);
-
-/**
- * Send a message to a pipe (non blocking)
- *
- * @param msgPipeId - The UID of the pipe
- * @param pSendBuf - Pointer to the message
- * @param sendSize - Size of the message
- * @param waitMode - Wait mode when sending
- * @param pResult - Pointer to area to store sent size
- *
- * @return 0 on success, < 0 on error
- */
-SceInt32 sceKernelTrySendMsgPipe(
- SceUID msgPipeId,
- const void *pSendBuf,
- SceSize sendSize,
- SceUInt32 waitMode,
- SceSize *pResult);
-
-/**
- * Receive a message from a pipe
- *
- * @param msgPipeId - The UID of the pipe
- * @param pRecvBuf - Pointer to the message
- * @param recvSize - Size of the message
- * @param waitMode - Wait mode when receiving
- * @param pResult - Pointer to area to store received size
- * @param pTimeout - Timeout in microseconds
- *
- * @return 0 on success, < 0 on error
- */
-SceInt32 sceKernelReceiveMsgPipe(
- SceUID msgPipeId,
- const void *pRecvBuf,
- SceSize recvSize,
- SceUInt32 waitMode,
- SceSize *pResult,
- SceUInt32 *pTimeout);
-
-/**
- * Receive a message from a pipe (with callback)
- *
- * @param msgPipeId - The UID of the pipe
- * @param pRecvBuf - Pointer to the message
- * @param recvSize - Size of the message
- * @param waitMode - Wait mode when receiving
- * @param pResult - Pointer to area to store received size
- * @param pTimeout - Timeout in microseconds
- *
- * @return 0 on success, < 0 on error
- */
-SceInt32 sceKernelReceiveMsgPipeCB(
- SceUID msgPipeId,
- const void *pRecvBuf,
- SceSize recvSize,
- SceUInt32 waitMode,
- SceSize *pResult,
- SceUInt32 *pTimeout);
-
-/**
- * Receive a message from a pipe (non blocking)
- *
- * @param msgPipeId - The UID of the pipe
- * @param pRecvBuf - Pointer to the message
- * @param recvSize - Size of the message
- * @param waitMode - Wait mode when receiving
- * @param pResult - Pointer to area to store received size
- *
- * @return 0 on success, < 0 on error
- */
-SceInt32 sceKernelTryReceiveMsgPipe(
- SceUID msgPipeId,
- void *pRecvBuf,
- SceSize recvSize,
- SceUInt32 waitMode,
- SceSize *pResult);
-
-/**
- * Cancel a message pipe
- *
- * @param msgPipeId - UID of the pipe to cancel
- * @param pNumSendWaitThreads - Receive number of sending threads, NULL is valid
- * @param pNumReceiveWaitThreads - Receive number of receiving threads, NULL is valid
- *
- * @return 0 on success, < 0 on error
- */
-SceInt32 sceKernelCancelMsgPipe(
- SceUID msgPipeId,
- SceUInt32 *pNumSendWaitThreads,
- SceUInt32 *pNumReceiveWaitThreads);
-
-/** Message Pipe status info */
-typedef struct SceKernelMppInfo {
- SceSize size;
- SceUID msgPipeId;
- char name[SCE_UID_NAMELEN + 1];
- SceUInt32 attr;
- SceSize bufSize;
- SceSize freeSize;
- SceUInt32 numSendWaitThreads;
- SceUInt32 numReceiveWaitThreads;
-} SceKernelMppInfo;
-
-/**
- * Get the status of a Message Pipe
- *
- * @param msgPipeId - The uid of the Message Pipe
- * @param pInfo - Pointer to a ::SceKernelMppInfo structure
- *
- * @return 0 on success, < 0 on error
- */
-SceInt32 sceKernelGetMsgPipeInfo(SceUID msgPipeId, SceKernelMppInfo *pInfo);
-
-SceUID sceKernelOpenMsgPipe(const char *pName);
-
-SceInt32 sceKernelCloseMsgPipe(SceUID msgPipeId);
-
-typedef struct _SceKernelMsgPipeVector {
- void *pBase;
- SceSize bufSize;
-} SceKernelMsgPipeVector;
-
-SceInt32 sceKernelSendMsgPipeVector(
- SceUID msgPipeId,
- const SceKernelMsgPipeVector *pVector,
- SceUInt32 numVector,
- SceUInt32 waitMode,
- SceSize *pResult,
- SceUInt32 *pTimeout
-);
-
-SceInt32 sceKernelSendMsgPipeVectorCB(
- SceUID msgPipeId,
- const SceKernelMsgPipeVector *pVector,
- SceUInt32 numVector,
- SceUInt32 waitMode,
- SceSize *pResult,
- SceUInt32 *pTimeout);
-
-SceInt32 sceKernelTrySendMsgPipeVector(
- SceUID msgPipeId,
- const SceKernelMsgPipeVector *pVector,
- SceUInt32 numVector,
- SceUInt32 waitMode,
- SceSize *pResult);
-
-SceInt32 sceKernelReceiveMsgPipeVector(
- SceUID msgPipeId,
- const SceKernelMsgPipeVector *pVector,
- SceUInt32 numVector,
- SceUInt32 waitMode,
- SceSize *pResult,
- SceUInt32 *pTimeout);
-
-SceInt32 sceKernelReceiveMsgPipeVectorCB(
- SceUID msgPipeId,
- const SceKernelMsgPipeVector *pVector,
- SceUInt32 numVector,
- SceUInt32 waitMode,
- SceSize *pResult,
- SceUInt32 *pTimeout);
-
-SceInt32 sceKernelTryReceiveMsgPipeVector(
- SceUID msgPipeId,
- const SceKernelMsgPipeVector *pVector,
- SceUInt32 numVector,
- SceUInt32 waitMode,
- SceSize *pResult);
-
-/* Thread event */
-
-SceInt32 sceKernelRegisterCallbackToEvent(SceUID eventId, SceUID callbackId);
-
-SceInt32 sceKernelUnregisterCallbackFromEvent(SceUID eventId, SceUID callbackId);
-
-SceInt32 sceKernelUnregisterCallbackFromEventAll(SceUID eventId);
-
-typedef SceInt32 (*SceKernelThreadEventHandler)(SceInt32 type, SceUID threadId, SceInt32 arg, void *pCommon);
-
-typedef struct _SceKernelEventInfo {
- SceSize size;
- SceUID eventId;
- char name[SCE_UID_NAMELEN + 1];
- SceUInt32 attr;
- SceUInt32 eventPattern;
- SceUInt64 userData;
- SceUInt32 numWaitThreads;
- SceInt32 reserved[1];
-} SceKernelEventInfo;
-
-SceInt32 sceKernelWaitEvent(
- SceUID eventId,
- SceUInt32 waitPattern,
- SceUInt32 *pResultPattern,
- SceUInt64 *pUserData,
- SceUInt32 *pTimeout
-);
-
-SceInt32 sceKernelWaitEventCB(
- SceUID eventId,
- SceUInt32 waitPattern,
- SceUInt32 *pResultPattern,
- SceUInt64 *pUserData,
- SceUInt32 *pTimeout
-);
-
-SceInt32 sceKernelPollEvent(
- SceUID eventId,
- SceUInt32 bitPattern,
- SceUInt32 *pResultPattern,
- SceUInt64 *pUserData
-);
-
-typedef struct _SceKernelWaitEvent {
- SceUID eventId;
- SceUInt32 eventPattern;
-} SceKernelWaitEvent;
-
-typedef struct _SceKernelResultEvent {
- SceUID eventId;
- SceInt32 result;
- SceUInt32 resultPattern;
- SceInt32 reserved[1];
- SceUInt64 userData;
-} SceKernelResultEvent;
-
-SceInt32 sceKernelWaitMultipleEvents(
- SceKernelWaitEvent *pWaitEventList,
- SceUInt32 numEvents,
- SceUInt32 waitMode,
- SceKernelResultEvent *pResultEventList,
- SceUInt32 *pTimeout);
-
-SceInt32 sceKernelWaitMultipleEventsCB(
- SceKernelWaitEvent *pWaitEventList,
- SceUInt32 numEvents,
- SceUInt32 waitMode,
- SceKernelResultEvent *pResultEventList,
- SceUInt32 *pTimeout);
-
-SceInt32 sceKernelSetEvent(
- SceUID eventId,
- SceUInt32 setPattern,
- SceUInt64 userData);
-
-SceInt32 sceKernelSetEventWithNotifyCallback(
- SceUID eventId,
- SceUInt32 setPattern,
- SceUInt64 userData,
- SceInt32 notifyArg);
-
-SceInt32 sceKernelPulseEvent(
- SceUID eventId,
- SceUInt32 pulsePattern,
- SceUInt64 userData);
-
-SceInt32 sceKernelPulseEventWithNotifyCallback(
- SceUID eventId,
- SceUInt32 pulsePattern,
- SceUInt64 userData,
- SceInt32 notifyArg);
-
-SceInt32 sceKernelClearEvent(
- SceUID eventId,
- SceUInt32 clearPattern);
-
-SceInt32 sceKernelCancelEventWithSetPattern(
- SceUID eventId,
- SceUInt32 setPattern,
- SceUInt64 userData,
- SceUInt32 *pNumWaitThreads);
-
-SceInt32 sceKernelGetEventPattern(
- SceUID eventId,
- SceUInt32 *pPattern);
-
-SceInt32 sceKernelCancelEvent(
- SceUID eventId,
- SceUInt32 *pNumWaitThreads);
-
-SceInt32 sceKernelGetEventInfo(
- SceUID eventId,
- SceKernelEventInfo *pInfo);
-
-/* Reader/writer lock */
-
-typedef struct _SceKernelRWLockOptParam {
- SceSize size;
-} SceKernelRWLockOptParam;
-
-typedef struct _SceKernelRWLockInfo {
- SceSize size;
- SceUID rwLockId;
- char name[SCE_UID_NAMELEN + 1];
- SceUInt32 attr;
- SceInt32 lockCount;
- SceUID writeOwnerId;
- SceUInt32 numReadWaitThreads;
- SceUInt32 numWriteWaitThreads;
-} SceKernelRWLockInfo;
-
-SceUID sceKernelCreateRWLock(
- const char *pName,
- SceUInt32 attr,
- const SceKernelRWLockOptParam*pOptParam);
-
-SceInt32 sceKernelDeleteRWLock(SceUID rwLockId);
-
-SceUID sceKernelOpenRWLock(const char pName);
-
-SceInt32 sceKernelCloseRWLock(SceUID rwLockId);
-
-SceInt32 sceKernelLockReadRWLock(SceUID rwLockId, SceUInt32 *pTimeout);
-
-SceInt32 sceKernelLockReadRWLockCB(SceUID rwLockId, SceUInt32 *pTimeout);
-
-SceInt32 sceKernelTryLockReadRWLock(SceUID rwLockId);
-
-SceInt32 sceKernelUnlockReadRWLock(SceUID rwLockId);
-
-SceInt32 sceKernelLockWriteRWLock(SceUID rwLockId, SceUInt32 *pTimeout);
-
-SceInt32 sceKernelLockWriteRWLockCB(SceUID rwLockId, SceUInt32 *pTimeout);
-
-SceInt32 sceKernelTryLockWriteRWLock(SceUID rwLockId);
-
-SceInt32 sceKernelUnlockWriteRWLock(SceUID rwLockId);
-
-SceInt32 sceKernelCancelRWLock(
- SceUID rwLockId,
- SceUInt32 *pNumReadWaitThreads,
- SceUInt32 *pNumWriteWaitThreads,
- SceInt32 flag);
-
-SceInt32 sceKernelGetRWLockInfo(SceUID rwLockId, SceKernelRWLockInfo *pInfo);
-
-/* Thread timer */
-
-typedef struct _SceKernelTimerOptParam {
- SceSize size;
-} SceKernelTimerOptParam;
-
-typedef struct _SceKernelTimerInfo {
- SceSize size;
- SceUID timerId;
- char name[SCE_UID_NAMELEN + 1];
- SceUInt32 attr;
- SceInt32 fActive;
- SceKernelSysClock baseTime;
- SceKernelSysClock currentTime;
- SceKernelSysClock schedule;
- SceKernelSysClock interval;
- SceInt32 type;
- SceInt32 fRepeat;
- SceUInt32 numWaitThreads;
- SceInt32 reserved[1];
-} SceKernelTimerInfo;
-
-SceUID sceKernelCreateTimer(
- const char *pName,
- SceUInt32 attr,
- const SceKernelTimerOptParam *pOptParam);
-
-SceInt32 sceKernelDeleteTimer(SceUID timerId);
-
-SceUID sceKernelOpenTimer(const char *pName);
-
-SceInt32 sceKernelCloseTimer(SceUID timerId);
-
-SceInt32 sceKernelStartTimer(SceUID timerId);
-
-SceInt32 sceKernelStopTimer(SceUID timerId);
-
-SceInt32 sceKernelGetTimerBase(SceUID timerId, SceKernelSysClock *pBase);
-
-SceUInt64 sceKernelGetTimerBaseWide(SceUID timerId);
-
-SceInt32 sceKernelGetTimerTime(SceUID timerId, SceKernelSysClock *pClock);
-
-SceUInt64 sceKernelGetTimerTimeWide(SceUID timerId);
-
-SceInt32 sceKernelSetTimerTime(SceUID timerId, SceKernelSysClock *pClock);
-
-SceUInt64 sceKernelSetTimerTimeWide(SceUID timerId, SceUInt64 clock);
-
-SceInt32 sceKernelSetTimerEvent(
- SceUID timerId,
- SceInt32 type,
- SceKernelSysClock *pInterval,
- SceInt32 fRepeat);
-
-SceInt32 sceKernelCancelTimer(SceUID timerId, SceUInt32 *pNumWaitThreads);
-
-SceInt32 sceKernelGetTimerInfo(SceUID timerId, SceKernelTimerInfo *pInfo);
-
-SceInt32 sceKernelGetTimerEventRemainingTime(SceUID timerId, SceKernelSysClock *pClock);
-
-/* Simple event */
-
-typedef struct _SceKernelSimpleEventOptParam {
- SceSize size;
-} SceKernelSimpleEventOptParam;
-
-SceUID sceKernelCreateSimpleEvent(
- const char *pName,
- SceUInt32 attr,
- SceUInt32 initPattern,
- const SceKernelSimpleEventOptParam *pOptParam);
-
-SceInt32 sceKernelDeleteSimpleEvent(SceUID simpleEventId);
-
-SceUID sceKernelOpenSimpleEvent(const char *pName);
-
-SceInt32 sceKernelCloseSimpleEvent(SceUID simpleEventId);
-
-/* Misc. */
-
-typedef struct SceKernelSystemInfo {
- SceSize size;
- SceUInt32 activeCpuMask;
-
- struct {
- SceKernelSysClock idleClock;
- SceUInt32 comesOutOfIdleCount;
- SceUInt32 threadSwitchCount;
- } cpuInfo[SCE_KERNEL_MAX_CPU];
-} SceKernelSystemInfo;
-
-/**
- * Get the system information
- *
- * @param pInfo - Pointer to a ::SceKernelSystemInfo structure
- *
- * @return 0 on success, < 0 on error
- */
-SceInt32 sceKernelGetSystemInfo(SceKernelSystemInfo *pInfo);
-
/* Misc. */
-/** Threadmgr types */
-typedef enum SceKernelIdListType {
- SCE_KERNEL_TMID_Thread = 1,
- SCE_KERNEL_TMID_Semaphore = 2,
- SCE_KERNEL_TMID_EventFlag = 3,
- SCE_KERNEL_TMID_Mbox = 4,
- SCE_KERNEL_TMID_Vpl = 5,
- SCE_KERNEL_TMID_Fpl = 6,
- SCE_KERNEL_TMID_Mpipe = 7,
- SCE_KERNEL_TMID_Callback = 8,
- SCE_KERNEL_TMID_ThreadEventHandler = 9,
- SCE_KERNEL_TMID_Alarm = 10,
- SCE_KERNEL_TMID_VTimer = 11,
- SCE_KERNEL_TMID_SleepThread = 64,
- SCE_KERNEL_TMID_DelayThread = 65,
- SCE_KERNEL_TMID_SuspendThread = 66,
- SCE_KERNEL_TMID_DormantThread = 67
-} SceKernelIdListType;
-
-/**
- * Get the type of a Threadmgr uid
- *
- * @param uid - The uid to get the type from
- *
- * @return The type, < 0 on error
- */
-SceKernelIdListType sceKernelGetThreadmgrUIDClass(SceUID uid);
-
-/* Lightweight mutex */
-
-typedef struct SceKernelLwMutexWork {
- SceInt64 data[4];
-} SceKernelLwMutexWork;
-
-typedef struct SceKernelLwMutexOptParam {
- SceSize size;
-} SceKernelLwMutexOptParam;
-
-typedef struct _SceKernelLwMutexInfo {
- SceSize size;
- SceUID uid;
- char name[SCE_UID_NAMELEN + 1];
- SceUInt32 attr;
- SceKernelLwMutexWork *pWork;
- SceInt32 initCount;
- SceInt32 currentCount;
- SceUID currentOwnerId;
- SceUInt32 numWaitThreads;
-} SceKernelLwMutexInfo;
-
-SceInt32 sceKernelCreateLwMutex(
- SceKernelLwMutexWork *pWork,
- const char *pName,
- SceUInt32 attr,
- SceInt32 initCount,
- const SceKernelLwMutexOptParam *pOptParam);
-
-SceInt32 sceKernelDeleteLwMutex(SceKernelLwMutexWork *pWork);
-
-SceInt32 sceKernelLockLwMutex(SceKernelLwMutexWork *pWork, SceInt32 lockCount, SceUInt32 *pTimeout);
-
-SceInt32 sceKernelLockLwMutexCB(SceKernelLwMutexWork *pWork, SceInt32 lockCount, SceUInt32 *pTimeout);
-
-SceInt32 sceKernelTryLockLwMutex(SceKernelLwMutexWork *pWork, SceInt32 lockCount);
-
-SceInt32 sceKernelUnlockLwMutex(SceKernelLwMutexWork *pWork, SceInt32 unlockCount);
-
-SceInt32 sceKernelGetLwMutexInfo(SceKernelLwMutexWork *pWork, SceKernelLwMutexInfo *pInfo);
-
-SceInt32 sceKernelGetLwMutexInfoById(SceUID lwMutexId, SceKernelLwMutexInfo *pInfo);
-
-/* Lightweight condition */
-
-typedef struct SceKernelLwCondWork {
- SceInt64 data[4];
-} SceKernelLwCondWork;
-
-typedef struct SceKernelLwCondOptParam {
- SceSize size;
-} SceKernelLwCondOptParam;
-
-typedef struct _SceKernelLwCondInfo {
- SceSize size;
- SceUID uid;
- char name[SCE_UID_NAMELEN + 1];
- SceUInt32 attr;
- SceKernelLwCondWork *pWork;
- SceKernelLwMutexWork *pLwMutex;
- SceUInt32 numWaitThreads;
-} SceKernelLwCondInfo;
-
-SceInt32 sceKernelCreateLwCond(
- SceKernelLwCondWork *pWork,
- const char *pName,
- SceUInt32 attr,
- SceKernelLwMutexWork *pLwMutex,
- const SceKernelLwCondOptParam *pOptParam
-);
-
-SceInt32 sceKernelDeleteLwCond(SceKernelLwCondWork *pWork);
-
-SceInt32 sceKernelSignalLwCond(SceKernelLwCondWork *pWork);
-
-SceInt32 sceKernelWaitLwCond(SceKernelLwCondWork *pWork, SceUInt32 *pTimeout);
-
-SceInt32 sceKernelSignalLwCondAll(SceKernelLwCondWork *pWork);
-
-SceInt32 sceKernelSignalLwCondTo(SceKernelLwCondWork *pWork, SceUID threadId);
-
-SceInt32 sceKernelGetLwCondInfo (SceKernelLwCondWork *pWork, SceKernelLwCondInfo *pInfo);
-
-SceInt32 sceKernelGetLwCondInfoById(SceUID lwCondId, SceKernelLwCondInfo *pInfo);
-
typedef struct SceKernelWaitSignalOptParam {
SceUInt32 unk;
} SceKernelWaitSignalOptParam;
@@ -1641,9 +144,7 @@ int sceKernelSetThreadContextForMono(
SceKernelThreadContextForMono1* inContext1,
SceKernelThreadContextForMono2* inContext2);
-#ifdef __cplusplus
-}
-#endif
+SCE_CDECL_END
#endif /* _PSP2_KERNEL_THREADMGR_H_ */