#include <gctypes.h>
#include <lwp_threadq.h>
Go to the source code of this file.
◆ __lwp_mutex_seize
#define __lwp_mutex_seize |
( |
|
_mutex_t, |
|
|
|
_id, |
|
|
|
_wait, |
|
|
|
_timeout, |
|
|
|
_level |
|
) |
| |
Value:do { \
if(!_wait) { \
_CPU_ISR_Restore(_level); \
} else { \
__lwp_threadqueue_csenter(&(_mutex_t)->wait_queue); \
_thr_executing->wait.queue = &(_mutex_t)->wait_queue; \
_thr_executing->wait.id = _id; \
__lwp_thread_dispatchdisable(); \
_CPU_ISR_Restore(_level); \
__lwp_mutex_seize_irq_blocking(_mutex_t,(
u64)_timeout); \
} \
} \
} while(0)
#define LWP_MUTEX_UNSATISFIED_NOWAIT
Definition: lwp_mutex.h:20
static __inline__ u32 __lwp_mutex_seize_irq_trylock(lwp_mutex *mutex, u32 *isr_level)
uint64_t u64
64bit unsigned integer
Definition: gctypes.h:20
◆ LWP_MUTEX_CEILINGVIOL
#define LWP_MUTEX_CEILINGVIOL 6 |
◆ LWP_MUTEX_DELETED
#define LWP_MUTEX_DELETED 4 |
◆ LWP_MUTEX_FIFO
◆ LWP_MUTEX_INHERITPRIO
#define LWP_MUTEX_INHERITPRIO 2 |
◆ LWP_MUTEX_LOCKED
#define LWP_MUTEX_LOCKED 0 |
◆ LWP_MUTEX_NEST_ACQUIRE
#define LWP_MUTEX_NEST_ACQUIRE 0 |
◆ LWP_MUTEX_NEST_BLOCK
#define LWP_MUTEX_NEST_BLOCK 2 |
◆ LWP_MUTEX_NEST_ERROR
#define LWP_MUTEX_NEST_ERROR 1 |
◆ LWP_MUTEX_NEST_NOTALLOWED
#define LWP_MUTEX_NEST_NOTALLOWED 2 |
◆ LWP_MUTEX_NOTOWNER
#define LWP_MUTEX_NOTOWNER 3 |
◆ LWP_MUTEX_PRIORITY
#define LWP_MUTEX_PRIORITY 1 |
◆ LWP_MUTEX_PRIORITYCEIL
#define LWP_MUTEX_PRIORITYCEIL 3 |
◆ LWP_MUTEX_SUCCESSFUL
#define LWP_MUTEX_SUCCESSFUL 0 |
◆ LWP_MUTEX_TIMEOUT
#define LWP_MUTEX_TIMEOUT 5 |
◆ LWP_MUTEX_UNLOCKED
#define LWP_MUTEX_UNLOCKED 1 |
◆ LWP_MUTEX_UNSATISFIED_NOWAIT
#define LWP_MUTEX_UNSATISFIED_NOWAIT 1 |
◆ lwp_mutex
◆ lwp_mutex_attr
◆ __lwp_mutex_flush()
◆ __lwp_mutex_initialize()
◆ __lwp_mutex_seize_irq_blocking()
◆ __lwp_mutex_seize_irq_trylock()
static __inline__ u32 __lwp_mutex_seize_irq_trylock |
( |
lwp_mutex * |
mutex, |
|
|
u32 * |
isr_level |
|
) |
| |
|
static |
◆ __lwp_mutex_surrender()