zephyr/kernel/include
Andy Ross 042d8ecca9 kernel: Add alternative _arch_switch context switch primitive
The existing __swap() mechanism is too high level for some
applications because of its scheduler-awareness.  This introduces a
new _arch_switch() mechanism, which is a simpler primitive that looks
like:

    void _arch_switch(void *handle, void **old_handle_out);

The new thread handle (typically just a stack pointer) is specified
explicitly instead of being picked up from the scheduler by
per-architecture code, and on return the "old" thread handle that got
switched out is returned through the pointer.

The new primitive (currently available only on xtensa) is selected
when CONFIG_USE_SWITCH is "y".  A new C _Swap() implementation based
on this primitive is then added which operates compatibly.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2018-02-16 10:44:29 -05:00
..
gen_offset.h license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
kernel_internal.h kernel: Add alternative _arch_switch context switch primitive 2018-02-16 10:44:29 -05:00
kernel_offsets.h syscalls: greatly simplify system call declaration 2017-09-29 13:02:20 -07:00
kernel_structs.h kernel: Move some macros 2018-02-16 10:44:29 -05:00
ksched.h kernel: have k_sched_lock call _sched_lock 2017-11-17 17:42:54 -05:00
offsets_short.h kernel/arch: streamline thread user options 2017-01-24 13:34:50 +00:00
syscall_handler.h kernel: include: rename nano_internal.h to kernel_internal.h 2018-01-31 10:07:21 -06:00
timeout_q.h cleanup: rename fiber/task -> thread 2017-10-30 18:41:15 -04:00
wait_q.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00