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