blob: 6b9c9e3b2d70d3d5f43f68b8735e724d4202e074 [file] [log] [blame]
Brian Silverman26e4e522015-12-17 01:56:40 -05001#pragma once
2
3#include "cpp/priority_condition_variable.h"
4#include "cpp/priority_mutex.h"
5
6typedef priority_mutex* MUTEX_ID;
7typedef priority_condition_variable* MULTIWAIT_ID;
8typedef priority_condition_variable::native_handle_type NATIVE_MULTIWAIT_ID;
9
10extern "C" {
11 MUTEX_ID initializeMutexNormal();
12 void deleteMutex(MUTEX_ID sem);
13 void takeMutex(MUTEX_ID sem);
14 bool tryTakeMutex(MUTEX_ID sem);
15 void giveMutex(MUTEX_ID sem);
16
17 MULTIWAIT_ID initializeMultiWait();
18 void deleteMultiWait(MULTIWAIT_ID sem);
19 void takeMultiWait(MULTIWAIT_ID sem, MUTEX_ID m);
20 void giveMultiWait(MULTIWAIT_ID sem);
21}