xref: /aosp_15_r20/external/pigweed/pw_sync_baremetal/docs.rst (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1.. _module-pw_sync_baremetal:
2
3=================
4pw_sync_baremetal
5=================
6This is a set of backends for pw_sync that works on baremetal targets. It is not
7ready for use, and is under construction.
8
9.. note::
10  All constructs in this baremetal backend do not support hardware
11  multi-threading (SMP, SMT, etc).
12
13.. warning::
14  It does not perform interrupt masking or disable global interrupts. This is
15  not safe to use yet!
16
17-----------------
18InterruptSpinLock
19-----------------
20The interrupt spin-lock implementation makes a single attempt to acquire the
21lock and asserts if it is unavailable. It does not perform interrupt masking or
22disable global interrupts.
23
24-----
25Mutex
26-----
27The mutex implementation makes a single attempt to acquire the lock and asserts
28if it is unavailable.
29
30--------------
31RecursiveMutex
32--------------
33The recursive mutex implementation counts the number of lock and unlock calls
34and asserts if the mutex is unlocked too many times or destroyed while locked.
35Note that recursive mutexes are not available for general use in Pigweed.
36