/**
 * @file hal_mutex.h
 * @brief 互斥锁 HAL 接口
 */

#ifndef HAL_MUTEX_H
#define HAL_MUTEX_H

#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>

#ifdef __cplusplus
extern "C" {
#endif

/** 互斥锁句柄 */
typedef void *hal_mutex_t;

/** @brief 创建互斥锁 */
hal_mutex_t hal_mutex_create(void);

/** @brief 加锁（阻塞）*/
int hal_mutex_lock(hal_mutex_t mutex);

/** @brief 解锁 */
int hal_mutex_unlock(hal_mutex_t mutex);

/** @brief 销毁互斥锁 */
void hal_mutex_destroy(hal_mutex_t mutex);

#ifdef __cplusplus
}
#endif

#endif /* HAL_MUTEX_H */
