| 1234567891011121314151617181920212223242526272829303132333435363738 |
- /*
- * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
- *
- * SPDX-License-Identifier: Apache-2.0
- */
- #pragma once
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include "ulp_riscv_lock_shared.h"
- /**
- * @brief Locks are based on the Peterson's algorithm, https://en.wikipedia.org/wiki/Peterson%27s_algorithm
- *
- */
- /**
- * @brief Acquire the lock, preventing the ULP from taking until released. Spins until lock is acquired.
- *
- * @note The lock is only designed for being used by a single thread on the main CPU,
- * it is not safe to try to acquire it from multiple threads.
- *
- * @param lock Pointer to lock struct, shared with ULP
- */
- void ulp_riscv_lock_acquire(ulp_riscv_lock_t *lock);
- /**
- * @brief Release the lock
- *
- * @param lock Pointer to lock struct, shared with ULP
- */
- void ulp_riscv_lock_release(ulp_riscv_lock_t *lock);
- #ifdef __cplusplus
- }
- #endif
|