wut/include/coreinit/condition.h
James Benton 2e776838ff Use a macro WUT_LIB_HEADER_{START,END}...
So we don't have to extern C and pragma pack in every header file.
2016-01-07 05:02:17 -08:00

45 lines
806 B
C

#pragma once
#include <wut.h>
#include "threadqueue.h"
WUT_LIB_HEADER_START
typedef struct OSCondition OSCondition;
typedef struct OSMutex OSMutex;
#define OS_CONDITION_TAG 0x634E6456u
struct OSCondition
{
// OS_CONDITION_TAG
uint32_t tag;
// Name set by OSInitCondEx(condition, name)
const char *name;
UNKNOWN(4);
// Queue of threads waiting on condition
OSThreadQueue queue;
};
CHECK_OFFSET(OSCondition, 0x00, tag);
CHECK_OFFSET(OSCondition, 0x04, name);
CHECK_OFFSET(OSCondition, 0x0c, queue);
CHECK_SIZE(OSCondition, 0x1c);
void
OSInitCond(OSCondition *condition);
void
OSInitCondEx(OSCondition *condition,
const char *name);
void
OSWaitCond(OSCondition *condition,
OSMutex *mutex);
void
OSSignalCond(OSCondition *condition);
WUT_LIB_HEADER_END