mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-01 16:32:57 +00:00
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> |
||
---|---|---|
.. | ||
include | ||
k_command_packet.c | ||
k_event.c | ||
k_fifo.c | ||
k_idle.c | ||
k_init.c | ||
k_irq.c | ||
k_mailbox.c | ||
k_memory_map.c | ||
k_memory_pool.c | ||
k_move_data.c | ||
k_mutex.c | ||
k_nop.c | ||
k_offload.c | ||
k_pipe_buffer.c | ||
k_pipe_get.c | ||
k_pipe_put.c | ||
k_pipe_util.c | ||
k_pipe_xfer.c | ||
k_pipe.c | ||
k_semaphore.c | ||
k_server.c | ||
k_task_monitor.c | ||
k_task.c | ||
k_ticker.c | ||
k_timer.c | ||
Kconfig | ||
Makefile |