zephyr/kernel
Andrew Boie 42a2c96422 newlib: fix heap user mode access for MPU devices
MPU devices that enforce power-of-two alignment now
specify the size of the buffer used for the newlib heap.
This buffer will be properly aligned and a pointer
exposed in a kernel header, such that it can be added
to a user thread's memory domain configuration if
necessary.

MPU devices that don't have these restrictions allocate
the heap as normal.

In all cases, if an MPU/MMU region needs to be programmed,
the z_newlib_get_heap_bounds() API will return the necessary
information.

Given how precious MPU regions are, no automatic programming
of the MPU is done; applications will need to do this as
needed in their memory domain configurations.

On x86, the x86 MMU-specific code has been moved to arch/x86
using the new z_newlib_get_heap_bounds() API.

Fixes: #6814

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2018-05-10 15:09:02 -07:00
..
include newlib: fix heap user mode access for MPU devices 2018-05-10 15:09:02 -07:00
alert.c kernel: Provide only one _SYSCALL_HANDLER() macro 2017-10-16 13:42:15 -04:00
atomic_c.c license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
CMakeLists.txt lib: posix: Move posix layer from 'kernel' to 'lib' 2018-04-05 16:43:05 -04:00
compiler_stack_protect.c kernel: add CODE_UNREACHABLE in _StackCheckHandler 2018-04-17 10:50:12 -07:00
device.c kernel: device: Only compare strings if pointer comparison fails 2018-02-15 17:31:59 -08:00
errno.c kernel: errno: Use per-thread accessor function compatible with Newlib 2017-05-10 20:54:56 -04:00
idle.c kernel: Rework SMP irq_lock() compatibility layer 2018-05-02 10:00:17 -07:00
init.c kernel: Rework SMP irq_lock() compatibility layer 2018-05-02 10:00:17 -07:00
int_latency_bench.c Convert remaining code to using newly introduced integer sized types 2017-04-21 11:38:23 -05:00
Kconfig doc: fix misspellings in doc and Kconfig files 2018-05-09 15:06:43 -05:00
Kconfig.event_logger kconfig: fix more help spacing issues 2018-02-15 23:20:55 -05:00
Kconfig.power_mgmt kconfig: fix more help spacing issues 2018-02-15 23:20:55 -05:00
mailbox.c kernel: Clean up _unpend_thread() API 2018-04-24 03:57:20 +05:30
mem_domain.c kernel: mem_domain: Fix compile issues 2018-03-05 10:47:00 -06:00
mem_slab.c kernel: Clean up _unpend_thread() API 2018-04-24 03:57:20 +05:30
mempool.c kernel: Clean up _unpend_thread() API 2018-04-24 03:57:20 +05:30
msg_q.c kernel: Clean up _unpend_thread() API 2018-04-24 03:57:20 +05:30
mutex.c kernel: Clean up _unpend_thread() API 2018-04-24 03:57:20 +05:30
pipes.c kernel: Clean up _unpend_thread() API 2018-04-24 03:57:20 +05:30
poll.c kernel: Clean up _unpend_thread() API 2018-04-24 03:57:20 +05:30
queue.c kernel: Clean up _unpend_thread() API 2018-04-24 03:57:20 +05:30
sched.c kernel: Rework SMP irq_lock() compatibility layer 2018-05-02 10:00:17 -07:00
sem.c kernel: sem: Ensure that initial count is lesser or equal than limit 2018-04-24 04:04:36 +05:30
smp.c kernel: Rework SMP irq_lock() compatibility layer 2018-05-02 10:00:17 -07:00
stack.c kernel: Clean up _unpend_thread() API 2018-04-24 03:57:20 +05:30
sys_clock.c kernel: SMP timer integration 2018-02-16 10:44:29 -05:00
system_work_q.c kernel: introduce stack definition macros 2017-06-09 18:53:28 -04:00
thread.c kernel: Clean up _unpend_thread() API 2018-04-24 03:57:20 +05:30
thread_abort.c kernel: Further unify _reschedule APIs 2018-04-24 03:57:20 +05:30
timer.c kernel: Clean up _unpend_thread() API 2018-04-24 03:57:20 +05:30
userspace.c scripts: gen_kobject_list: Generate enums and case statements 2018-04-26 02:57:12 +05:30
userspace_handler.c userspace: assign thread IDs at build time 2017-11-03 11:29:23 -07:00
version.c kernel: version: no need to store version in RAM 2017-09-07 16:34:50 -07:00
work_q.c work_q: Correctly clear pending flag in delayed work queue, update docs 2018-02-13 18:08:57 -05:00