36 lines
1.0 KiB
ReStructuredText
36 lines
1.0 KiB
ReStructuredText
.. _module-pw_sync_baremetal:
|
|
|
|
=================
|
|
pw_sync_baremetal
|
|
=================
|
|
This is a set of backends for pw_sync that works on baremetal targets. It is not
|
|
ready for use, and is under construction.
|
|
|
|
.. note::
|
|
All constructs in this baremetal backend do not support hardware
|
|
multi-threading (SMP, SMT, etc).
|
|
|
|
.. warning::
|
|
It does not perform interrupt masking or disable global interrupts. This is
|
|
not safe to use yet!
|
|
|
|
-----------------
|
|
InterruptSpinLock
|
|
-----------------
|
|
The interrupt spin-lock implementation makes a single attempt to acquire the
|
|
lock and asserts if it is unavailable. It does not perform interrupt masking or
|
|
disable global interrupts.
|
|
|
|
-----
|
|
Mutex
|
|
-----
|
|
The mutex implementation makes a single attempt to acquire the lock and asserts
|
|
if it is unavailable.
|
|
|
|
--------------
|
|
RecursiveMutex
|
|
--------------
|
|
The recursive mutex implementation counts the number of lock and unlock calls
|
|
and asserts if the mutex is unlocked too many times or destroyed while locked.
|
|
Note that recursive mutexes are not available for general use in Pigweed.
|