MeshX 0.4
This repository provides an implementation for Bluetooth Low Energy (BLE) Mesh network nodes. The project allows you to create BLE mesh nodes that can communicate with each other, enabling the development of smart home solutions or other IoT-based applications.
Loading...
Searching...
No Matches
meshx_sem.h
Go to the documentation of this file.
1/**
2 * @file meshx_sem.h
3 * @brief MeshX Semaphore Interface
4 *
5 * This file contains the MeshX Semaphore Interface.
6 *
7 * @author Pranjal Chanda
8 * @version 1.0
9 */
10
11#ifndef __MESHX_SEM_H
12#define __MESHX_SEM_H
13
14#include <stdint.h>
15#include "meshx_err.h"
16
17/**
18 * @brief MeshX Semaphore Structure
19 */
20typedef struct meshx_sem
21{
22 /* Public */
23 const char *sem_name; /**< Semaphore Name */
24 int max_count; /**< Maximum Count */
25 int init_count; /**< Initial Count */
26 /* Private */
27 void *__sem_handle; /**< Semaphore Handle */
29
30/**
31 * @brief Create a MeshX Semaphore
32 *
33 * This function creates a MeshX Semaphore.
34 *
35 * @param[in,out] sem_handle Semaphore Handle
36 *
37 * @return meshx_err_t
38 */
40
41/**
42 * @brief Delete a MeshX Semaphore
43 *
44 * This function deletes a MeshX Semaphore.
45 *
46 * @param[in] sem_handle Semaphore Handle
47 * @return meshx_err_t
48 */
50
51/**
52 * @brief Take a MeshX Semaphore
53 *
54 * This function takes a MeshX Semaphore.
55 *
56 * @param[in] sem_handle Semaphore Handle
57 * @param[in] delay_ms Delay in milliseconds
58 *
59 * @return meshx_err_t
60 */
61meshx_err_t meshx_sem_take(meshx_sem_t *sem_handle, uint32_t delay_ms);
62
63/**
64 * @brief Give a MeshX Semaphore
65 *
66 * This function gives a MeshX Semaphore.
67 *
68 * @param[in] sem_handle Semaphore Handle
69 *
70 * @return meshx_err_t
71 */
73
74#endif /* __MESHX_SEM_H */
MeshX Error Codes.
meshx_err_t
MeshX Error Codes.
Definition meshx_err.h:43
meshx_err_t meshx_sem_create(meshx_sem_t *sem_handle)
Create a MeshX Semaphore.
meshx_err_t meshx_sem_delete(meshx_sem_t *sem_handle)
Delete a MeshX Semaphore.
meshx_err_t meshx_sem_take(meshx_sem_t *sem_handle, uint32_t delay_ms)
Take a MeshX Semaphore.
meshx_err_t meshx_sem_give(meshx_sem_t *sem_handle)
Give a MeshX Semaphore.
struct meshx_sem meshx_sem_t
MeshX Semaphore Structure.
MeshX Semaphore Structure.
Definition meshx_sem.h:21
int init_count
Definition meshx_sem.h:25
const char * sem_name
Definition meshx_sem.h:23
void * __sem_handle
Definition meshx_sem.h:27
int max_count
Definition meshx_sem.h:24