UbixOS  2.0
Collaboration diagram for Semaphores:

Functions

uint32_t sys_arch_sem_wait (struct sys_sem **s, uint32_t timeout)
 
void sys_sem_free (sys_sem_t **sem)
 
err_t sys_sem_new (sys_sem_t **sem, u8_t count)
 
void sys_sem_set_invalid (struct sys_sem **s)
 
void sys_sem_signal (struct sys_sem **s)
 
int sys_sem_valid (struct sys_sem **s)
 

Detailed Description

Function Documentation

◆ sys_arch_sem_wait()

uint32_t sys_arch_sem_wait ( struct sys_sem **  s,
uint32_t  timeout 
)

Wait for a semaphore for the specified timeout

Parameters
semthe semaphore to wait for
timeouttimeout in milliseconds to wait (0 = wait forever)
Returns
time (in milliseconds) waited for the semaphore or SYS_ARCH_TIMEOUT on timeout

Definition at line 104 of file sys_arch.c.

References LWIP_ASSERT, mutex, NULL, signaled, and ubthread_mutex_lock().

Referenced by sys_msleep().

Here is the call graph for this function:

◆ sys_sem_free()

void sys_sem_free ( sys_sem_t **  sem)

Delete a semaphore

Parameters
semsemaphore to delete

Definition at line 75 of file sys_arch.c.

References NULL, sem_destroy(), and SYS_SEM_NULL.

Referenced by sys_msleep().

Here is the call graph for this function:

◆ sys_sem_new()

err_t sys_sem_new ( sys_sem_t **  sem,
u8_t  count 
)

Create a new semaphore

Parameters
sempointer to the semaphore to create
countinitial count of the semaphore
Returns
ERR_OK if successful, another err_t otherwise

Definition at line 52 of file sys_arch.c.

References cond, ERR_OK, kmalloc(), kprintf(), mutex, NULL, sem_init(), signaled, ubthread_cond_init(), and ubthread_mutex_init().

Referenced by sys_msleep(), and tcpip_api_call().

Here is the call graph for this function:

◆ sys_sem_set_invalid()

void sys_sem_set_invalid ( struct sys_sem **  s)

Set a semaphore invalid so that sys_sem_valid returns 0

Definition at line 139 of file sys_arch.c.

◆ sys_sem_signal()

void sys_sem_signal ( struct sys_sem **  s)

Signals a semaphore

Parameters
semthe semaphore to signal

Definition at line 88 of file sys_arch.c.

References cond, LWIP_ASSERT, mutex, NULL, signaled, ubthread_cond_broadcast(), ubthread_mutex_lock(), and ubthread_mutex_unlock().

Here is the call graph for this function:

◆ sys_sem_valid()

int sys_sem_valid ( struct sys_sem **  s)

Check if a semaphore is valid/allocated: return 1 for valid, 0 for invalid

Definition at line 131 of file sys_arch.c.

Referenced by tcpip_send_msg_wait_sem().