[ SYSTEM ]: Linux srv.persadacompanies.com 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64
[ SERVER ]: Apache | PHP: 8.4.20
[ USER ]: persadamedika | IP: 45.64.1.108
GEFORCE FILE MANAGER
/
usr
/
src
/
kernels
/
4.18.0-553.63.1.el8_10.x86_64
/
arch
/
x86
/
include
/
asm
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📁 crypto
SET
[ DEL ]
📁 e820
SET
[ DEL ]
📁 fpu
SET
[ DEL ]
📁 numachip
SET
[ DEL ]
📁 shared
SET
[ DEL ]
📁 trace
SET
[ DEL ]
📁 uv
SET
[ DEL ]
📁 vdso
SET
[ DEL ]
📁 xen
SET
[ DEL ]
📄 Kbuild
319 B
SET
[ EDIT ]
|
[ DEL ]
📄 a.out-core.h
1,931 B
SET
[ EDIT ]
|
[ DEL ]
📄 acenv.h
1,596 B
SET
[ EDIT ]
|
[ DEL ]
📄 acpi.h
5,225 B
SET
[ EDIT ]
|
[ DEL ]
📄 agp.h
1,070 B
SET
[ EDIT ]
|
[ DEL ]
📄 alternative.h
11,407 B
SET
[ EDIT ]
|
[ DEL ]
📄 amd-ibs.h
5,020 B
SET
[ EDIT ]
|
[ DEL ]
📄 amd_hsmp.h
364 B
SET
[ EDIT ]
|
[ DEL ]
📄 amd_nb.h
3,086 B
SET
[ EDIT ]
|
[ DEL ]
📄 apb_timer.h
1,466 B
SET
[ EDIT ]
|
[ DEL ]
📄 apic.h
14,661 B
SET
[ EDIT ]
|
[ DEL ]
📄 apic_flat_64.h
151 B
SET
[ EDIT ]
|
[ DEL ]
📄 apicdef.h
11,565 B
SET
[ EDIT ]
|
[ DEL ]
📄 apm.h
1,768 B
SET
[ EDIT ]
|
[ DEL ]
📄 arch_hweight.h
1,311 B
SET
[ EDIT ]
|
[ DEL ]
📄 archrandom.h
3,221 B
SET
[ EDIT ]
|
[ DEL ]
📄 asm-offsets.h
35 B
SET
[ EDIT ]
|
[ DEL ]
📄 asm-prototypes.h
946 B
SET
[ EDIT ]
|
[ DEL ]
📄 asm.h
5,186 B
SET
[ EDIT ]
|
[ DEL ]
📄 atomic.h
6,279 B
SET
[ EDIT ]
|
[ DEL ]
📄 atomic64_32.h
8,150 B
SET
[ EDIT ]
|
[ DEL ]
📄 atomic64_64.h
5,933 B
SET
[ EDIT ]
|
[ DEL ]
📄 audit.h
170 B
SET
[ EDIT ]
|
[ DEL ]
📄 barrier.h
2,471 B
SET
[ EDIT ]
|
[ DEL ]
📄 bios_ebda.h
914 B
SET
[ EDIT ]
|
[ DEL ]
📄 bitops.h
10,727 B
SET
[ EDIT ]
|
[ DEL ]
📄 boot.h
1,825 B
SET
[ EDIT ]
|
[ DEL ]
📄 bootparam_utils.h
2,907 B
SET
[ EDIT ]
|
[ DEL ]
📄 bug.h
2,117 B
SET
[ EDIT ]
|
[ DEL ]
📄 bugs.h
533 B
SET
[ EDIT ]
|
[ DEL ]
📄 cache.h
641 B
SET
[ EDIT ]
|
[ DEL ]
📄 cacheflush.h
306 B
SET
[ EDIT ]
|
[ DEL ]
📄 cacheinfo.h
209 B
SET
[ EDIT ]
|
[ DEL ]
📄 calgary.h
2,370 B
SET
[ EDIT ]
|
[ DEL ]
📄 ce4100.h
121 B
SET
[ EDIT ]
|
[ DEL ]
📄 checksum.h
133 B
SET
[ EDIT ]
|
[ DEL ]
📄 checksum_32.h
4,964 B
SET
[ EDIT ]
|
[ DEL ]
📄 checksum_64.h
5,541 B
SET
[ EDIT ]
|
[ DEL ]
📄 clocksource.h
480 B
SET
[ EDIT ]
|
[ DEL ]
📄 cmdline.h
302 B
SET
[ EDIT ]
|
[ DEL ]
📄 cmpxchg.h
7,891 B
SET
[ EDIT ]
|
[ DEL ]
📄 cmpxchg_32.h
3,247 B
SET
[ EDIT ]
|
[ DEL ]
📄 cmpxchg_64.h
552 B
SET
[ EDIT ]
|
[ DEL ]
📄 coco.h
482 B
SET
[ EDIT ]
|
[ DEL ]
📄 compat.h
4,861 B
SET
[ EDIT ]
|
[ DEL ]
📄 cpu.h
2,607 B
SET
[ EDIT ]
|
[ DEL ]
📄 cpu_device_id.h
8,109 B
SET
[ EDIT ]
|
[ DEL ]
📄 cpu_entry_area.h
4,162 B
SET
[ EDIT ]
|
[ DEL ]
📄 cpufeature.h
9,470 B
SET
[ EDIT ]
|
[ DEL ]
📄 cpufeatures.h
32,633 B
SET
[ EDIT ]
|
[ DEL ]
📄 cpuid.h
498 B
SET
[ EDIT ]
|
[ DEL ]
📄 cpuidle_haltpoll.h
189 B
SET
[ EDIT ]
|
[ DEL ]
📄 cpumask.h
408 B
SET
[ EDIT ]
|
[ DEL ]
📄 crash.h
300 B
SET
[ EDIT ]
|
[ DEL ]
📄 current.h
443 B
SET
[ EDIT ]
|
[ DEL ]
📄 debugreg.h
3,411 B
SET
[ EDIT ]
|
[ DEL ]
📄 delay.h
275 B
SET
[ EDIT ]
|
[ DEL ]
📄 desc.h
12,274 B
SET
[ EDIT ]
|
[ DEL ]
📄 desc_defs.h
3,396 B
SET
[ EDIT ]
|
[ DEL ]
📄 device.h
328 B
SET
[ EDIT ]
|
[ DEL ]
📄 disabled-features.h
3,559 B
SET
[ EDIT ]
|
[ DEL ]
📄 div64.h
2,189 B
SET
[ EDIT ]
|
[ DEL ]
📄 dma-mapping.h
288 B
SET
[ EDIT ]
|
[ DEL ]
📄 dma.h
9,827 B
SET
[ EDIT ]
|
[ DEL ]
📄 dmi.h
556 B
SET
[ EDIT ]
|
[ DEL ]
📄 dwarf2.h
2,487 B
SET
[ EDIT ]
|
[ DEL ]
📄 edac.h
474 B
SET
[ EDIT ]
|
[ DEL ]
📄 efi.h
7,416 B
SET
[ EDIT ]
|
[ DEL ]
📄 elf.h
12,640 B
SET
[ EDIT ]
|
[ DEL ]
📄 emergency-restart.h
202 B
SET
[ EDIT ]
|
[ DEL ]
📄 emulate_prefix.h
484 B
SET
[ EDIT ]
|
[ DEL ]
📄 enclu.h
181 B
SET
[ EDIT ]
|
[ DEL ]
📄 entry_arch.h
1,922 B
SET
[ EDIT ]
|
[ DEL ]
📄 espfix.h
426 B
SET
[ EDIT ]
|
[ DEL ]
📄 exec.h
37 B
SET
[ EDIT ]
|
[ DEL ]
📄 export.h
120 B
SET
[ EDIT ]
|
[ DEL ]
📄 extable.h
1,300 B
SET
[ EDIT ]
|
[ DEL ]
📄 fb.h
540 B
SET
[ EDIT ]
|
[ DEL ]
📄 fixmap.h
6,381 B
SET
[ EDIT ]
|
[ DEL ]
📄 floppy.h
6,748 B
SET
[ EDIT ]
|
[ DEL ]
📄 frame.h
2,237 B
SET
[ EDIT ]
|
[ DEL ]
📄 fsgsbase.h
2,072 B
SET
[ EDIT ]
|
[ DEL ]
📄 ftrace.h
2,777 B
SET
[ EDIT ]
|
[ DEL ]
📄 futex.h
2,269 B
SET
[ EDIT ]
|
[ DEL ]
📄 gart.h
2,682 B
SET
[ EDIT ]
|
[ DEL ]
📄 genapic.h
22 B
SET
[ EDIT ]
|
[ DEL ]
📄 geode.h
842 B
SET
[ EDIT ]
|
[ DEL ]
📄 hardirq.h
2,207 B
SET
[ EDIT ]
|
[ DEL ]
📄 highmem.h
2,466 B
SET
[ EDIT ]
|
[ DEL ]
📄 hpet.h
3,461 B
SET
[ EDIT ]
|
[ DEL ]
📄 hugetlb.h
1,867 B
SET
[ EDIT ]
|
[ DEL ]
📄 hw_breakpoint.h
2,112 B
SET
[ EDIT ]
|
[ DEL ]
📄 hw_irq.h
4,126 B
SET
[ EDIT ]
|
[ DEL ]
📄 hyperv-tlfs.h
22,337 B
SET
[ EDIT ]
|
[ DEL ]
📄 hypervisor.h
1,975 B
SET
[ EDIT ]
|
[ DEL ]
📄 i8259.h
1,975 B
SET
[ EDIT ]
|
[ DEL ]
📄 ia32.h
1,789 B
SET
[ EDIT ]
|
[ DEL ]
📄 ia32_unistd.h
313 B
SET
[ EDIT ]
|
[ DEL ]
📄 imr.h
1,849 B
SET
[ EDIT ]
|
[ DEL ]
📄 inat.h
6,736 B
SET
[ EDIT ]
|
[ DEL ]
📄 inat_types.h
1,013 B
SET
[ EDIT ]
|
[ DEL ]
📄 init.h
632 B
SET
[ EDIT ]
|
[ DEL ]
📄 insn-eval.h
1,546 B
SET
[ EDIT ]
|
[ DEL ]
📄 insn.h
8,098 B
SET
[ EDIT ]
|
[ DEL ]
📄 inst.h
5,453 B
SET
[ EDIT ]
|
[ DEL ]
📄 intel-family.h
5,168 B
SET
[ EDIT ]
|
[ DEL ]
📄 intel-mid.h
5,025 B
SET
[ EDIT ]
|
[ DEL ]
📄 intel_ds.h
849 B
SET
[ EDIT ]
|
[ DEL ]
📄 intel_mid_vrtc.h
330 B
SET
[ EDIT ]
|
[ DEL ]
📄 intel_pconfig.h
1,545 B
SET
[ EDIT ]
|
[ DEL ]
📄 intel_pmc_ipc.h
2,267 B
SET
[ EDIT ]
|
[ DEL ]
📄 intel_pt.h
1,276 B
SET
[ EDIT ]
|
[ DEL ]
📄 intel_punit_ipc.h
4,666 B
SET
[ EDIT ]
|
[ DEL ]
📄 intel_scu_ipc.h
2,351 B
SET
[ EDIT ]
|
[ DEL ]
📄 intel_telemetry.h
4,060 B
SET
[ EDIT ]
|
[ DEL ]
📄 invpcid.h
1,604 B
SET
[ EDIT ]
|
[ DEL ]
📄 io.h
11,872 B
SET
[ EDIT ]
|
[ DEL ]
📄 io_apic.h
5,890 B
SET
[ EDIT ]
|
[ DEL ]
📄 iomap.h
1,228 B
SET
[ EDIT ]
|
[ DEL ]
📄 iommu.h
935 B
SET
[ EDIT ]
|
[ DEL ]
📄 iosf_mbi.h
7,354 B
SET
[ EDIT ]
|
[ DEL ]
📄 ipi.h
2,873 B
SET
[ EDIT ]
|
[ DEL ]
📄 irq.h
1,415 B
SET
[ EDIT ]
|
[ DEL ]
📄 irq_regs.h
683 B
SET
[ EDIT ]
|
[ DEL ]
📄 irq_remapping.h
2,865 B
SET
[ EDIT ]
|
[ DEL ]
📄 irq_vectors.h
4,105 B
SET
[ EDIT ]
|
[ DEL ]
📄 irq_work.h
465 B
SET
[ EDIT ]
|
[ DEL ]
📄 irqdomain.h
1,796 B
SET
[ EDIT ]
|
[ DEL ]
📄 irqflags.h
4,161 B
SET
[ EDIT ]
|
[ DEL ]
📄 ist.h
735 B
SET
[ EDIT ]
|
[ DEL ]
📄 jailhouse_para.h
449 B
SET
[ EDIT ]
|
[ DEL ]
📄 jump_label.h
2,529 B
SET
[ EDIT ]
|
[ DEL ]
📄 kasan.h
1,291 B
SET
[ EDIT ]
|
[ DEL ]
📄 kaslr.h
314 B
SET
[ EDIT ]
|
[ DEL ]
📄 kbdleds.h
454 B
SET
[ EDIT ]
|
[ DEL ]
📄 kdebug.h
1,042 B
SET
[ EDIT ]
|
[ DEL ]
📄 kexec-bzimage64.h
195 B
SET
[ EDIT ]
|
[ DEL ]
📄 kexec.h
5,843 B
SET
[ EDIT ]
|
[ DEL ]
📄 kgdb.h
2,143 B
SET
[ EDIT ]
|
[ DEL ]
📄 kprobes.h
3,701 B
SET
[ EDIT ]
|
[ DEL ]
📄 kvm-x86-ops.h
3,989 B
SET
[ EDIT ]
|
[ DEL ]
📄 kvm_host.h
63,925 B
SET
[ EDIT ]
|
[ DEL ]
📄 kvm_page_track.h
2,700 B
SET
[ EDIT ]
|
[ DEL ]
📄 kvm_para.h
4,422 B
SET
[ EDIT ]
|
[ DEL ]
📄 kvm_types.h
178 B
SET
[ EDIT ]
|
[ DEL ]
📄 kvm_vcpu_regs.h
606 B
SET
[ EDIT ]
|
[ DEL ]
📄 kvmclock.h
506 B
SET
[ EDIT ]
|
[ DEL ]
📄 linkage.h
1,268 B
SET
[ EDIT ]
|
[ DEL ]
📄 livepatch.h
1,039 B
SET
[ EDIT ]
|
[ DEL ]
📄 local.h
3,925 B
SET
[ EDIT ]
|
[ DEL ]
📄 local64.h
33 B
SET
[ EDIT ]
|
[ DEL ]
📄 mach_timer.h
1,590 B
SET
[ EDIT ]
|
[ DEL ]
📄 mach_traps.h
1,013 B
SET
[ EDIT ]
|
[ DEL ]
📄 math_emu.h
395 B
SET
[ EDIT ]
|
[ DEL ]
📄 mc146818rtc.h
2,835 B
SET
[ EDIT ]
|
[ DEL ]
📄 mce.h
11,909 B
SET
[ EDIT ]
|
[ DEL ]
📄 mcsafe_test.h
1,418 B
SET
[ EDIT ]
|
[ DEL ]
📄 mem_encrypt.h
3,543 B
SET
[ EDIT ]
|
[ DEL ]
📄 memtype.h
815 B
SET
[ EDIT ]
|
[ DEL ]
📄 microcode.h
3,557 B
SET
[ EDIT ]
|
[ DEL ]
📄 microcode_amd.h
1,373 B
SET
[ EDIT ]
|
[ DEL ]
📄 microcode_intel.h
2,619 B
SET
[ EDIT ]
|
[ DEL ]
📄 misc.h
143 B
SET
[ EDIT ]
|
[ DEL ]
📄 mmconfig.h
374 B
SET
[ EDIT ]
|
[ DEL ]
📄 mmu.h
1,689 B
SET
[ EDIT ]
|
[ DEL ]
📄 mmu_context.h
10,118 B
SET
[ EDIT ]
|
[ DEL ]
📄 mmx.h
337 B
SET
[ EDIT ]
|
[ DEL ]
📄 mmzone.h
129 B
SET
[ EDIT ]
|
[ DEL ]
📄 mmzone_32.h
1,188 B
SET
[ EDIT ]
|
[ DEL ]
📄 mmzone_64.h
430 B
SET
[ EDIT ]
|
[ DEL ]
📄 module.h
2,096 B
SET
[ EDIT ]
|
[ DEL ]
📄 mpspec.h
4,023 B
SET
[ EDIT ]
|
[ DEL ]
📄 mpspec_def.h
4,256 B
SET
[ EDIT ]
|
[ DEL ]
📄 mpx.h
3,125 B
SET
[ EDIT ]
|
[ DEL ]
📄 mshyperv.h
10,142 B
SET
[ EDIT ]
|
[ DEL ]
📄 msi.h
1,508 B
SET
[ EDIT ]
|
[ DEL ]
📄 msidef.h
1,814 B
SET
[ EDIT ]
|
[ DEL ]
📄 msr-index.h
42,400 B
SET
[ EDIT ]
|
[ DEL ]
📄 msr-trace.h
1,387 B
SET
[ EDIT ]
|
[ DEL ]
📄 msr.h
11,290 B
SET
[ EDIT ]
|
[ DEL ]
📄 mtrr.h
4,753 B
SET
[ EDIT ]
|
[ DEL ]
📄 mwait.h
4,968 B
SET
[ EDIT ]
|
[ DEL ]
📄 nmi.h
1,496 B
SET
[ EDIT ]
|
[ DEL ]
📄 nops.h
4,412 B
SET
[ EDIT ]
|
[ DEL ]
📄 nospec-branch.h
14,158 B
SET
[ EDIT ]
|
[ DEL ]
📄 numa.h
2,228 B
SET
[ EDIT ]
|
[ DEL ]
📄 numa_32.h
256 B
SET
[ EDIT ]
|
[ DEL ]
📄 olpc.h
3,240 B
SET
[ EDIT ]
|
[ DEL ]
📄 olpc_ofw.h
1,128 B
SET
[ EDIT ]
|
[ DEL ]
📄 orc_lookup.h
1,665 B
SET
[ EDIT ]
|
[ DEL ]
📄 orc_types.h
3,577 B
SET
[ EDIT ]
|
[ DEL ]
📄 page.h
2,517 B
SET
[ EDIT ]
|
[ DEL ]
📄 page_32.h
1,039 B
SET
[ EDIT ]
|
[ DEL ]
📄 page_32_types.h
1,691 B
SET
[ EDIT ]
|
[ DEL ]
📄 page_64.h
1,573 B
SET
[ EDIT ]
|
[ DEL ]
📄 page_64_types.h
2,208 B
SET
[ EDIT ]
|
[ DEL ]
📄 page_types.h
2,369 B
SET
[ EDIT ]
|
[ DEL ]
📄 paravirt.h
24,608 B
SET
[ EDIT ]
|
[ DEL ]
📄 paravirt_types.h
22,709 B
SET
[ EDIT ]
|
[ DEL ]
📄 parport.h
314 B
SET
[ EDIT ]
|
[ DEL ]
📄 pci-direct.h
740 B
SET
[ EDIT ]
|
[ DEL ]
📄 pci-functions.h
654 B
SET
[ EDIT ]
|
[ DEL ]
📄 pci.h
3,288 B
SET
[ EDIT ]
|
[ DEL ]
📄 pci_64.h
684 B
SET
[ EDIT ]
|
[ DEL ]
📄 pci_x86.h
6,283 B
SET
[ EDIT ]
|
[ DEL ]
📄 percpu.h
20,267 B
SET
[ EDIT ]
|
[ DEL ]
📄 perf_event.h
17,896 B
SET
[ EDIT ]
|
[ DEL ]
📄 perf_event_p4.h
26,731 B
SET
[ EDIT ]
|
[ DEL ]
📄 pgalloc.h
6,591 B
SET
[ EDIT ]
|
[ DEL ]
📄 pgtable-2level.h
2,815 B
SET
[ EDIT ]
|
[ DEL ]
📄 pgtable-2level_types.h
867 B
SET
[ EDIT ]
|
[ DEL ]
📄 pgtable-3level.h
8,832 B
SET
[ EDIT ]
|
[ DEL ]
📄 pgtable-3level_types.h
1,007 B
SET
[ EDIT ]
|
[ DEL ]
📄 pgtable-invert.h
1,091 B
SET
[ EDIT ]
|
[ DEL ]
📄 pgtable.h
35,801 B
SET
[ EDIT ]
|
[ DEL ]
📄 pgtable_32.h
3,159 B
SET
[ EDIT ]
|
[ DEL ]
📄 pgtable_32_types.h
2,121 B
SET
[ EDIT ]
|
[ DEL ]
📄 pgtable_64.h
7,474 B
SET
[ EDIT ]
|
[ DEL ]
📄 pgtable_64_types.h
4,365 B
SET
[ EDIT ]
|
[ DEL ]
📄 pgtable_types.h
17,149 B
SET
[ EDIT ]
|
[ DEL ]
📄 pkeys.h
3,542 B
SET
[ EDIT ]
|
[ DEL ]
📄 pkru.h
1,346 B
SET
[ EDIT ]
|
[ DEL ]
📄 platform_sst_audio.h
3,290 B
SET
[ EDIT ]
|
[ DEL ]
📄 pm-trace.h
611 B
SET
[ EDIT ]
|
[ DEL ]
📄 posix_types.h
144 B
SET
[ EDIT ]
|
[ DEL ]
📄 preempt.h
3,217 B
SET
[ EDIT ]
|
[ DEL ]
📄 probe_roms.h
273 B
SET
[ EDIT ]
|
[ DEL ]
📄 processor-cyrix.h
879 B
SET
[ EDIT ]
|
[ DEL ]
📄 processor-flags.h
1,750 B
SET
[ EDIT ]
|
[ DEL ]
📄 processor.h
24,480 B
SET
[ EDIT ]
|
[ DEL ]
📄 prom.h
1,028 B
SET
[ EDIT ]
|
[ DEL ]
📄 proto.h
1,313 B
SET
[ EDIT ]
|
[ DEL ]
📄 pti.h
429 B
SET
[ EDIT ]
|
[ DEL ]
📄 ptrace.h
8,996 B
SET
[ EDIT ]
|
[ DEL ]
📄 purgatory.h
235 B
SET
[ EDIT ]
|
[ DEL ]
📄 pvclock-abi.h
1,530 B
SET
[ EDIT ]
|
[ DEL ]
📄 pvclock.h
2,702 B
SET
[ EDIT ]
|
[ DEL ]
📄 qrwlock.h
199 B
SET
[ EDIT ]
|
[ DEL ]
📄 qspinlock.h
2,598 B
SET
[ EDIT ]
|
[ DEL ]
📄 qspinlock_paravirt.h
1,908 B
SET
[ EDIT ]
|
[ DEL ]
📄 realmode.h
2,064 B
SET
[ EDIT ]
|
[ DEL ]
📄 reboot.h
898 B
SET
[ EDIT ]
|
[ DEL ]
📄 reboot_fixups.h
183 B
SET
[ EDIT ]
|
[ DEL ]
📄 refcount.h
2,911 B
SET
[ EDIT ]
|
[ DEL ]
📄 required-features.h
3,043 B
SET
[ EDIT ]
|
[ DEL ]
📄 resctrl.h
3,064 B
SET
[ EDIT ]
|
[ DEL ]
📄 rio.h
2,630 B
SET
[ EDIT ]
|
[ DEL ]
📄 rmwcc.h
2,259 B
SET
[ EDIT ]
|
[ DEL ]
📄 seccomp.h
510 B
SET
[ EDIT ]
|
[ DEL ]
📄 sections.h
916 B
SET
[ EDIT ]
|
[ DEL ]
📄 segment.h
11,184 B
SET
[ EDIT ]
|
[ DEL ]
📄 serial.h
1,137 B
SET
[ EDIT ]
|
[ DEL ]
📄 set_memory.h
5,381 B
SET
[ EDIT ]
|
[ DEL ]
📄 setup.h
3,751 B
SET
[ EDIT ]
|
[ DEL ]
📄 setup_arch.h
77 B
SET
[ EDIT ]
|
[ DEL ]
📄 sev-common.h
4,867 B
SET
[ EDIT ]
|
[ DEL ]
📄 sev.h
6,965 B
SET
[ EDIT ]
|
[ DEL ]
📄 sgx.h
13,157 B
SET
[ EDIT ]
|
[ DEL ]
📄 shmparam.h
193 B
SET
[ EDIT ]
|
[ DEL ]
📄 sigcontext.h
261 B
SET
[ EDIT ]
|
[ DEL ]
📄 sigframe.h
2,339 B
SET
[ EDIT ]
|
[ DEL ]
📄 sighandling.h
730 B
SET
[ EDIT ]
|
[ DEL ]
📄 signal.h
2,424 B
SET
[ EDIT ]
|
[ DEL ]
📄 simd.h
287 B
SET
[ EDIT ]
|
[ DEL ]
📄 smap.h
2,247 B
SET
[ EDIT ]
|
[ DEL ]
📄 smp.h
5,500 B
SET
[ EDIT ]
|
[ DEL ]
📄 sparsemem.h
994 B
SET
[ EDIT ]
|
[ DEL ]
📄 spec-ctrl.h
3,143 B
SET
[ EDIT ]
|
[ DEL ]
📄 special_insns.h
7,536 B
SET
[ EDIT ]
|
[ DEL ]
📄 spinlock.h
1,214 B
SET
[ EDIT ]
|
[ DEL ]
📄 spinlock_types.h
719 B
SET
[ EDIT ]
|
[ DEL ]
📄 sta2x11.h
352 B
SET
[ EDIT ]
|
[ DEL ]
📄 stackprotector.h
3,966 B
SET
[ EDIT ]
|
[ DEL ]
📄 stacktrace.h
2,619 B
SET
[ EDIT ]
|
[ DEL ]
📄 string.h
129 B
SET
[ EDIT ]
|
[ DEL ]
📄 string_32.h
7,929 B
SET
[ EDIT ]
|
[ DEL ]
📄 string_64.h
4,237 B
SET
[ EDIT ]
|
[ DEL ]
📄 suspend.h
503 B
SET
[ EDIT ]
|
[ DEL ]
📄 suspend_32.h
938 B
SET
[ EDIT ]
|
[ DEL ]
📄 suspend_64.h
1,838 B
SET
[ EDIT ]
|
[ DEL ]
📄 svm.h
14,672 B
SET
[ EDIT ]
|
[ DEL ]
📄 switch_to.h
3,258 B
SET
[ EDIT ]
|
[ DEL ]
📄 sync_bitops.h
3,503 B
SET
[ EDIT ]
|
[ DEL ]
📄 sync_core.h
3,138 B
SET
[ EDIT ]
|
[ DEL ]
📄 syscall.h
5,489 B
SET
[ EDIT ]
|
[ DEL ]
📄 syscall_wrapper.h
7,780 B
SET
[ EDIT ]
|
[ DEL ]
📄 syscalls.h
1,332 B
SET
[ EDIT ]
|
[ DEL ]
📄 sysfb.h
2,600 B
SET
[ EDIT ]
|
[ DEL ]
📄 tce.h
1,724 B
SET
[ EDIT ]
|
[ DEL ]
📄 tdx.h
2,360 B
SET
[ EDIT ]
|
[ DEL ]
📄 text-patching.h
4,812 B
SET
[ EDIT ]
|
[ DEL ]
📄 thermal.h
428 B
SET
[ EDIT ]
|
[ DEL ]
📄 thread_info.h
8,805 B
SET
[ EDIT ]
|
[ DEL ]
📄 time.h
331 B
SET
[ EDIT ]
|
[ DEL ]
📄 timer.h
1,027 B
SET
[ EDIT ]
|
[ DEL ]
📄 timex.h
305 B
SET
[ EDIT ]
|
[ DEL ]
📄 tlb.h
1,103 B
SET
[ EDIT ]
|
[ DEL ]
📄 tlbbatch.h
332 B
SET
[ EDIT ]
|
[ DEL ]
📄 tlbflush.h
17,814 B
SET
[ EDIT ]
|
[ DEL ]
📄 topology.h
6,654 B
SET
[ EDIT ]
|
[ DEL ]
📄 trace_clock.h
406 B
SET
[ EDIT ]
|
[ DEL ]
📄 trap_pf.h
709 B
SET
[ EDIT ]
|
[ DEL ]
📄 trapnr.h
1,316 B
SET
[ EDIT ]
|
[ DEL ]
📄 traps.h
5,374 B
SET
[ EDIT ]
|
[ DEL ]
📄 tsc.h
1,950 B
SET
[ EDIT ]
|
[ DEL ]
📄 uaccess.h
21,233 B
SET
[ EDIT ]
|
[ DEL ]
📄 uaccess_32.h
1,006 B
SET
[ EDIT ]
|
[ DEL ]
📄 uaccess_64.h
3,129 B
SET
[ EDIT ]
|
[ DEL ]
📄 umip.h
329 B
SET
[ EDIT ]
|
[ DEL ]
📄 unaligned.h
345 B
SET
[ EDIT ]
|
[ DEL ]
📄 unistd.h
1,482 B
SET
[ EDIT ]
|
[ DEL ]
📄 unwind.h
3,220 B
SET
[ EDIT ]
|
[ DEL ]
📄 unwind_hints.h
3,342 B
SET
[ EDIT ]
|
[ DEL ]
📄 uprobes.h
1,686 B
SET
[ EDIT ]
|
[ DEL ]
📄 user.h
2,257 B
SET
[ EDIT ]
|
[ DEL ]
📄 user32.h
2,156 B
SET
[ EDIT ]
|
[ DEL ]
📄 user_32.h
5,042 B
SET
[ EDIT ]
|
[ DEL ]
📄 user_64.h
5,339 B
SET
[ EDIT ]
|
[ DEL ]
📄 vdso.h
1,400 B
SET
[ EDIT ]
|
[ DEL ]
📄 vga.h
740 B
SET
[ EDIT ]
|
[ DEL ]
📄 vgtod.h
518 B
SET
[ EDIT ]
|
[ DEL ]
📄 virtext.h
3,102 B
SET
[ EDIT ]
|
[ DEL ]
📄 vm86.h
2,212 B
SET
[ EDIT ]
|
[ DEL ]
📄 vmware.h
1,942 B
SET
[ EDIT ]
|
[ DEL ]
📄 vmx.h
26,763 B
SET
[ EDIT ]
|
[ DEL ]
📄 vmxfeatures.h
6,049 B
SET
[ EDIT ]
|
[ DEL ]
📄 vsyscall.h
920 B
SET
[ EDIT ]
|
[ DEL ]
📄 vvar.h
1,603 B
SET
[ EDIT ]
|
[ DEL ]
📄 word-at-a-time.h
2,596 B
SET
[ EDIT ]
|
[ DEL ]
📄 x86_init.h
11,520 B
SET
[ EDIT ]
|
[ DEL ]
📄 xor.h
10,508 B
SET
[ EDIT ]
|
[ DEL ]
📄 xor_32.h
14,748 B
SET
[ EDIT ]
|
[ DEL ]
📄 xor_64.h
716 B
SET
[ EDIT ]
|
[ DEL ]
📄 xor_avx.h
4,610 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: svm.h
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __SVM_H #define __SVM_H #include <uapi/asm/svm.h> #include <uapi/asm/kvm.h> /* * 32-bit intercept words in the VMCB Control Area, starting * at Byte offset 000h. */ enum intercept_words { INTERCEPT_CR = 0, INTERCEPT_DR, INTERCEPT_EXCEPTION, INTERCEPT_WORD3, INTERCEPT_WORD4, INTERCEPT_WORD5, MAX_INTERCEPT, }; enum { /* Byte offset 000h (word 0) */ INTERCEPT_CR0_READ = 0, INTERCEPT_CR3_READ = 3, INTERCEPT_CR4_READ = 4, INTERCEPT_CR8_READ = 8, INTERCEPT_CR0_WRITE = 16, INTERCEPT_CR3_WRITE = 16 + 3, INTERCEPT_CR4_WRITE = 16 + 4, INTERCEPT_CR8_WRITE = 16 + 8, /* Byte offset 004h (word 1) */ INTERCEPT_DR0_READ = 32, INTERCEPT_DR1_READ, INTERCEPT_DR2_READ, INTERCEPT_DR3_READ, INTERCEPT_DR4_READ, INTERCEPT_DR5_READ, INTERCEPT_DR6_READ, INTERCEPT_DR7_READ, INTERCEPT_DR0_WRITE = 48, INTERCEPT_DR1_WRITE, INTERCEPT_DR2_WRITE, INTERCEPT_DR3_WRITE, INTERCEPT_DR4_WRITE, INTERCEPT_DR5_WRITE, INTERCEPT_DR6_WRITE, INTERCEPT_DR7_WRITE, /* Byte offset 008h (word 2) */ INTERCEPT_EXCEPTION_OFFSET = 64, /* Byte offset 00Ch (word 3) */ INTERCEPT_INTR = 96, INTERCEPT_NMI, INTERCEPT_SMI, INTERCEPT_INIT, INTERCEPT_VINTR, INTERCEPT_SELECTIVE_CR0, INTERCEPT_STORE_IDTR, INTERCEPT_STORE_GDTR, INTERCEPT_STORE_LDTR, INTERCEPT_STORE_TR, INTERCEPT_LOAD_IDTR, INTERCEPT_LOAD_GDTR, INTERCEPT_LOAD_LDTR, INTERCEPT_LOAD_TR, INTERCEPT_RDTSC, INTERCEPT_RDPMC, INTERCEPT_PUSHF, INTERCEPT_POPF, INTERCEPT_CPUID, INTERCEPT_RSM, INTERCEPT_IRET, INTERCEPT_INTn, INTERCEPT_INVD, INTERCEPT_PAUSE, INTERCEPT_HLT, INTERCEPT_INVLPG, INTERCEPT_INVLPGA, INTERCEPT_IOIO_PROT, INTERCEPT_MSR_PROT, INTERCEPT_TASK_SWITCH, INTERCEPT_FERR_FREEZE, INTERCEPT_SHUTDOWN, /* Byte offset 010h (word 4) */ INTERCEPT_VMRUN = 128, INTERCEPT_VMMCALL, INTERCEPT_VMLOAD, INTERCEPT_VMSAVE, INTERCEPT_STGI, INTERCEPT_CLGI, INTERCEPT_SKINIT, INTERCEPT_RDTSCP, INTERCEPT_ICEBP, INTERCEPT_WBINVD, INTERCEPT_MONITOR, INTERCEPT_MWAIT, INTERCEPT_MWAIT_COND, INTERCEPT_XSETBV, INTERCEPT_RDPRU, TRAP_EFER_WRITE, TRAP_CR0_WRITE, TRAP_CR1_WRITE, TRAP_CR2_WRITE, TRAP_CR3_WRITE, TRAP_CR4_WRITE, TRAP_CR5_WRITE, TRAP_CR6_WRITE, TRAP_CR7_WRITE, TRAP_CR8_WRITE, /* Byte offset 014h (word 5) */ INTERCEPT_INVLPGB = 160, INTERCEPT_INVLPGB_ILLEGAL, INTERCEPT_INVPCID, INTERCEPT_MCOMMIT, INTERCEPT_TLBSYNC, }; struct __attribute__ ((__packed__)) vmcb_control_area { u32 intercepts[MAX_INTERCEPT]; u32 reserved_1[15 - MAX_INTERCEPT]; u16 pause_filter_thresh; u16 pause_filter_count; u64 iopm_base_pa; u64 msrpm_base_pa; u64 tsc_offset; u32 asid; u8 tlb_ctl; u8 reserved_2[3]; u32 int_ctl; u32 int_vector; u32 int_state; u8 reserved_3[4]; u32 exit_code; u32 exit_code_hi; u64 exit_info_1; u64 exit_info_2; u32 exit_int_info; u32 exit_int_info_err; u64 nested_ctl; u64 avic_vapic_bar; u64 ghcb_gpa; u32 event_inj; u32 event_inj_err; u64 nested_cr3; u64 virt_ext; u32 clean; u32 reserved_5; u64 next_rip; u8 insn_len; u8 insn_bytes[15]; u64 avic_backing_page; /* Offset 0xe0 */ u8 reserved_6[8]; /* Offset 0xe8 */ u64 avic_logical_id; /* Offset 0xf0 */ u64 avic_physical_id; /* Offset 0xf8 */ u8 reserved_7[8]; u64 vmsa_pa; /* Used for an SEV-ES guest */ u8 reserved_8[720]; /* * Offset 0x3e0, 32 bytes reserved * for use by hypervisor/software. */ u8 reserved_sw[32]; }; #define TLB_CONTROL_DO_NOTHING 0 #define TLB_CONTROL_FLUSH_ALL_ASID 1 #define TLB_CONTROL_FLUSH_ASID 3 #define TLB_CONTROL_FLUSH_ASID_LOCAL 7 #define V_TPR_MASK 0x0f #define V_IRQ_SHIFT 8 #define V_IRQ_MASK (1 << V_IRQ_SHIFT) #define V_GIF_SHIFT 9 #define V_GIF_MASK (1 << V_GIF_SHIFT) #define V_INTR_PRIO_SHIFT 16 #define V_INTR_PRIO_MASK (0x0f << V_INTR_PRIO_SHIFT) #define V_IGN_TPR_SHIFT 20 #define V_IGN_TPR_MASK (1 << V_IGN_TPR_SHIFT) #define V_IRQ_INJECTION_BITS_MASK (V_IRQ_MASK | V_INTR_PRIO_MASK | V_IGN_TPR_MASK) #define V_INTR_MASKING_SHIFT 24 #define V_INTR_MASKING_MASK (1 << V_INTR_MASKING_SHIFT) #define V_GIF_ENABLE_SHIFT 25 #define V_GIF_ENABLE_MASK (1 << V_GIF_ENABLE_SHIFT) #define AVIC_ENABLE_SHIFT 31 #define AVIC_ENABLE_MASK (1 << AVIC_ENABLE_SHIFT) #define X2APIC_MODE_SHIFT 30 #define X2APIC_MODE_MASK (1 << X2APIC_MODE_SHIFT) #define LBR_CTL_ENABLE_MASK BIT_ULL(0) #define VIRTUAL_VMLOAD_VMSAVE_ENABLE_MASK BIT_ULL(1) #define SVM_INTERRUPT_SHADOW_MASK BIT_ULL(0) #define SVM_GUEST_INTERRUPT_MASK BIT_ULL(1) #define SVM_IOIO_STR_SHIFT 2 #define SVM_IOIO_REP_SHIFT 3 #define SVM_IOIO_SIZE_SHIFT 4 #define SVM_IOIO_ASIZE_SHIFT 7 #define SVM_IOIO_TYPE_MASK 1 #define SVM_IOIO_STR_MASK (1 << SVM_IOIO_STR_SHIFT) #define SVM_IOIO_REP_MASK (1 << SVM_IOIO_REP_SHIFT) #define SVM_IOIO_SIZE_MASK (7 << SVM_IOIO_SIZE_SHIFT) #define SVM_IOIO_ASIZE_MASK (7 << SVM_IOIO_ASIZE_SHIFT) #define SVM_VM_CR_VALID_MASK 0x001fULL #define SVM_VM_CR_SVM_LOCK_MASK 0x0008ULL #define SVM_VM_CR_SVM_DIS_MASK 0x0010ULL #define SVM_NESTED_CTL_NP_ENABLE BIT(0) #define SVM_NESTED_CTL_SEV_ENABLE BIT(1) #define SVM_NESTED_CTL_SEV_ES_ENABLE BIT(2) #define SVM_TSC_RATIO_RSVD 0xffffff0000000000ULL #define SVM_TSC_RATIO_MIN 0x0000000000000001ULL #define SVM_TSC_RATIO_MAX 0x000000ffffffffffULL #define SVM_TSC_RATIO_DEFAULT 0x0100000000ULL /* AVIC */ #define AVIC_LOGICAL_ID_ENTRY_GUEST_PHYSICAL_ID_MASK (0xFFULL) #define AVIC_LOGICAL_ID_ENTRY_VALID_BIT 31 #define AVIC_LOGICAL_ID_ENTRY_VALID_MASK (1 << 31) #define AVIC_PHYSICAL_ID_ENTRY_HOST_PHYSICAL_ID_MASK GENMASK_ULL(11, 0) #define AVIC_PHYSICAL_ID_ENTRY_BACKING_PAGE_MASK (0xFFFFFFFFFFULL << 12) #define AVIC_PHYSICAL_ID_ENTRY_IS_RUNNING_MASK (1ULL << 62) #define AVIC_PHYSICAL_ID_ENTRY_VALID_MASK (1ULL << 63) #define AVIC_PHYSICAL_ID_TABLE_SIZE_MASK (0xFFULL) #define AVIC_DOORBELL_PHYSICAL_ID_MASK GENMASK_ULL(11, 0) #define VMCB_AVIC_APIC_BAR_MASK 0xFFFFFFFFFF000ULL #define AVIC_UNACCEL_ACCESS_WRITE_MASK 1 #define AVIC_UNACCEL_ACCESS_OFFSET_MASK 0xFF0 #define AVIC_UNACCEL_ACCESS_VECTOR_MASK 0xFFFFFFFF enum avic_ipi_failure_cause { AVIC_IPI_FAILURE_INVALID_INT_TYPE, AVIC_IPI_FAILURE_TARGET_NOT_RUNNING, AVIC_IPI_FAILURE_INVALID_TARGET, AVIC_IPI_FAILURE_INVALID_BACKING_PAGE, }; #define AVIC_PHYSICAL_MAX_INDEX_MASK GENMASK_ULL(8, 0) /* * For AVIC, the max index allowed for physical APIC ID table is 0xfe (254), as * 0xff is a broadcast to all CPUs, i.e. can't be targeted individually. */ #define AVIC_MAX_PHYSICAL_ID 0XFEULL /* * For x2AVIC, the max index allowed for physical APIC ID table is 0x1ff (511). */ #define X2AVIC_MAX_PHYSICAL_ID 0x1FFUL static_assert((AVIC_MAX_PHYSICAL_ID & AVIC_PHYSICAL_MAX_INDEX_MASK) == AVIC_MAX_PHYSICAL_ID); static_assert((X2AVIC_MAX_PHYSICAL_ID & AVIC_PHYSICAL_MAX_INDEX_MASK) == X2AVIC_MAX_PHYSICAL_ID); #define AVIC_HPA_MASK ~((0xFFFULL << 52) | 0xFFF) struct vmcb_seg { u16 selector; u16 attrib; u32 limit; u64 base; } __packed; /* Save area definition for legacy and SEV-MEM guests */ struct vmcb_save_area { struct vmcb_seg es; struct vmcb_seg cs; struct vmcb_seg ss; struct vmcb_seg ds; struct vmcb_seg fs; struct vmcb_seg gs; struct vmcb_seg gdtr; struct vmcb_seg ldtr; struct vmcb_seg idtr; struct vmcb_seg tr; u8 reserved_1[42]; u8 vmpl; u8 cpl; u8 reserved_2[4]; u64 efer; u8 reserved_3[112]; u64 cr4; u64 cr3; u64 cr0; u64 dr7; u64 dr6; u64 rflags; u64 rip; u8 reserved_4[88]; u64 rsp; u64 s_cet; u64 ssp; u64 isst_addr; u64 rax; u64 star; u64 lstar; u64 cstar; u64 sfmask; u64 kernel_gs_base; u64 sysenter_cs; u64 sysenter_esp; u64 sysenter_eip; u64 cr2; u8 reserved_5[32]; u64 g_pat; u64 dbgctl; u64 br_from; u64 br_to; u64 last_excp_from; u64 last_excp_to; u8 reserved_6[72]; u32 spec_ctrl; /* Guest version of SPEC_CTRL at 0x2E0 */ } __packed; /* Save area definition for SEV-ES and SEV-SNP guests */ struct sev_es_save_area { struct vmcb_seg es; struct vmcb_seg cs; struct vmcb_seg ss; struct vmcb_seg ds; struct vmcb_seg fs; struct vmcb_seg gs; struct vmcb_seg gdtr; struct vmcb_seg ldtr; struct vmcb_seg idtr; struct vmcb_seg tr; u64 vmpl0_ssp; u64 vmpl1_ssp; u64 vmpl2_ssp; u64 vmpl3_ssp; u64 u_cet; u8 reserved_1[2]; u8 vmpl; u8 cpl; u8 reserved_2[4]; u64 efer; u8 reserved_3[104]; u64 xss; u64 cr4; u64 cr3; u64 cr0; u64 dr7; u64 dr6; u64 rflags; u64 rip; u64 dr0; u64 dr1; u64 dr2; u64 dr3; u64 dr0_addr_mask; u64 dr1_addr_mask; u64 dr2_addr_mask; u64 dr3_addr_mask; u8 reserved_4[24]; u64 rsp; u64 s_cet; u64 ssp; u64 isst_addr; u64 rax; u64 star; u64 lstar; u64 cstar; u64 sfmask; u64 kernel_gs_base; u64 sysenter_cs; u64 sysenter_esp; u64 sysenter_eip; u64 cr2; u8 reserved_5[32]; u64 g_pat; u64 dbgctl; u64 br_from; u64 br_to; u64 last_excp_from; u64 last_excp_to; u8 reserved_7[80]; u32 pkru; u8 reserved_8[20]; u64 reserved_9; /* rax already available at 0x01f8 */ u64 rcx; u64 rdx; u64 rbx; u64 reserved_10; /* rsp already available at 0x01d8 */ u64 rbp; u64 rsi; u64 rdi; u64 r8; u64 r9; u64 r10; u64 r11; u64 r12; u64 r13; u64 r14; u64 r15; u8 reserved_11[16]; u64 guest_exit_info_1; u64 guest_exit_info_2; u64 guest_exit_int_info; u64 guest_nrip; u64 sev_features; u64 vintr_ctrl; u64 guest_exit_code; u64 virtual_tom; u64 tlb_id; u64 pcpu_id; u64 event_inj; u64 xcr0; u8 reserved_12[16]; /* Floating point area */ u64 x87_dp; u32 mxcsr; u16 x87_ftw; u16 x87_fsw; u16 x87_fcw; u16 x87_fop; u16 x87_ds; u16 x87_cs; u64 x87_rip; u8 fpreg_x87[80]; u8 fpreg_xmm[256]; u8 fpreg_ymm[256]; } __packed; struct ghcb_save_area { u8 reserved_1[203]; u8 cpl; u8 reserved_2[116]; u64 xss; u8 reserved_3[24]; u64 dr7; u8 reserved_4[16]; u64 rip; u8 reserved_5[88]; u64 rsp; u8 reserved_6[24]; u64 rax; u8 reserved_7[264]; u64 rcx; u64 rdx; u64 rbx; u8 reserved_8[8]; u64 rbp; u64 rsi; u64 rdi; u64 r8; u64 r9; u64 r10; u64 r11; u64 r12; u64 r13; u64 r14; u64 r15; u8 reserved_9[16]; u64 sw_exit_code; u64 sw_exit_info_1; u64 sw_exit_info_2; u64 sw_scratch; u8 reserved_10[56]; u64 xcr0; u8 valid_bitmap[16]; u64 x87_state_gpa; } __packed; #define GHCB_SHARED_BUF_SIZE 2032 struct ghcb { struct ghcb_save_area save; u8 reserved_save[2048 - sizeof(struct ghcb_save_area)]; u8 shared_buffer[GHCB_SHARED_BUF_SIZE]; u8 reserved_1[10]; u16 protocol_version; /* negotiated SEV-ES/GHCB protocol version */ u32 ghcb_usage; } __packed; #define EXPECTED_VMCB_SAVE_AREA_SIZE 740 #define EXPECTED_GHCB_SAVE_AREA_SIZE 1032 #define EXPECTED_SEV_ES_SAVE_AREA_SIZE 1648 #define EXPECTED_VMCB_CONTROL_AREA_SIZE 1024 #define EXPECTED_GHCB_SIZE PAGE_SIZE static inline void __unused_size_checks(void) { BUILD_BUG_ON(sizeof(struct vmcb_save_area) != EXPECTED_VMCB_SAVE_AREA_SIZE); BUILD_BUG_ON(sizeof(struct ghcb_save_area) != EXPECTED_GHCB_SAVE_AREA_SIZE); BUILD_BUG_ON(sizeof(struct sev_es_save_area) != EXPECTED_SEV_ES_SAVE_AREA_SIZE); BUILD_BUG_ON(sizeof(struct vmcb_control_area) != EXPECTED_VMCB_CONTROL_AREA_SIZE); BUILD_BUG_ON(sizeof(struct ghcb) != EXPECTED_GHCB_SIZE); } struct vmcb { struct vmcb_control_area control; struct vmcb_save_area save; } __packed; #define SVM_CPUID_FUNC 0x8000000a #define SVM_VM_CR_SVM_DISABLE 4 #define SVM_SELECTOR_S_SHIFT 4 #define SVM_SELECTOR_DPL_SHIFT 5 #define SVM_SELECTOR_P_SHIFT 7 #define SVM_SELECTOR_AVL_SHIFT 8 #define SVM_SELECTOR_L_SHIFT 9 #define SVM_SELECTOR_DB_SHIFT 10 #define SVM_SELECTOR_G_SHIFT 11 #define SVM_SELECTOR_TYPE_MASK (0xf) #define SVM_SELECTOR_S_MASK (1 << SVM_SELECTOR_S_SHIFT) #define SVM_SELECTOR_DPL_MASK (3 << SVM_SELECTOR_DPL_SHIFT) #define SVM_SELECTOR_P_MASK (1 << SVM_SELECTOR_P_SHIFT) #define SVM_SELECTOR_AVL_MASK (1 << SVM_SELECTOR_AVL_SHIFT) #define SVM_SELECTOR_L_MASK (1 << SVM_SELECTOR_L_SHIFT) #define SVM_SELECTOR_DB_MASK (1 << SVM_SELECTOR_DB_SHIFT) #define SVM_SELECTOR_G_MASK (1 << SVM_SELECTOR_G_SHIFT) #define SVM_SELECTOR_WRITE_MASK (1 << 1) #define SVM_SELECTOR_READ_MASK SVM_SELECTOR_WRITE_MASK #define SVM_SELECTOR_CODE_MASK (1 << 3) #define SVM_EVTINJ_VEC_MASK 0xff #define SVM_EVTINJ_TYPE_SHIFT 8 #define SVM_EVTINJ_TYPE_MASK (7 << SVM_EVTINJ_TYPE_SHIFT) #define SVM_EVTINJ_TYPE_INTR (0 << SVM_EVTINJ_TYPE_SHIFT) #define SVM_EVTINJ_TYPE_NMI (2 << SVM_EVTINJ_TYPE_SHIFT) #define SVM_EVTINJ_TYPE_EXEPT (3 << SVM_EVTINJ_TYPE_SHIFT) #define SVM_EVTINJ_TYPE_SOFT (4 << SVM_EVTINJ_TYPE_SHIFT) #define SVM_EVTINJ_VALID (1 << 31) #define SVM_EVTINJ_VALID_ERR (1 << 11) #define SVM_EXITINTINFO_VEC_MASK SVM_EVTINJ_VEC_MASK #define SVM_EXITINTINFO_TYPE_MASK SVM_EVTINJ_TYPE_MASK #define SVM_EXITINTINFO_TYPE_INTR SVM_EVTINJ_TYPE_INTR #define SVM_EXITINTINFO_TYPE_NMI SVM_EVTINJ_TYPE_NMI #define SVM_EXITINTINFO_TYPE_EXEPT SVM_EVTINJ_TYPE_EXEPT #define SVM_EXITINTINFO_TYPE_SOFT SVM_EVTINJ_TYPE_SOFT #define SVM_EXITINTINFO_VALID SVM_EVTINJ_VALID #define SVM_EXITINTINFO_VALID_ERR SVM_EVTINJ_VALID_ERR #define SVM_EXITINFOSHIFT_TS_REASON_IRET 36 #define SVM_EXITINFOSHIFT_TS_REASON_JMP 38 #define SVM_EXITINFOSHIFT_TS_HAS_ERROR_CODE 44 #define SVM_EXITINFO_REG_MASK 0x0F #define SVM_CR0_SELECTIVE_MASK (X86_CR0_TS | X86_CR0_MP) /* GHCB Accessor functions */ #define GHCB_BITMAP_IDX(field) \ (offsetof(struct ghcb_save_area, field) / sizeof(u64)) #define DEFINE_GHCB_ACCESSORS(field) \ static inline bool ghcb_##field##_is_valid(const struct ghcb *ghcb) \ { \ return test_bit(GHCB_BITMAP_IDX(field), \ (unsigned long *)&ghcb->save.valid_bitmap); \ } \ \ static inline u64 ghcb_get_##field(struct ghcb *ghcb) \ { \ return ghcb->save.field; \ } \ \ static inline u64 ghcb_get_##field##_if_valid(struct ghcb *ghcb) \ { \ return ghcb_##field##_is_valid(ghcb) ? ghcb->save.field : 0; \ } \ \ static inline void ghcb_set_##field(struct ghcb *ghcb, u64 value) \ { \ __set_bit(GHCB_BITMAP_IDX(field), \ (unsigned long *)&ghcb->save.valid_bitmap); \ ghcb->save.field = value; \ } DEFINE_GHCB_ACCESSORS(cpl) DEFINE_GHCB_ACCESSORS(rip) DEFINE_GHCB_ACCESSORS(rsp) DEFINE_GHCB_ACCESSORS(rax) DEFINE_GHCB_ACCESSORS(rcx) DEFINE_GHCB_ACCESSORS(rdx) DEFINE_GHCB_ACCESSORS(rbx) DEFINE_GHCB_ACCESSORS(rbp) DEFINE_GHCB_ACCESSORS(rsi) DEFINE_GHCB_ACCESSORS(rdi) DEFINE_GHCB_ACCESSORS(r8) DEFINE_GHCB_ACCESSORS(r9) DEFINE_GHCB_ACCESSORS(r10) DEFINE_GHCB_ACCESSORS(r11) DEFINE_GHCB_ACCESSORS(r12) DEFINE_GHCB_ACCESSORS(r13) DEFINE_GHCB_ACCESSORS(r14) DEFINE_GHCB_ACCESSORS(r15) DEFINE_GHCB_ACCESSORS(sw_exit_code) DEFINE_GHCB_ACCESSORS(sw_exit_info_1) DEFINE_GHCB_ACCESSORS(sw_exit_info_2) DEFINE_GHCB_ACCESSORS(sw_scratch) DEFINE_GHCB_ACCESSORS(xcr0) #endif