ISIX-RTOS - small operating system for ARM microcontrollers 1.2
|
#include <isix/config.h>
#include <isix/types.h>
#include <prv/scheduler.h>
#include <isix/task.h>
#include <isix/memory.h>
#include <prv/semaphore.h>
#include <prv/multiple_objects.h>
#include <string.h>
#include <isix/printk.h>
Go to the source code of this file.
Defines | |
#define | ISIX_DEBUG_TASK ISIX_DBG_OFF |
#define | ALIGN_MASK 0x03 |
#define | ALIGN_BYTES 4 |
#define | MAGIC_FILL_VALUE 0x55 |
Functions | |
task_t * | isix_task_create (task_func_ptr_t task_func, void *func_param, unsigned long stack_depth, prio_t priority) |
int | isixp_task_change_prio (task_t *task, prio_t new_prio, bool yield) |
int | isix_task_delete (task_t *task) |
task_t * | isix_task_self (void) |
size_t | isix_free_stack_space (const task_t *task) |
#define ALIGN_BYTES 4 |
Definition at line 25 of file task.c.
Referenced by isix_task_create().
#define ALIGN_MASK 0x03 |
Definition at line 23 of file task.c.
Referenced by isix_task_create().
#define MAGIC_FILL_VALUE 0x55 |
Definition at line 27 of file task.c.
Referenced by isix_free_stack_space(), and isix_task_create().
size_t isix_free_stack_space | ( | const task_t * | task | ) |
Definition at line 222 of file task.c.
References MAGIC_FILL_VALUE.
task_t* isix_task_create | ( | task_func_ptr_t | task_func, |
void * | func_param, | ||
unsigned long | stack_depth, | ||
prio_t | priority | ||
) |
Definition at line 30 of file task.c.
References ALIGN_BYTES, ALIGN_MASK, isix_alloc(), isix_current_task, isix_free(), isix_get_min_priority(), isix::ISIX_PORT_SCHED_MIN_STACK_DEPTH, isix_printk, isix_scheduler_running, isix::isix_yield(), isixp_add_task_to_ready_list(), isixp_enter_critical(), isixp_exit_critical(), isixp_task_init_stack(), MAGIC_FILL_VALUE, NULL, task_struct::prio, and TASK_READY.
Referenced by isix_init().
int isix_task_delete | ( | task_t * | task | ) |
Definition at line 158 of file task.c.
References isix_current_task, isix::ISIX_EOK, isix_printk, isix::isix_yield(), isixp_add_task_to_delete_list(), isixp_delete_from_multiple_wait_list(), isixp_delete_task_from_ready_list(), isixp_enter_critical(), isixp_exit_critical(), list_delete(), NULL, TASK_DEAD, TASK_READY, TASK_SLEEPING, TASK_WAITING, and TASK_WAITING_MULTIPLE.
task_t* isix_task_self | ( | void | ) |
Get current thread handler
Definition at line 208 of file task.c.
References isix_current_task.
int isixp_task_change_prio | ( | task_t * | task, |
prio_t | new_prio, | ||
bool | yield | ||
) |
Definition at line 107 of file task.c.
References isix_current_task, isix::ISIX_ENOMEM, isix::ISIX_ENOPRIO, isix::ISIX_EOK, isix_get_min_priority(), isix_printk, isix::isix_yield(), isixp_add_task_to_ready_list(), isixp_add_task_to_sem_list(), isixp_delete_task_from_ready_list(), isixp_enter_critical(), isixp_exit_critical(), list_delete(), task_struct::state, TASK_READY, TASK_RUNNING, and TASK_WAITING.