61 #ifndef __INCLUDE_SEMAPHORE_H 62 #define __INCLUDE_SEMAPHORE_H 68 #include <tinyara/config.h> 79 #define PRIOINHERIT_FLAGS_DISABLE (1 << 0) 88 #ifdef CONFIG_PRIORITY_INHERITANCE 95 #if CONFIG_SEM_PREALLOCHOLDERS > 0 102 #if CONFIG_SEM_PREALLOCHOLDERS > 0 103 #define SEMHOLDER_INITIALIZER {NULL, NULL, 0} 105 #define SEMHOLDER_INITIALIZER {NULL, 0} 120 #ifdef CONFIG_PRIORITY_INHERITANCE 122 #if CONFIG_SEM_PREALLOCHOLDERS > 0 137 #ifdef CONFIG_PRIORITY_INHERITANCE 138 #if CONFIG_SEM_PREALLOCHOLDERS > 0 139 #define SEM_INITIALIZER(c) {(c), 0, NULL} 141 #define SEM_INITIALIZER(c) {(c), 0, SEMHOLDER_INITIALIZER} 144 #define SEM_INITIALIZER(c) {(c)} 152 #define EXTERN extern "C" 156 #define EXTERN extern 174 int sem_init(FAR
sem_t *sem,
int pshared,
unsigned int value);
232 #ifdef CONFIG_FS_NAMED_SEMAPHORES 237 FAR
sem_t *sem_open(FAR
const char *name,
int oflag, ...);
241 int sem_close(FAR
sem_t *sem);
245 int sem_unlink(FAR
const char *name);
int sem_trywait(FAR sem_t *sem)
lock a semaphore
int sem_wait(FAR sem_t *sem)
lock a semaphore
This is the common part of the task control block (TCB). The TCB is the heart of the TinyAra task-con...
int sem_timedwait(FAR sem_t *sem, FAR const struct timespec *abstime)
lock a semaphore
int sem_getvalue(FAR sem_t *sem, FAR int *sval)
get the value of a semaphore
int sem_init(FAR sem_t *sem, int pshared, unsigned int value)
initialize an unnamed semaphore
int sem_destroy(FAR sem_t *sem)
destroy an unnamed semaphore
int sem_post(FAR sem_t *sem)
unlock a semaphore
Structure of generic semaphore.
struct semholder_s * flink
structure represents an elapsed time
FAR struct semholder_s * hhead
void sem_timeout(int argc, uint32_t pid)