|
IntrOS
|
spin locks More...
Macros | |
| #define | OS_SPN(spn) |
| define and initialize a spin lock object | |
| #define | static_SPN(spn) |
| static alias of OS_SPN() | |
| #define | SPN_INIT() |
| create and initialize a spin lock object | |
| #define | SPN_CREATE() |
| create and initialize a spin lock object | |
| #define | SPN_NEW SPN_CREATE |
| alias of SPN_CREATE() | |
| #define | spn_lock(spn) |
| save interrupts state, disable interrupts then lock the spin lock object (wait indefinitely if the spin lock object can't be locked immediately) or do nothing if OS_ATOMICS is zero / enter into critical section | |
| #define | spn_unlock(spn) |
| unlock the spin lock object or do nothing if OS_ATOMICS is zero then restore saved interrupts state / exit from critical section | |
Typedefs | |
| typedef uint_fast8_t | spn_t |
| spin lock | |
Functions | |
| void | spn_init (spn_t *spn) |
| initialize a spin lock object | |
spin locks
| #define OS_SPN | ( | spn | ) |
| #define SPN_INIT | ( | ) |
create and initialize a spin lock object
| #define SPN_CREATE | ( | ) |
| #define spn_lock | ( | spn | ) |
save interrupts state, disable interrupts then lock the spin lock object (wait indefinitely if the spin lock object can't be locked immediately) or do nothing if OS_ATOMICS is zero / enter into critical section
| spn | pointer to spin lock object |
| #define spn_unlock | ( | spn | ) |
unlock the spin lock object or do nothing if OS_ATOMICS is zero then restore saved interrupts state / exit from critical section
| spn | pointer to spin lock object |
|
inline |
initialize a spin lock object
| spn | pointer to spin lock object |