blob: 83d88cac65b5c029dbd255562c6726227f7d1db6 [file] [log] [blame]
David Hucdc51fb2021-04-06 18:10:46 +08001/*
2 * Copyright (c) 2017-2020, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 *
6 */
7
8#ifndef __OS_WRAPPER_SEMAPHORE_H__
9#define __OS_WRAPPER_SEMAPHORE_H__
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15#include "common.h"
16
17/**
18 * \brief Creates a new semaphore
19 *
20 * \param[in] max_count Highest count of the semaphore
21 * \param[in] initial_count Starting count of the available semaphore
22 * \param[in] name Name of the semaphore
23 *
24 * \return Returns handle of the semaphore created, or NULL in case of error
25 */
26void *os_wrapper_semaphore_create(uint32_t max_count, uint32_t initial_count,
27 const char *name);
28
29/**
30 * \brief Acquires the semaphore
31 *
32 * \param[in] hanlde Semaphore handle
33 * \param[in] timeout Timeout value
34 *
35 * \return \ref OS_WRAPPER_SUCCESS in case of successful acquision, or
36 * \ref OS_WRAPPER_ERROR in case of error
37 */
38uint32_t os_wrapper_semaphore_acquire(void *handle, uint32_t timeout);
39
40/**
41 * \brief Releases the semaphore
42 *
43 * \param[in] hanlde Semaphore handle
44 *
45 * \return \ref OS_WRAPPER_SUCCESS in case of successful release, or
46 * \ref OS_WRAPPER_ERROR in case of error
47 */
48uint32_t os_wrapper_semaphore_release(void *handle);
49
50/**
51 * \brief Deletes the semaphore
52 *
53 * \param[in] handle Semaphore handle
54 *
55 * \return \ref OS_WRAPPER_SUCCESS in case of successful release, or
56 * \ref OS_WRAPPER_ERROR in case of error
57 */
58uint32_t os_wrapper_semaphore_delete(void *handle);
59
60#ifdef __cplusplus
61}
62#endif
63
64#endif /* __OS_WRAPPER_SEMAPHORE_H__ */