zephyr/kernel
Andrew Boie d26cf2dc33 kernel: add k_thread_create() API
Unline k_thread_spawn(), the struct k_thread can live anywhere and not
in the thread's stack region. This will be useful for memory protection
scenarios where private kernel structures for a thread are not
accessible by that thread, or we want to allow the thread to use all the
stack space we gave it.

This requires a change to the internal _new_thread() API as we need to
provide a separate pointer for the k_thread.

By default, we still create internal threads with the k_thread in stack
memory. Forthcoming patches will change this, but we first need to make
it easier to define k_thread memory of variable size depending on
whether we need to store coprocessor state or not.

Change-Id: I533bbcf317833ba67a771b356b6bbc6596bf60f5
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2017-05-11 20:24:22 -04:00
..
configs
include kernel: add k_thread_create() API 2017-05-11 20:24:22 -04:00
alert.c
atomic_c.c
compiler_stack_protect.c
device.c
errno.c kernel: errno: Use per-thread accessor function compatible with Newlib 2017-05-10 20:54:56 -04:00
idle.c
init.c kernel: add k_thread_create() API 2017-05-11 20:24:22 -04:00
int_latency_bench.c
Kconfig test: benchmarking: Timing metrics for the kernel 2017-05-03 08:46:30 -04:00
Kconfig.event_logger
Kconfig.power_mgmt doc: misspellings in Kconfig files 2017-05-05 19:38:53 -04:00
mailbox.c
Makefile
mem_pool.c
mem_slab.c
msg_q.c
mutex.c
pipes.c
poll.c
queue.c kernel: queue, fifo: Add cancel_wait operation. 2017-05-10 09:40:33 -04:00
sched.c
sem.c
stack.c
sys_clock.c
system_work_q.c
thread_abort.c
thread.c kernel: add k_thread_create() API 2017-05-11 20:24:22 -04:00
timer.c
version.c
work_q.c kernel: add k_thread_create() API 2017-05-11 20:24:22 -04:00