XenevaOS
Loading...
Searching...
No Matches
mutex.h
Go to the documentation of this file.
1
30#ifndef __MUTEX_H__
31#define __MUTEX_H__
32
33#include <Sync/spinlock.h>
34#include <stdint.h>
35#include <Hal/x86_64_sched.h>
36#include <aurora.h>
37#include <list.h>
38
39#pragma pack(push,1)
46#pragma pack(pop)
47
48/*
49* AuCreateMutex -- create a new mutex and return
50*/
52
53/*
54* AuAcquireMutex -- acuire a mutex lock
55* @param mut -- Pointer to mutex
56*/
58
59/*
60* AuReleaseMutex -- release a mutex
61* @param pointer to mutex
62*/
64
65/*
66* AuDeleteMutex -- free up a mutex
67* @param mutex -- Pointer to mutex
68*/
70
71#endif
#define AU_EXTERN
Definition aurora.h:50
#define AU_EXPORT
Definition aurora.h:38
struct _mutex_ AuMutex
AU_EXTERN AU_EXPORT int AuAcquireMutex(AuMutex *mut)
Definition mutex.cpp:53
AU_EXTERN AU_EXPORT void AuDeleteMutex(AuMutex *mutex)
Definition mutex.cpp:110
AU_EXTERN AU_EXPORT AuMutex * AuCreateMutex()
Definition mutex.cpp:41
AU_EXTERN AU_EXPORT int AuReleaseMutex(AuMutex *mutex)
Definition mutex.cpp:81
unsigned char uint8_t
Definition acefiex.h:161
Definition x86_64_sched.h:118
Definition list.h:46
Definition mutex.h:40
volatile uint8_t status
Definition mutex.h:42
Spinlock * lock
Definition mutex.h:41
list_t * waiters
Definition mutex.h:44
AuThread * owner
Definition mutex.h:43
Definition spinlock.h:37