| 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().
 1.7.3
 1.7.3