libmetal
Loading...
Searching...
No Matches
Data Structures | Macros | Functions
mutex.h File Reference
#include <unistd.h>
#include <sys/syscall.h>
#include <linux/futex.h>
#include <metal/atomic.h>

Go to the source code of this file.

Data Structures

struct  metal_mutex_t
 

Macros

#define METAL_MUTEX_INIT(m)   { ATOMIC_VAR_INIT(0) }
 
#define METAL_MUTEX_DEFINE(m)   metal_mutex_t m = METAL_MUTEX_INIT(m)
 

Functions

static int __metal_mutex_cmpxchg (metal_mutex_t *mutex, int exp, int val)
 
static void __metal_mutex_init (metal_mutex_t *mutex)
 
static void __metal_mutex_deinit (metal_mutex_t *mutex)
 
static int __metal_mutex_try_acquire (metal_mutex_t *mutex)
 
static void __metal_mutex_acquire (metal_mutex_t *mutex)
 
static void __metal_mutex_release (metal_mutex_t *mutex)
 
static int __metal_mutex_is_acquired (metal_mutex_t *mutex)
 

Macro Definition Documentation

◆ METAL_MUTEX_DEFINE

#define METAL_MUTEX_DEFINE ( m)    metal_mutex_t m = METAL_MUTEX_INIT(m)

◆ METAL_MUTEX_INIT

#define METAL_MUTEX_INIT ( m)    { ATOMIC_VAR_INIT(0) }

Function Documentation

◆ __metal_mutex_acquire()

static void __metal_mutex_acquire ( metal_mutex_t * mutex)
inlinestatic

◆ __metal_mutex_cmpxchg()

static int __metal_mutex_cmpxchg ( metal_mutex_t * mutex,
int exp,
int val )
inlinestatic

◆ __metal_mutex_deinit()

static void __metal_mutex_deinit ( metal_mutex_t * mutex)
inlinestatic

◆ __metal_mutex_init()

static void __metal_mutex_init ( metal_mutex_t * mutex)
inlinestatic

◆ __metal_mutex_is_acquired()

static int __metal_mutex_is_acquired ( metal_mutex_t * mutex)
inlinestatic

◆ __metal_mutex_release()

static void __metal_mutex_release ( metal_mutex_t * mutex)
inlinestatic

◆ __metal_mutex_try_acquire()

static int __metal_mutex_try_acquire ( metal_mutex_t * mutex)
inlinestatic