SSBM Decomp
Loading...
Searching...
No Matches
OSMutex.c File Reference
#include <dolphin.h>
#include "__os.h"
#include <dolphin/os.h>

Macros

#define ENQUEUE_MUTEX(mutex, queue, link)
#define DEQUEUE_MUTEX(mutex, queue, link)
#define DEQUEUE_HEAD(mutex, queue, link)

Functions

static int IsMember (struct OSMutexQueue *queue, struct OSMutex *mutex)
int __OSCheckMutex (struct OSMutex *mutex)
int __OSCheckDeadLock (struct OSThread *thread)
int __OSCheckMutexes (struct OSThread *thread)
void OSInitMutex (struct OSMutex *mutex)
void OSLockMutex (struct OSMutex *mutex)
void OSUnlockMutex (struct OSMutex *mutex)
void __OSUnlockAllMutex (struct OSThread *thread)
int OSTryLockMutex (struct OSMutex *mutex)
void OSInitCond (struct OSCond *cond)
void OSWaitCond (struct OSCond *cond, struct OSMutex *mutex)
void OSSignalCond (struct OSCond *cond)

Macro Definition Documentation

◆ ENQUEUE_MUTEX

#define ENQUEUE_MUTEX ( mutex,
queue,
link )
Value:
do { \
struct OSMutex* __prev = (queue)->tail; \
if (__prev == NULL) { \
(queue)->head = (mutex); \
} else { \
__prev->link.next = (mutex); \
} \
(mutex)->link.prev = __prev; \
(mutex)->link.next = 0; \
(queue)->tail = (mutex); \
} while (0);
#define NULL
Definition stddef.h:19
Definition OSMutex.h:10
OSMutexLink link
Definition OSMutex.h:14

◆ DEQUEUE_MUTEX

#define DEQUEUE_MUTEX ( mutex,
queue,
link )
Value:
do { \
struct OSMutex* __next = (mutex)->link.next; \
struct OSMutex* __prev = (mutex)->link.prev; \
if (__next == NULL) { \
(queue)->tail = __prev; \
} else { \
__next->link.prev = __prev; \
} \
if (__prev == NULL) { \
(queue)->head = __next; \
} else { \
__prev->link.next = __next; \
} \
} while (0);

◆ DEQUEUE_HEAD

#define DEQUEUE_HEAD ( mutex,
queue,
link )
Value:
do { \
struct OSMutex* __next = mutex->link.next; \
if (__next == NULL) { \
(queue)->tail = 0; \
} else { \
__next->link.prev = 0; \
} \
(queue)->head = __next; \
} while (0);

Function Documentation

◆ IsMember()

int IsMember ( struct OSMutexQueue * queue,
struct OSMutex * mutex )
static

◆ __OSCheckMutex()

int __OSCheckMutex ( struct OSMutex * mutex)

◆ __OSCheckDeadLock()

int __OSCheckDeadLock ( struct OSThread * thread)

◆ __OSCheckMutexes()

int __OSCheckMutexes ( struct OSThread * thread)

◆ OSInitMutex()

void OSInitMutex ( struct OSMutex * mutex)

◆ OSLockMutex()

void OSLockMutex ( struct OSMutex * mutex)

◆ OSUnlockMutex()

void OSUnlockMutex ( struct OSMutex * mutex)

◆ __OSUnlockAllMutex()

void __OSUnlockAllMutex ( struct OSThread * thread)

◆ OSTryLockMutex()

int OSTryLockMutex ( struct OSMutex * mutex)

◆ OSInitCond()

void OSInitCond ( struct OSCond * cond)

◆ OSWaitCond()

void OSWaitCond ( struct OSCond * cond,
struct OSMutex * mutex )

◆ OSSignalCond()

void OSSignalCond ( struct OSCond * cond)