zephyr/scripts
Andrew Boie bca15da650 userspace: treat thread stacks as kernel objects
We need to track permission on stack memory regions like we do
with other kernel objects. We want stacks to live in a memory
area that is outside the scope of memory domain permission
management. We need to be able track what stacks are in use,
and what stacks may be used by user threads trying to call
k_thread_create().

Some special handling is needed because thread stacks appear as
variously-sized arrays of struct _k_thread_stack_element which is
just a char. We need the entire array to be considered an object,
but also properly handle arrays of stacks.

Validation of stacks also requires that the bounds of the stack
are not exceeded. Various approaches were considered. Storing
the size in some header region of the stack itself would not allow
the stack to live in 'noinit'. Having a stack object be a data
structure that points to the stack buffer would confound our
current APIs for declaring stacks as arrays or struct members.
In the end, the struct _k_object was extended to store this size.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2017-10-16 19:02:00 -07:00
..
basic
checkpatch
ci
cross_compiler
dts
footprint
gitlint
kconfig
sanity_chk sanitycheck: add last_sanity.xml to gitignore 2017-10-14 19:22:55 -04:00
support fix "scripts: zephyr_flash_debug: flash like dfuutil.sh" 2017-10-13 12:50:40 -04:00
.gitignore
check_link_map.py
checkpatch.pl
checkstack.pl
file2hex.py
filter-known-issues.py
gcc-version.sh
gen_gdt.py
gen_idt.py
gen_kobject_list.py userspace: treat thread stacks as kernel objects 2017-10-16 19:02:00 -07:00
gen_mmu.py
gen_offset_header.py
gen_syscall_header.py gen_syscall_header: use compiler barrier 2017-10-16 16:16:56 -07:00
gen_syscalls.py
headerdep.pl
Kbuild.include
make-ll
Makefile
Makefile.build
Makefile.clean
Makefile.extrawarn
Makefile.gen
Makefile.headersinst
Makefile.help
Makefile.host
Makefile.lib
Makefile.modbuiltin
Makefile.qemu
Makefile.toolchain.espressif
Makefile.toolchain.gccarmemb
Makefile.toolchain.issm
Makefile.toolchain.riscv32
Makefile.toolchain.xcc
Makefile.toolchain.xtools
Makefile.toolchain.zephyr
Makefile.xt-run
Makefile.xtsc-run
mkmakefile
mksysmap
process_gperf.py
qemu-machine-hack.py
requirements.txt
sanitycheck
spelling.txt
tags.sh
timestamp
uncrustify.cfg
vercomp
waitpid