zephyr/include
Andrew Boie f0ddbd7eee x86: abstract toplevel page table pointer
This patch is a preparatory step in enabling the MMU in
long mode; no steps are taken to implement long mode support.

We introduce struct x86_page_tables, which represents the
top-level data structure for page tables:

- For 32-bit, this will contain a four-entry page directory
  pointer table (PDPT)
- For 64-bit, this will (eventually) contain a page map level 4
  table (PML4)

In either case, this pointer value is what gets programmed into
CR3 to activate a set of page tables. There are extra bits in
CR3 to set for long mode, we'll get around to that later.

This abstraction will allow us to use the same APIs that work
with page tables in either mode, rather than hard-coding that
the top level data structure is a PDPT.

z_x86_mmu_validate() has been re-written to make it easier to
add another level of paging for long mode, to support 2MB
PDPT entries, and correctly validate regions which span PDPTE
entries.

Some MMU-related APIs moved out of 32-bit x86's arch.h into
mmustructs.h.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2019-10-04 15:53:49 -07:00
..
app_memory cleanup: include/: move misc/dlist.h to sys/dlist.h 2019-06-27 22:55:49 -04:00
arch x86: abstract toplevel page table pointer 2019-10-04 15:53:49 -07:00
audio cleanup: include/: move i2s.h to drivers/i2s.h 2019-06-27 22:55:49 -04:00
bluetooth Bluetooth: SMP: Handle both devices initiating security 2019-09-30 10:29:56 -07:00
cmsis_rtos_v1
cmsis_rtos_v2
console console: Remove deprecated function console_register_line_input 2019-09-18 19:14:25 -05:00
crypto cleanup: include/: move misc/util.h to sys/util.h 2019-06-27 22:55:49 -04:00
data include: json: reorder designated initializers 2019-07-22 18:10:51 -07:00
debug debug: tracing: Remove unneeded abstraction 2019-09-26 06:26:22 -04:00
dfu include/dfu: rearrange for standard use of extern "C" in private headers 2019-08-13 18:00:31 +02:00
disk sdhc: rename disk_access_sdhc.c 2019-07-10 11:58:15 -05:00
display subsys/cfb: improve font structure packing 2019-07-31 05:43:50 -04:00
drivers include: drivers: CAN: changed return parameter description 2019-10-04 13:05:44 -04:00
dt-bindings irq: rv32m1: Fixup IRQ values for multi-level IRQ handling 2019-09-10 07:34:57 -05:00
fs fcb: start using errno codes 2019-09-08 12:42:53 +02:00
linker linker: cxx: Include .gcc_except_table sections 2019-09-19 09:26:42 -05:00
logging logging: add minimal implementation 2019-10-01 09:24:02 -04:00
mgmt
misc cleanup: include/: move misc/reboot.h to power/reboot.h 2019-06-27 22:55:49 -04:00
net net: coap: Add internal init function to seed message_id 2019-10-04 21:22:55 +03:00
nvs cleanup: include/: move nvs/nvs.h to fs/nvs.h 2019-06-27 22:55:49 -04:00
posix lib: posix, minlibc: struct itimerspec is defined by sys/timespec.h 2019-09-25 20:56:29 -07:00
power cleanup: include/: move misc/reboot.h to power/reboot.h 2019-06-27 22:55:49 -04:00
random
settings settings: Generic function to call set handler 2019-09-24 14:15:38 +02:00
shell shell: fix configuration issue 2019-10-01 09:24:02 -04:00
stats cleanup: include/: move stats.h to stats/stats.h 2019-06-27 22:55:49 -04:00
storage include: rearrange for standard use of extern "C" in various headers 2019-08-13 18:00:31 +02:00
sys SYS_MEM_POOL_DEFINE(): move BUILD_ASSERT() at the end 2019-10-01 10:22:18 -07:00
toolchain toolchain: check if __deprecated is defined 2019-09-27 15:23:26 -04:00
usb usb: sort usb config data by section 2019-06-27 12:18:05 +02:00
zephyr riscv: make core code 64-bit compatible 2019-08-02 13:54:48 -07:00
adc.h cleanup: include/: move adc.h to drivers/adc.h 2019-06-27 22:55:49 -04:00
atomic.h cleanup: include/: move atomic.h to sys/atomic.h 2019-06-27 22:55:49 -04:00
base64.h cleanup: include/: move base64.h to sys/base64.h 2019-06-27 22:55:49 -04:00
cache.h
can.h cleanup: include/: move can.h to drivers/can.h 2019-06-27 22:55:49 -04:00
clock_control.h cleanup: include/: move clock_control.h to drivers/clock_control.h 2019-06-27 22:55:49 -04:00
console.h cleanup: include/: move console.h to console/console.h 2019-06-27 22:55:49 -04:00
counter.h cleanup: include/: move counter.h to drivers/counter.h 2019-06-27 22:55:49 -04:00
crc.h cleanup: include/: move crc.h to sys/crc.h 2019-06-27 22:55:49 -04:00
device.h include: rearrange for standard use of extern "C" in various headers 2019-08-13 18:00:31 +02:00
disk_access.h cleanup: include/: move disk_access.h to disk/disk_access.h 2019-06-27 22:55:49 -04:00
display.h cleanup: include/: move display.h to drivers/display.h 2019-06-27 22:55:49 -04:00
dma.h cleanup: include/: move dma.h to drivers/dma.h 2019-06-27 22:55:49 -04:00
entropy.h cleanup: include/: move entropy.h to drivers/entropy.h 2019-06-27 22:55:49 -04:00
exc_handle.h
fatal.h doc: provide error handling documentation 2019-09-23 23:45:08 +02:00
fcb.h cleanup: include/: move fcb.h to fs/fcb.h 2019-06-27 22:55:49 -04:00
flash_map.h cleanup: include/: move flash_map.h to storage/flash_map.h 2019-06-27 22:55:49 -04:00
flash.h cleanup: include/: move flash.h to drivers/flash.h 2019-06-27 22:55:49 -04:00
fs.h cleanup: include/: move fs.h to fs/fs.h 2019-06-27 22:55:49 -04:00
generated_dts_board.h dts: Add new DTS/binding parser 2019-07-29 16:22:17 -04:00
gna.h cleanup: include/: move gna.h to drivers/gna.h 2019-06-27 22:55:49 -04:00
gpio.h cleanup: include/: move gpio.h to drivers/gpio.h 2019-06-27 22:55:49 -04:00
hwinfo.h cleanup: include/: move hwinfo.h to drivers/hwinfo.h 2019-06-27 22:55:49 -04:00
i2c.h cleanup: include/: move i2c.h to drivers/i2c.h 2019-06-27 22:55:49 -04:00
i2s.h cleanup: include/: move i2s.h to drivers/i2s.h 2019-06-27 22:55:49 -04:00
init.h
ipm.h cleanup: include/: move ipm.h to drivers/ipm.h 2019-06-27 22:55:49 -04:00
irq_nextlevel.h irq_nextlevel: add API to query if an IRQ line is enabled 2019-09-07 10:20:51 -04:00
irq_offload.h kernel: add arch abstraction for irq_offload() 2019-10-01 11:11:42 +02:00
irq.h
json.h cleanup: include/: move json.h to data/json.h 2019-06-27 22:55:49 -04:00
kernel_includes.h kernel: consolidate error handling code 2019-07-25 15:06:58 -07:00
kernel_version.h
kernel.h kernel: Introduce k_work_poll 2019-10-04 17:15:17 +02:00
led_strip.h cleanup: include/: move led_strip.h to drivers/led_strip.h 2019-06-27 22:55:49 -04:00
led.h cleanup: include/: move led.h to drivers/led.h 2019-06-27 22:55:49 -04:00
pinmux.h cleanup: include/: move pinmux.h to drivers/pinmux.h 2019-06-27 22:55:49 -04:00
power.h cleanup: include/: move power.h to power/power.h 2019-06-27 22:55:49 -04:00
ptp_clock.h include: rearrange for standard use of extern "C" in various headers 2019-08-13 18:00:31 +02:00
pwm.h cleanup: include/: move pwm.h to drivers/pwm.h 2019-06-27 22:55:49 -04:00
ring_buffer.h cleanup: include/: move ring_buffer.h to sys/ring_buffer.h 2019-06-27 22:55:49 -04:00
sched_priq.h cleanup: include/: move misc/util.h to sys/util.h 2019-06-27 22:55:49 -04:00
sensor.h cleanup: include/: move sensor.h to drivers/sensor.h 2019-06-27 22:55:49 -04:00
shared_irq.h
spi.h cleanup: include/: move spi.h to drivers/spi.h 2019-06-27 22:55:49 -04:00
spinlock.h spinlock: Make sure C and C++ have the same sizeof(k_spinlock) value 2019-09-16 14:34:24 -05:00
stats.h cleanup: include/: move stats.h to stats/stats.h 2019-06-27 22:55:49 -04:00
sw_isr_table.h include: rearrange for standard use of extern "C" in various headers 2019-08-13 18:00:31 +02:00
sys_clock.h include: rearrange for standard use of extern "C" in various headers 2019-08-13 18:00:31 +02:00
sys_io.h cleanup: include/: move sys_io.h to sys/sys_io.h 2019-06-27 22:55:49 -04:00
syscall.h kernel: syscalls: Whitespace fixups 2019-09-12 11:31:50 +08:00
toolchain.h headers: Removed include other.h from toolchain.h 2019-09-13 11:14:56 +02:00
tracing.h cleanup: include/: move tracing.h to debug/tracing.h 2019-06-27 22:55:49 -04:00
tty.h cleanup: include/: move tty.h to console/tty.h 2019-06-27 22:55:49 -04:00
uart.h cleanup: include/: move uart.h to drivers/uart.h 2019-06-27 22:55:49 -04:00
updatehub.h lib: updatehub: Add UpdateHub.io support 2019-06-05 00:20:37 +02:00
watchdog.h cleanup: include/: move watchdog.h to drivers/watchdog.h 2019-06-27 22:55:49 -04:00
zephyr.h