13#ifndef MRBC_SRC_RRT0_H_
14#define MRBC_SRC_RRT0_H_
58#if !defined(MRBC_TASK_NAME_LEN)
59#define MRBC_TASK_NAME_LEN 15
73#if defined(MRBC_DEBUG)
104#define MRBC_MUTEX_INITIALIZER { 0 }
130void mrbc_init(
void *heap_ptr,
unsigned int size);
void mrbc_join_task(mrbc_tcb *tcb, const mrbc_tcb *tcb_join)
void mrbc_set_task_name(mrbc_tcb *tcb, const char *name)
void mrbc_init(void *heap_ptr, unsigned int size)
void mrbc_terminate_task(mrbc_tcb *tcb)
void mrbc_resume_task(mrbc_tcb *tcb)
int mrbc_mutex_unlock(mrbc_mutex *mutex, mrbc_tcb *tcb)
mrbc_tcb * mrbc_tcb_new(int regs_size, enum MrbcTaskState task_state, int priority)
mrbc_tcb * mrbc_find_task(const char *name)
mrbc_tcb * mrbc_create_task(const void *byte_code, mrbc_tcb *tcb)
mrbc_mutex * mrbc_mutex_init(mrbc_mutex *mutex)
void mrbc_change_priority(mrbc_tcb *tcb, int priority)
void mrbc_sleep_ms(mrbc_tcb *tcb, uint32_t ms)
int mrbc_mutex_trylock(mrbc_mutex *mutex, mrbc_tcb *tcb)
int mrbc_mutex_lock(mrbc_mutex *mutex, mrbc_tcb *tcb)
void mrbc_suspend_task(mrbc_tcb *tcb)
void mrbc_relinquish(mrbc_tcb *tcb)
int mrbc_start_task(mrbc_tcb *tcb)
int mrbc_delete_task(mrbc_tcb *tcb)
struct RTcb mrbc_tcb
Task control block.
@ TASKSTATE_SUSPENDED
Suspended.
@ TASKSTATE_WAITING
Waiting.
@ TASKSTATE_RUNNING
Running.
@ TASKSTATE_DORMANT
Domant.
static const int MRBC_TASK_DEFAULT_STATE
struct RMutex mrbc_mutex
Mutex.
#define MRBC_TASK_NAME_LEN
static const int MRBC_TASK_DEFAULT_PRIORITY
uint8_t priority
task priority. initial value.
char name[MRBC_TASK_NAME_LEN+1]
task name (optional)
const struct RTcb * tcb_join
joined task.
uint8_t priority_preemption
task priority. effective value.
uint8_t state
task state. defined in MrbcTaskState.
volatile uint8_t timeslice
time slice counter.
uint8_t reason
sub state. defined in MrbcTaskReason.
uint32_t wakeup_tick
wakeup time for sleep state.
struct RTcb * next
daisy chain in task queue.