ubinos
sem.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2009 Sung Ho Park
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef UBIK_SEM_H_
8 #define UBIK_SEM_H_
9 
10 #ifdef __cplusplus
11 extern "C"
12 {
13 #endif
14 
119 #include <ubinos_config.h>
120 #include <ubinos/type.h>
121 
122 #include "task.h"
123 
125 #define SEM_OPT__IGNOREOVERFLOW 0x80
126 
128 typedef struct __sem_tip_t
129 {
130  unsigned int type :8;
131  unsigned int valid :1;
132  unsigned int reserved :7;
133  unsigned int reserved2 :16;
135 
137 typedef _sem_tip_t * sem_pt;
138 
152 int sem_create(sem_pt * sem_p);
153 
167 int semb_create(sem_pt * sem_p);
168 
190 int sem_create_ext(sem_pt * sem_p, unsigned int initcount,
191  unsigned int maxcount, unsigned int option);
192 
206 int sem_delete(sem_pt * sem_p);
207 
221 int sem_take(sem_pt sem);
222 
240 int sem_take_timed(sem_pt sem, unsigned int tick);
241 
259 int sem_take_timedms(sem_pt sem, unsigned int timems);
260 
273 int sem_give(sem_pt sem);
274 
286 int sem_clear(sem_pt sem);
287 
303 int sem_setsender(sem_pt sem, task_pt task);
304 
319 int sem_getcount(sem_pt sem, unsigned int * count_p);
320 
321 #ifdef __cplusplus
322 }
323 #endif
324 
325 #endif /* UBIK_SEM_H_ */
int sem_take_timedms(sem_pt sem, unsigned int timems)
int semb_create(sem_pt *sem_p)
int sem_delete(sem_pt *sem_p)
int sem_give(sem_pt sem)
int sem_clear(sem_pt sem)
struct __sem_tip_t _sem_tip_t
int sem_create(sem_pt *sem_p)
int sem_take_timed(sem_pt sem, unsigned int tick)
_sem_tip_t * sem_pt
Definition: sem.h:137
int sem_create_ext(sem_pt *sem_p, unsigned int initcount, unsigned int maxcount, unsigned int option)
int sem_getcount(sem_pt sem, unsigned int *count_p)
int sem_take(sem_pt sem)
int sem_setsender(sem_pt sem, task_pt task)
Definition: sem.h:129
unsigned int valid
Definition: sem.h:131
unsigned int reserved
Definition: sem.h:132
unsigned int type
Definition: sem.h:130
unsigned int reserved2
Definition: sem.h:133
Definition: task.h:342
ubik task API
ubinos basic data type