12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #include "optiga/pal/pal_os_lock.h"
- #include "nrf_atomic.h"
- #include "nrf_pwr_mgmt.h"
- typedef struct pal_os_lock
- {
- nrf_atomic_flag_t lock;
- } pal_os_lock_t;
- static volatile pal_os_lock_t pal_os_lock = {.lock = 0};
- pal_status_t pal_os_lock_acquire(void)
- {
-
- while(nrf_atomic_flag_set_fetch(&pal_os_lock.lock)) {
- nrf_pwr_mgmt_run();
- }
- return PAL_STATUS_SUCCESS;
- }
- void pal_os_lock_release(void)
- {
- (void)nrf_atomic_flag_clear(&pal_os_lock.lock);
- }
|