|
ISIX-RTOS - small operating system for ARM microcontrollers 1.2
|
#include <isix/config.h>#include <isix/types.h>#include <isix/semaphore.h>#include <prv/semaphore.h>#include <prv/fifo.h>#include <isix/multiple_objects.h>#include <prv/list.h>#include <prv/scheduler.h>#include <isix/error.h>#include <prv/multiple_objects.h>#include <isix/printk.h>
Go to the source code of this file.
Defines | |
| #define | ISIX_DEBUG_MULTIOBJECTS ISIX_DBG_OFF |
Functions | |
| void | ixixp_multiple_objects_init (void) |
| int | isixp_wakeup_multiple_waiting_tasks (const sem_t *sem, int(*wkup_fun)(task_t *)) |
| void | isixp_delete_from_multiple_wait_list (const task_t *task) |
| int | isix_wait_for_multiple_objects (size_t count, tick_t timeout, const ihandle_t *hwnd) |
Variables | |
| static list_entry_t | waiting_objects |
| #define ISIX_DEBUG_MULTIOBJECTS ISIX_DBG_OFF |
Definition at line 24 of file multiple_objects.c.
| int isix_wait_for_multiple_objects | ( | size_t | count, |
| tick_t | timeout, | ||
| const ihandle_t * | hwnd | ||
| ) |
Definition at line 99 of file multiple_objects.c.
References IHANDLE_T_FIFO, IHANDLE_T_SEM, multiple_obj::inode, isix_bug(), isix_current_task, isix::ISIX_EINVARG, isix::ISIX_EOK, isix::ISIX_ETIMEOUT, isix_printk, isix::isix_yield(), isixp_add_task_to_waiting_list(), isixp_delete_task_from_ready_list(), isixp_enter_critical(), isixp_exit_critical(), task_struct::jiffies, list_delete(), list_insert_end(), list::next, NULL, task_struct::state, TASK_MULTIPLE_WKUP, TASK_READY, TASK_RUNNING, TASK_SLEEPING, and TASK_WAITING_MULTIPLE.
| void isixp_delete_from_multiple_wait_list | ( | const task_t * | task | ) |
Definition at line 83 of file multiple_objects.c.
References multiple_obj::inode, isixp_enter_critical(), isixp_exit_critical(), list_delete(), list_for_each_entry, and multiple_obj::task_id.
Referenced by isix_task_delete().
| int isixp_wakeup_multiple_waiting_tasks | ( | const sem_t * | sem, |
| int(*)(task_t *) | wkup_fun | ||
| ) |
Definition at line 49 of file multiple_objects.c.
References IHANDLE_T_FIFO, IHANDLE_T_SEM, multiple_obj::ihwnd, multiple_obj::ihwnd_len, isix_get_min_priority(), isixp_enter_critical(), isixp_exit_critical(), list_for_each_entry, and multiple_obj::task_id.
Referenced by isixp_sem_signal().
| void ixixp_multiple_objects_init | ( | void | ) |
Definition at line 42 of file multiple_objects.c.
References list_init().
Referenced by isix_init().
list_entry_t waiting_objects [static] |
Definition at line 38 of file multiple_objects.c.
1.7.3