All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
mutex.h File Reference

Mutex for thread synchronization. More...

Detailed Description

Mutex for thread synchronization.

Author
Kaspar Schleiser kaspa.nosp@m.r@sc.nosp@m.hleis.nosp@m.er.d.nosp@m.e

Definition in file mutex.h.

#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
#include "architecture.h"
#include "kernel_defines.h"
#include "list.h"
#include "thread.h"
+ Include dependency graph for mutex.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  mutex_t
 Mutex structure. More...
 
struct  mutex_cancel_t
 A cancellation structure for use with mutex_lock_cancelable and mutex_cancel. More...
 

Macros

#define MUTEX_INIT   { .queue = { .next = NULL } }
 Static initializer for mutex_t.
 
#define MUTEX_INIT_LOCKED   { .queue = { .next = MUTEX_LOCKED } }
 Static initializer for mutex_t with a locked mutex.
 

Functions

bool mutex_lock_internal (mutex_t *mutex, bool block)
 Internal function implementing mutex_lock and mutex_trylock.
 
static void mutex_init (mutex_t *mutex)
 Initializes a mutex object.
 
static void mutex_init_locked (mutex_t *mutex)
 Initializes a mutex object in a locked state.
 
static mutex_cancel_t mutex_cancel_init (mutex_t *mutex)
 Initialize a mutex cancellation structure.
 
static int mutex_trylock (mutex_t *mutex)
 Tries to get a mutex, non-blocking.
 
static void mutex_lock (mutex_t *mutex)
 Locks a mutex, blocking.
 
int mutex_lock_cancelable (mutex_cancel_t *mc)
 Locks a mutex, blocking.
 
void mutex_unlock (mutex_t *mutex)
 Unlocks the mutex.
 
void mutex_unlock_and_sleep (mutex_t *mutex)
 Unlocks the mutex and sends the current thread to sleep.
 
void mutex_cancel (mutex_cancel_t *mc)
 Cancels a call to mutex_lock_cancelable.