zephyr/include
Chunlin Han e9c9702818 kernel: add memory domain APIs
Add the following application-facing memory domain APIs:

k_mem_domain_init() - to initialize a memory domain
k_mem_domain_destroy() - to destroy a memory domain
k_mem_domain_add_partition() - to add a partition into a domain
k_mem_domain_remove_partition() - to remove a partition from a domain
k_mem_domain_add_thread() - to add a thread into a domain
k_mem_domain_remove_thread() - to remove a thread from a domain

A memory domain would contain some number of memory partitions.
A memory partition is a memory region (might be RAM, peripheral
registers, flash...) with specific attributes (access permission,
e.g. privileged read/write, unprivileged read-only, execute never...).
Memory partitions would be defined by set of MPU regions or MMU tables
underneath.
A thread could only belong to a single memory domain any point in time
but a memory domain could contain multiple threads.
Threads in the same memory domain would have the same access permission
to the memory partitions belong to the memory domain.

The memory domain APIs are used by unprivileged threads to share data
to the threads in the same memory and protect sensitive data from
threads outside their domain. It is not only for improving the security
but also useful for debugging (unexpected access would cause exception).

Jira: ZEP-2281

Signed-off-by: Chunlin Han <chunlin.han@linaro.org>
2017-09-29 16:48:53 -07:00
..
arch kernel: add memory domain APIs 2017-09-29 16:48:53 -07:00
bluetooth Bluetooth: Mesh: Fix setting health period divider 2017-09-29 13:21:40 +03:00
crypto crypto: Remove useless attribute 2017-04-27 13:06:31 +00:00
debug object_tracing: fix definition 2017-08-16 10:59:10 -07:00
dfu DFU: add module for store the image 2017-09-11 11:37:43 -04:00
display doc: spelling check doxygen comments include/ 2017-05-02 22:21:37 -04:00
drivers usb: Allow to select configuration for composite devices 2017-09-21 09:00:23 -04:00
dt-bindings i2c: Cleanup dts clock-frequency property usage 2017-08-16 10:03:34 -05:00
fs fs: nffs: Add NFFS filesystem support 2017-09-22 06:54:48 -04:00
linker kernel: introduce object validation mechanism 2017-09-07 16:33:33 -07:00
logging doc: spelling check doxygen comments include/ 2017-05-02 22:21:37 -04:00
misc cleanup: remove obsolete nano_work.h 2017-09-11 19:24:12 -04:00
net net: if: Add IPv4 multicast add, remove and lookup functions 2017-09-29 11:34:06 +03:00
shell shell: Add define to _SHELL_H_ 2017-06-09 18:54:27 -04:00
toolchain kernel: make 'static inline' implicit to __syscall 2017-09-29 15:09:44 -07:00
usb usb: webusb: Move USB version definition to right place 2017-09-21 13:10:04 -04:00
zephyr Introduce new sized integer typedefs 2017-04-20 16:07:08 +00:00
adc.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
aio_comparator.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
atomic.h license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
cache.h license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
clock_control.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
console.h doc: fix misspellings in include (API docs) 2017-08-10 12:22:19 -04:00
counter.h api: counter: Improve documentation of counter_set_alarm(). 2017-09-15 14:29:15 -04:00
crc16.h drivers: crc: Add 'pad' parameter to crc16() 2017-08-17 22:19:19 -04:00
device.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
disk_access.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
dma.h drivers: dma: remove deprecated API functions 2017-09-22 07:50:20 -04:00
eth.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
flash.h Drivers: flash: New API to obtain the flash layout 2017-09-11 11:41:57 -04:00
fs.h license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
gpio.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
i2c.h drivers: i2c: remove usage of bitfield access for cfg 2017-09-20 10:16:14 -05:00
i2s.h drivers: Add I2S (Inter-IC Sound) driver API 2017-08-14 11:14:34 -04:00
init.h kernel: remove deprecated init levels 2017-04-07 17:45:34 +00:00
ipm.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
irq_offload.h license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
irq.h irq.h: include generic toolchain header 2017-08-16 10:59:10 -07:00
kernel_version.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
kernel.h kernel: add memory domain APIs 2017-09-29 16:48:53 -07:00
pinmux.h pinmux: Allow up to 6 functions 2017-08-09 12:26:14 -07:00
power.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
pthread.h kernel: POSIX thread IPC support 2017-08-15 19:42:07 -04:00
pwm.h drivers: pwm: Remove all deprecated APIs. 2017-08-09 12:31:03 -07:00
random.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
rtc.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
sensor.h include: Add new sensor channel blue 2017-08-03 15:29:35 -05:00
shared_irq.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
spi_legacy.h api: New SPI API 2017-05-19 18:52:25 -04:00
spi.h doc: improve spi.h doxygen comments layout 2017-09-11 19:37:51 -04:00
sw_isr_table.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
sys_clock.h kernel: tickless: Add tickless kernel support 2017-04-27 13:46:28 +00:00
sys_io.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
syscall.h syscalls: reorganize headers 2017-09-28 08:56:20 -07:00
toolchain.h xtensa: move byte-order macros out of arch.h 2017-05-11 12:47:23 -04:00
uart.h drivers: serial: Clarification for uart_fifo_fill()/read() calls 2017-05-30 20:53:13 -04:00
watchdog.h Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
zephyr.h kernel: remove legacy.h and MDEF support 2017-04-19 10:59:35 -05:00