CHERIoT RTOS
A compartmentalised RTOS for CHERIoT hardware
Loading...
Searching...
No Matches
locks.hh File Reference

C++ wrappers for synchronisation primitives. More...

#include <cdefs.h>
#include <cheriot-atomic.hh>
#include <debug.hh>
#include <errno.h>
#include <futex.h>
#include <locks.h>
#include <thread.h>

Go to the source code of this file.

Classes

class  FlagLockGeneric< IsPriorityInherited >
 A simple flag log, wrapping an atomic word used with the futex calls. More...
class  RecursiveMutex
 Priority-inheriting recursive mutex. More...
class  TicketLock
 A simple ticket lock. More...
class  NoLock
 Class that implements the locking concept but does not perform locking. More...
class  LockGuard< Lock >
 A simple RAII type that owns a lock. More...
class  ConditionVariable
 Condition variable C++ wrapper. More...

Concepts

concept  Lockable
concept  TryLockable

Typedefs

using LockDebug = ConditionalDebug<DebugLocks, "Locking">
using FlagLock = FlagLockGeneric<false>
using FlagLockPriorityInherited = FlagLockGeneric<true>

Functions

 __clang_ignored_warning_push ("-Watomic-alignment")
 __clang_ignored_warning_pop ()

Variables

static constexpr bool DebugLocks

Detailed Description

C++ wrappers for synchronisation primitives.

Definition in file locks.hh.

Typedef Documentation

◆ FlagLock

using FlagLock = FlagLockGeneric<false>

Definition at line 274 of file locks.hh.

◆ FlagLockPriorityInherited

using FlagLockPriorityInherited = FlagLockGeneric<true>

Definition at line 275 of file locks.hh.

◆ LockDebug

using LockDebug = ConditionalDebug<DebugLocks, "Locking">

Definition at line 23 of file locks.hh.

Variable Documentation

◆ DebugLocks

bool DebugLocks
staticconstexpr
Initial value:
=
false

Definition at line 16 of file locks.hh.