zephyr/include/microkernel
Daniel Leung 8253b90cfc microkernel: add task pointer list
Due to similar padding issue as pipe, the list of task object
may not be used directly. As mentioned before, some compiler/linker
may pad the large struct. For example, compiling under gcc and
march=i686 pads the struct to 32-byte alignment (march=atom to
64-byte alignment). This causes issue with sizeof() and pointer
arithmetic because they have no idea about the padding.
When the stars align in a certain way, these task structs may be
corrupted. So add a task pointer list and use it for task
manipulation. The task list remains as it is beneficial to group
them together to take advantage of cache locality.

Change-Id: I0e86bfe05742040f4540d7854c1ac14e76162776
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:15:58 -05:00
..
base_api.h doxygen: define groups for microkernel objects 2016-02-05 20:15:58 -05:00
command_packet.h doxygen: move command_packet documentation to header 2016-02-05 20:15:34 -05:00
event.h doxygen: define groups for microkernel objects 2016-02-05 20:15:58 -05:00
fifo.h doxygen: define groups for microkernel objects 2016-02-05 20:15:58 -05:00
mailbox.h doxygen: define groups for microkernel objects 2016-02-05 20:15:58 -05:00
memory_map.h doxygen: define groups for microkernel objects 2016-02-05 20:15:58 -05:00
memory_pool.h doxygen: define groups for microkernel objects 2016-02-05 20:15:58 -05:00
mutex.h doxygen: define groups for microkernel objects 2016-02-05 20:15:58 -05:00
pipe.h doxygen: define groups for microkernel objects 2016-02-05 20:15:58 -05:00
semaphore.h doxygen: define groups for microkernel objects 2016-02-05 20:15:58 -05:00
task_irq.h doxygen: define groups for microkernel objects 2016-02-05 20:15:58 -05:00
task.h microkernel: add task pointer list 2016-02-05 20:15:58 -05:00
ticks.h doxygen: define groups for microkernel objects 2016-02-05 20:15:58 -05:00