Loading...
Searching...
No Matches
dpl_sem.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2020 Inria
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
18
19#include <stdint.h>
20
21#include "dpl_types.h"
22#include "dpl_error.h"
23#include "os/os_sem.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
32struct dpl_sem {
33 struct os_sem sem;
34};
35
46static inline dpl_error_t dpl_sem_init(struct dpl_sem *sem, uint16_t tokens)
47{
48 return (dpl_error_t) os_sem_init(&sem->sem, tokens);
49}
50
65static inline dpl_error_t dpl_sem_pend(struct dpl_sem *sem, dpl_time_t timeout)
66{
67 return (dpl_error_t) os_sem_pend(&sem->sem, timeout);
68}
69
79static inline dpl_error_t dpl_sem_release(struct dpl_sem *sem)
80{
81 return (dpl_error_t) os_sem_release(&sem->sem);
82}
83
87static inline int16_t dpl_sem_get_count(struct dpl_sem *sem)
88{
89 return os_sem_get_count(&sem->sem);
90}
91
92#ifdef __cplusplus
93}
94#endif
uwb-core DPL (Decawave Porting Layer) error types
os_error_t dpl_error_t
dpl error type
Definition dpl_error.h:47
static dpl_error_t dpl_sem_release(struct dpl_sem *sem)
Release a semaphore.
Definition dpl_sem.h:79
static dpl_error_t dpl_sem_pend(struct dpl_sem *sem, dpl_time_t timeout)
Pend (wait) for a semaphore.
Definition dpl_sem.h:65
static dpl_error_t dpl_sem_init(struct dpl_sem *sem, uint16_t tokens)
Initialize a semaphore.
Definition dpl_sem.h:46
static int16_t dpl_sem_get_count(struct dpl_sem *sem)
Get current semaphore's count.
Definition dpl_sem.h:87
uwb-core DPL (Decawave Porting Layer) types
os_time_t dpl_time_t
dpl time type
Definition dpl_types.h:53
dpl semaphore wrapper
Definition dpl_sem.h:32
struct os_sem sem
the semaphore
Definition dpl_sem.h:33