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> |
||
|---|---|---|
| .. | ||
| cortex_m | ||
| arch.h | ||