zephyr/include/arch
Andrew Boie 3d80208025 x86: implement user mode on 64-bit
- In early boot, enable the syscall instruction and set up
  necessary MSRs
- Add a hook to update page tables on context switch
- Properly initialize thread based on whether it will
  start in user or supervisor mode
- Add landing function for system calls to execute the
  desired handler
- Implement arch_user_string_nlen()
- Implement logic for dropping a thread down to user mode
- Reserve per-CPU storage space for user and privilege
  elevation stack pointers, necessary for handling syscalls
  when no free registers are available
- Proper handling of gs register considerations when
  transitioning privilege levels

Kernel page table isolation (KPTI) is not yet implemented.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2020-01-13 16:35:10 -05:00
..
arc arc: linker.ld: Port vector table to zephyr_linker_sources() 2019-12-20 08:54:53 -05:00
arm arch: arm: Rewrite Cortex-R reset vector function. 2020-01-10 10:34:17 +01:00
common sys_io: pull in toolchain.h 2019-10-09 09:14:18 -04:00
nios2 cmake: Add the TEXT_START location to zephyr_linker_sources() 2019-12-20 08:54:53 -05:00
posix kernel: rename z_arch_ to arch_ 2019-11-07 15:21:46 -08:00
riscv devicetree: Remove DT_SRAM_{BASE_ADDRESS,SIZE}, use CONFIG_* versions 2020-01-07 17:19:36 +01:00
x86 x86: implement user mode on 64-bit 2020-01-13 16:35:10 -05:00
xtensa global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
arch_inlines.h headers: Refactor kernel and arch headers. 2019-11-06 16:07:32 -08:00
cpu.h arch: arm: Move ARM code to AArch32 sub-directory 2019-12-20 11:40:59 -05:00
syscall.h x86: add system call functions for 64-bit 2020-01-13 16:35:10 -05:00