seL4/include
Bill Nguyen 744104654d x86/vcpu: expose VMX-preemption timer scale MSR
Currently, the kernel permits userspace VMMs to enable and use the
VMX-preemption timer by allowing writes to the following VMCS fields:
- VMX_GUEST_PREEMPTION_TIMER_VALUE (count)
- VMX_CONTROL_PIN_EXECUTION_CONTROLS (timer enable bit)
- VMX_CONTROL_EXIT_CONTROLS (save current count on context switch bit)

It also forwards the timer expiry event as a VM exit.

But it does not tell userspace how fast the timer will count down,
making it impossible to use. This commit exposes the timer's scale
via `seL4_X86_VCPU_ReadMSR`.

Signed-off-by: Bill Nguyen <bill.nguyen@unsw.edu.au>
2026-05-09 10:54:59 +02:00
..
32/mode gh-548: Update use of cmake_minimum_required cmd 2026-03-12 11:28:26 +11:00
64/mode gh-548: Update use of cmake_minimum_required cmd 2026-03-12 11:28:26 +11:00
api Runtime Domain Schedules 2026-03-24 15:03:39 +11:00
arch x86/vcpu: expose VMX-preemption timer scale MSR 2026-05-09 10:54:59 +02:00
benchmark benchmark: config opt. name to enable log buffer 2022-03-31 08:56:06 +11:00
drivers Add support for the Banana Pi BPI-F3 2025-11-27 20:01:07 +01:00
fastpath reply: do not assume replyObject NULL invariant 2025-02-10 15:53:08 +11:00
kernel Disable clock sync test on QEMU RISC-V 2025-11-20 16:24:55 +11:00
machine machine: move setIRQTrigger into interrupt.h 2025-10-10 14:36:43 +11:00
model Runtime Domain Schedules 2026-03-24 15:03:39 +11:00
object Runtime Domain Schedules 2026-03-24 15:03:39 +11:00
plat treewide: typo fixes 2025-04-14 12:05:16 +10:00
smp arm: Add new APIs for generating SGIs 2025-07-07 08:50:47 +10:00
api.h replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
assert.h debug: use c99 standard instead of gcc extensions 2023-11-16 12:09:52 +00:00
basic_types.h boot: document region types 2023-04-12 15:07:02 +10:00
bootinfo.h boot: Remove constant BI_FRAME_SIZE_BITS 2023-08-23 15:10:32 +02:00
compound_types.h trivial: remove superfluous empty lines 2021-09-27 23:09:09 +10:00
config.h libsel4: Fix name for AARCH64_VSPACE_S2_START_L1 2021-09-06 08:08:54 +10:00
hardware.h boot: simplify boot code recycling 2023-08-13 09:04:26 +10:00
linker.h replacing all ifndef with pargma once 2020-03-23 11:04:46 +11:00
machine.h re-use existing functions to avoid redundancy 2022-09-15 11:25:04 +02:00
object.h trivial: remove duplicate headers 2022-02-05 15:30:25 +11:00
stdarg.h trivial: remove superfluous empty lines 2021-09-27 23:09:09 +10:00
stdint.h print 64-bit integers on 32-bits systems fully 2021-11-26 06:01:11 +01:00
string.h trivial: remove superfluous empty lines 2021-09-27 23:09:09 +10:00
types.h trivial: remove superfluous empty lines 2021-09-27 23:09:09 +10:00
util.h util: provide FNSPEC for __unreachable 2025-10-10 14:36:43 +11:00