zephyr/kernel
Andrew Boie 65a9d2a94a kernel: make K_.*_INITIALIZER private to kernel
Upcoming memory protection features will be placing some additional
constraints on kernel objects:

- They need to reside in memory owned by the kernel and not the
application
- Certain kernel object validation schemes will require some run-time
initialization of all kernel objects before they can be used.

Per Ben these initializer macros were never intended to be public. It is
not forbidden to use them, but doing so requires care: the memory being
initialized must reside in kernel space, and extra runtime
initialization steps may need to be peformed before they are fully
usable as kernel objects. In particular, kernel subsystems or drivers
whose objects are already in kernel memory may still need to use these
macros if they define kernel objects as members of a larger data
structure.

It is intended that application developers instead use the
K_<object>_DEFINE macros, which will automatically put the object in the
right memory and add them to a section which can be iterated over at
boot to complete initiailization.

There was no K_WORK_DEFINE() macro for creating struct k_work objects,
this is now added.

k_poll_event and k_poll_signal are intended to be instatiated from
application memory and have not been changed.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2017-07-10 11:44:56 -07:00
..
configs kernel: add LEGACY_KERNEL option 2017-01-09 19:42:13 +00:00
include stack_sentinel: change cooperative check 2017-06-08 13:49:36 -05:00
Kconfig dts: arm: STM32 boards use DT to configure I2C 2017-07-07 10:31:34 -05:00
Kconfig.event_logger kernel: Add thread events to kernel event logger 2017-04-25 02:16:36 +00:00
Kconfig.power_mgmt doc: spelling fixes in Kconfig files 2017-06-12 19:40:51 -04:00
Makefile k_mem_pool: Complete rework 2017-05-13 14:39:41 -04:00
alert.c kernel: make K_.*_INITIALIZER private to kernel 2017-07-10 11:44:56 -07:00
atomic_c.c license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
compiler_stack_protect.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
device.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
errno.c kernel: errno: Use per-thread accessor function compatible with Newlib 2017-05-10 20:54:56 -04:00
idle.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
init.c kernel: add early init routines for app RAM 2017-06-29 07:46:58 -04:00
int_latency_bench.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
mailbox.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
mem_slab.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
mempool.c k_mem_pool: Complete rework 2017-05-13 14:39:41 -04:00
msg_q.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
mutex.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
pipes.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
poll.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
queue.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
sched.c kernel: fix short time-slice reset 2017-06-02 14:47:01 -04:00
sem.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
stack.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
sys_clock.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
system_work_q.c kernel: introduce stack definition macros 2017-06-09 18:53:28 -04:00
thread.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
thread_abort.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
timer.c kernel: make sure that CONFIG_OBJECT_TRACING structs are properly ifdef'ed 2017-05-18 12:41:56 -05:00
version.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
work_q.c kernel: add k_thread_create() API 2017-05-11 20:24:22 -04:00