138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/**************************************************************************** 238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris **************************************************************************** 338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** 438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** This header was automatically generated from a Linux kernel header 538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** of the same name, to make information necessary for userspace to 638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** call into the kernel available to libc. It contains only constants, 738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** structures, and macros generated from the original header, and thus, 838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** contains no copyrightable information. 938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** 1038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** To edit the content of this header, modify the corresponding 1138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** source file (e.g. under external/kernel-headers/original/) then 1238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** run bionic/libc/kernel/tools/update_all.py 1338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** 1438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** Any manual change here will be lost the next time this script will 1538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** be run. You've been warned! 1638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris *** 1738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris **************************************************************************** 1838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris ****************************************************************************/ 1938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#ifndef __ARM_KVM_H__ 2038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define __ARM_KVM_H__ 2138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_SPSR_EL1 0 2238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_SPSR_SVC KVM_SPSR_EL1 2338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 2438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_SPSR_ABT 1 2538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_SPSR_UND 2 2638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_SPSR_IRQ 3 2738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_SPSR_FIQ 4 2838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 2938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_NR_SPSR 5 3038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#ifndef __ASSEMBLY__ 3138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#include <asm/types.h> 3238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#include <asm/ptrace.h> 3338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 3438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define __KVM_HAVE_GUEST_DEBUG 3538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define __KVM_HAVE_IRQ_LINE 3638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_SIZE(id) (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT)) 3738062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct kvm_regs { 3838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 3938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris struct user_pt_regs regs; 4038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris __u64 sp_el1; 4138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris __u64 elr_el1; 4238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris __u64 spsr[KVM_NR_SPSR]; 4338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 4438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris struct user_fpsimd_state fp_regs; 4538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 4638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_TARGET_AEM_V8 0 4738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_TARGET_FOUNDATION_V8 1 4838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 4938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_TARGET_CORTEX_A57 2 5038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_TARGET_XGENE_POTENZA 3 5138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_NUM_TARGETS 4 5238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_DEVICE_TYPE_SHIFT 0 5338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 5438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_DEVICE_TYPE_MASK (0xffff << KVM_ARM_DEVICE_TYPE_SHIFT) 5538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_DEVICE_ID_SHIFT 16 5638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_DEVICE_ID_MASK (0xffff << KVM_ARM_DEVICE_ID_SHIFT) 5738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_DEVICE_VGIC_V2 0 5838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 5938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_VGIC_V2_ADDR_TYPE_DIST 0 6038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_VGIC_V2_ADDR_TYPE_CPU 1 6138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_VGIC_V2_DIST_SIZE 0x1000 6238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_VGIC_V2_CPU_SIZE 0x2000 6338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 6438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_VCPU_POWER_OFF 0 6538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_VCPU_EL1_32BIT 1 6638062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct kvm_vcpu_init { 6738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris __u32 target; 6838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 6938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris __u32 features[7]; 7038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 7138062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct kvm_sregs { 7238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 7338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 7438062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct kvm_fpu { 7538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 7638062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct kvm_guest_debug_arch { 7738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 7838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 7938062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct kvm_debug_exit_arch { 8038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 8138062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct kvm_sync_regs { 8238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 8338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 8438062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct kvm_arch_memory_slot { 8538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 8638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000 8738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM_COPROC_SHIFT 16 8838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 8938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM_CORE (0x0010 << KVM_REG_ARM_COPROC_SHIFT) 9038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM_CORE_REG(name) (offsetof(struct kvm_regs, name) / sizeof(__u32)) 9138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM_DEMUX (0x0011 << KVM_REG_ARM_COPROC_SHIFT) 9238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM_DEMUX_ID_MASK 0x000000000000FF00 9338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 9438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM_DEMUX_ID_SHIFT 8 9538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM_DEMUX_ID_CCSIDR (0x00 << KVM_REG_ARM_DEMUX_ID_SHIFT) 9638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM_DEMUX_VAL_MASK 0x00000000000000FF 9738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM_DEMUX_VAL_SHIFT 0 9838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 9938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM64_SYSREG (0x0013 << KVM_REG_ARM_COPROC_SHIFT) 10038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM64_SYSREG_OP0_MASK 0x000000000000c000 10138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM64_SYSREG_OP0_SHIFT 14 10238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM64_SYSREG_OP1_MASK 0x0000000000003800 10338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 10438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM64_SYSREG_OP1_SHIFT 11 10538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM64_SYSREG_CRN_MASK 0x0000000000000780 10638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM64_SYSREG_CRN_SHIFT 7 10738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM64_SYSREG_CRM_MASK 0x0000000000000078 10838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 10938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM64_SYSREG_CRM_SHIFT 3 11038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM64_SYSREG_OP2_MASK 0x0000000000000007 11138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM64_SYSREG_OP2_SHIFT 0 11238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define ARM64_SYS_REG_SHIFT_MASK(x,n) (((x) << KVM_REG_ARM64_SYSREG_ ## n ## _SHIFT) & KVM_REG_ARM64_SYSREG_ ## n ## _MASK) 11338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 11438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define __ARM64_SYS_REG(op0,op1,crn,crm,op2) (KVM_REG_ARM64 | KVM_REG_ARM64_SYSREG | ARM64_SYS_REG_SHIFT_MASK(op0, OP0) | ARM64_SYS_REG_SHIFT_MASK(op1, OP1) | ARM64_SYS_REG_SHIFT_MASK(crn, CRN) | ARM64_SYS_REG_SHIFT_MASK(crm, CRM) | ARM64_SYS_REG_SHIFT_MASK(op2, OP2)) 11538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define ARM64_SYS_REG(...) (__ARM64_SYS_REG(__VA_ARGS__) | KVM_REG_SIZE_U64) 11638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM_TIMER_CTL ARM64_SYS_REG(3, 3, 14, 3, 1) 11738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM_TIMER_CNT ARM64_SYS_REG(3, 3, 14, 3, 2) 11838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 11938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_REG_ARM_TIMER_CVAL ARM64_SYS_REG(3, 3, 14, 0, 2) 12038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_DEV_ARM_VGIC_GRP_ADDR 0 12138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_DEV_ARM_VGIC_GRP_DIST_REGS 1 12238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_DEV_ARM_VGIC_GRP_CPU_REGS 2 12338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 12438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_DEV_ARM_VGIC_CPUID_SHIFT 32 12538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_DEV_ARM_VGIC_CPUID_MASK (0xffULL << KVM_DEV_ARM_VGIC_CPUID_SHIFT) 12638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_DEV_ARM_VGIC_OFFSET_SHIFT 0 12738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_DEV_ARM_VGIC_OFFSET_MASK (0xffffffffULL << KVM_DEV_ARM_VGIC_OFFSET_SHIFT) 12838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 12938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_IRQ_TYPE_SHIFT 24 13038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_IRQ_TYPE_MASK 0xff 13138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_IRQ_VCPU_SHIFT 16 13238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_IRQ_VCPU_MASK 0xff 13338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 13438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_IRQ_NUM_SHIFT 0 13538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_IRQ_NUM_MASK 0xffff 13638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_IRQ_TYPE_CPU 0 13738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_IRQ_TYPE_SPI 1 13838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 13938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_IRQ_TYPE_PPI 2 14038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_IRQ_CPU_IRQ 0 14138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_IRQ_CPU_FIQ 1 14238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_ARM_IRQ_GIC_MAX 127 14338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 14438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_PSCI_FN_BASE 0x95c1ba5e 14538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_PSCI_FN(n) (KVM_PSCI_FN_BASE + (n)) 14638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_PSCI_FN_CPU_SUSPEND KVM_PSCI_FN(0) 14738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_PSCI_FN_CPU_OFF KVM_PSCI_FN(1) 14838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 14938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_PSCI_FN_CPU_ON KVM_PSCI_FN(2) 15038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_PSCI_FN_MIGRATE KVM_PSCI_FN(3) 15138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_PSCI_RET_SUCCESS 0 15238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_PSCI_RET_NI ((unsigned long)-1) 15338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 15438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_PSCI_RET_INVAL ((unsigned long)-2) 15538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define KVM_PSCI_RET_DENIED ((unsigned long)-3) 15638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#endif 15738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#endif 15838062f954c637861348dd8078cefb73554e6f12cChristopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159