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
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
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
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
base64.h
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
counter.h cleanup: include/: move counter.h to drivers/counter.h 2019-06-27 22:55:49 -04:00
crc.h
device.h include: rearrange for standard use of extern "C" in various headers 2019-08-13 18:00:31 +02:00
disk_access.h
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
flash_map.h
flash.h cleanup: include/: move flash.h to drivers/flash.h 2019-06-27 22:55:49 -04:00
fs.h
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
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
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
tty.h
uart.h cleanup: include/: move uart.h to drivers/uart.h 2019-06-27 22:55:49 -04:00
updatehub.h
watchdog.h cleanup: include/: move watchdog.h to drivers/watchdog.h 2019-06-27 22:55:49 -04:00
zephyr.h