libmetal
Loading...
Searching...
No Matches
condition.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2016, Xilinx Inc. and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7/*
8 * @file generic/condition.h
9 * @brief Generic condition variable primitives for libmetal.
10 */
11
12#ifndef __METAL_CONDITION__H__
13#error "Include metal/condition.h instead of metal/freertos/condition.h"
14#endif
15
16#ifndef __METAL_FREERTOS_CONDITION__H__
17#define __METAL_FREERTOS_CONDITION__H__
18
19#include <metal/atomic.h>
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
33};
34
36#define METAL_CONDITION_INIT { NULL, ATOMIC_VAR_INIT(0) }
37
38static inline void metal_condition_init(struct metal_condition *cv)
39{
40 /* TODO: Implement condition variable for FreeRTOS */
41 (void)cv;
42}
43
44static inline int metal_condition_signal(struct metal_condition *cv)
45{
46 /* TODO: Implement condition variable for FreeRTOS */
47 (void)cv;
48 return 0;
49}
50
51static inline int metal_condition_broadcast(struct metal_condition *cv)
52{
53 /* TODO: Implement condition variable for FreeRTOS */
54 (void)cv;
55 return 0;
56}
57
58#ifdef __cplusplus
59}
60#endif
61
62#endif /* __METAL_FREERTOS_CONDITION__H__ */
int atomic_int
Definition atomic.h:24
static int metal_condition_signal(struct metal_condition *cv)
Notify one waiter. Before calling this function, the caller should have acquired the mutex.
static int metal_condition_broadcast(struct metal_condition *cv)
Notify all waiters. Before calling this function, the caller should have acquired the mutex.
static void metal_condition_init(struct metal_condition *cv)
Initialize a libmetal condition variable.
Definition condition.h:25
atomic_int v
Definition condition.h:32
metal_mutex_t * m
Definition condition.h:26
Definition mutex.h:28