ISIX-RTOS - small operating system for ARM microcontrollers 1.2
|
#include <stddef.h>
Go to the source code of this file.
Data Structures | |
struct | list |
struct | list_entry |
Defines | |
#define | list_getitem(list, type, member) (type*)((char*)(list)-offsetof(type,member)) |
#define | list_for_each(list_entryp, iterator) |
#define | list_for_each_reverse(list_entryp, iterator) |
#define | list_for_each_entry(list_entryp, iterator, field) |
#define | list_for_each_entry_reverse(list_entryp, iterator, field) |
#define | list_get_first(list_entryp, field, type) (type*)((char*)(list_entryp)->head.next - offsetof(type,field)) |
#define | list_get_last(list_entryp, field, type) (type*)((char*)(list_entryp)->head.prev - offsetof(type,field)) |
#define | list_isempty(list_entryp) ((list_entryp)->head.next==&(list_entryp)->head) |
Typedefs | |
typedef struct list | list_t |
typedef struct list_entry | list_entry_t |
Functions | |
static void | list_init (list_entry_t *list) |
static void | list_insert_between (list_t *a, list_t *b, list_t *elem) |
static void | list_insert_before (list_t *before, list_t *elem) |
static void | list_insert_after (list_t *after, list_t *elem) |
static void | list_insert_end (list_entry_t *list, list_t *elem) |
static void | list_delete (list_t *elem) |
static bool | list_is_elem_assigned (list_t *elem) |
#define list_for_each | ( | list_entryp, | |
iterator | |||
) |
#define list_for_each_entry | ( | list_entryp, | |
iterator, | |||
field | |||
) |
for( list_t *__ilist__=(list_entryp)->head.next; \ (iterator) = list_getitem(__ilist__,typeof(*(iterator)),field),__ilist__!=&(list_entryp)->head; \ __ilist__ = __ilist__->next \ )
Definition at line 76 of file list.h.
Referenced by add_vtimer_to_list(), isix_bug(), isixp_add_task_to_ready_list(), isixp_add_task_to_sem_list(), isixp_add_task_to_waiting_list(), isixp_delete_from_multiple_wait_list(), and isixp_wakeup_multiple_waiting_tasks().
#define list_for_each_entry_reverse | ( | list_entryp, | |
iterator, | |||
field | |||
) |
for( list_t *__ilist__=(list_entryp)->head.prev; \ (iterator) = list_getitem(__ilist__,typeof(*(iterator)),field),__ilist__!=&(list_entryp)->head; \ __ilist__ = __ilist__->prev \ )
#define list_for_each_reverse | ( | list_entryp, | |
iterator | |||
) |
#define list_get_first | ( | list_entryp, | |
field, | |||
type | |||
) | (type*)((char*)(list_entryp)->head.next - offsetof(type,field)) |
Definition at line 91 of file list.h.
Referenced by alloc_task_ready_t(), cleanup_tasks(), isixp_schedule(), isixp_schedule_time(), isixp_sem_signal(), and isixp_vtimer_handle_time().
#define list_get_last | ( | list_entryp, | |
field, | |||
type | |||
) | (type*)((char*)(list_entryp)->head.prev - offsetof(type,field)) |
#define list_isempty | ( | list_entryp | ) | ((list_entryp)->head.next==&(list_entryp)->head) |
Definition at line 110 of file list.h.
Referenced by alloc_task_ready_t(), cleanup_tasks(), isix_sem_destroy(), isix_sem_setval(), isixp_delete_task_from_ready_list(), isixp_schedule_time(), isixp_sem_can_destroy(), isixp_sem_signal(), and isixp_vtimer_handle_time().
typedef struct list_entry list_entry_t |
static void list_delete | ( | list_t * | elem | ) | [inline, static] |
Definition at line 100 of file list.h.
References list::next, NULL, and list::prev.
Referenced by alloc_task_ready_t(), cleanup_tasks(), isix_task_delete(), isix_vtimer_start(), isix_wait_for_multiple_objects(), isixp_delete_from_multiple_wait_list(), isixp_delete_task_from_ready_list(), isixp_schedule(), isixp_schedule_time(), isixp_sem_signal(), isixp_task_change_prio(), isixp_vtimer_handle_time(), and isixp_wakeup_multiple().
static void list_init | ( | list_entry_t * | list | ) | [inline, static] |
Definition at line 24 of file list.h.
References list_entry::head, list::next, and list::prev.
Referenced by isix_init(), isix_sem_create_limited(), isixp_add_task_to_ready_list(), isixp_vtimer_init(), and ixixp_multiple_objects_init().
Definition at line 47 of file list.h.
References list_insert_between(), and list::next.
Referenced by list_insert_end().
Definition at line 40 of file list.h.
References list_insert_between(), and list::prev.
Referenced by add_vtimer_to_list(), isixp_add_task_to_ready_list(), isixp_add_task_to_sem_list(), and isixp_add_task_to_waiting_list().
Definition at line 31 of file list.h.
References list::next, and list::prev.
Referenced by list_insert_after(), and list_insert_before().
static void list_insert_end | ( | list_entry_t * | list, |
list_t * | elem | ||
) | [inline, static] |
Definition at line 53 of file list.h.
References list_entry::head, list_insert_after(), and list::prev.
Referenced by free_task_ready_t(), isix_init(), isix_wait_for_multiple_objects(), isixp_add_task_to_delete_list(), isixp_add_task_to_ready_list(), and isixp_schedule().
static bool list_is_elem_assigned | ( | list_t * | elem | ) | [inline, static] |
Definition at line 113 of file list.h.
References list::next, NULL, and list::prev.
Referenced by isix_vtimer_destroy(), and isix_vtimer_start().