Revision 216db403 linux-headers/asm-arm64/kvm.h

b/linux-headers/asm-arm64/kvm.h
55 55
#define KVM_ARM_TARGET_AEM_V8		0
56 56
#define KVM_ARM_TARGET_FOUNDATION_V8	1
57 57
#define KVM_ARM_TARGET_CORTEX_A57	2
58
#define KVM_ARM_TARGET_XGENE_POTENZA	3
58 59

  
59
#define KVM_ARM_NUM_TARGETS		3
60
#define KVM_ARM_NUM_TARGETS		4
60 61

  
61 62
/* KVM_ARM_SET_DEVICE_ADDR ioctl id encoding */
62 63
#define KVM_ARM_DEVICE_TYPE_SHIFT	0
......
129 130
#define KVM_REG_ARM64_SYSREG_OP2_MASK	0x0000000000000007
130 131
#define KVM_REG_ARM64_SYSREG_OP2_SHIFT	0
131 132

  
133
#define ARM64_SYS_REG_SHIFT_MASK(x,n) \
134
	(((x) << KVM_REG_ARM64_SYSREG_ ## n ## _SHIFT) & \
135
	KVM_REG_ARM64_SYSREG_ ## n ## _MASK)
136

  
137
#define __ARM64_SYS_REG(op0,op1,crn,crm,op2) \
138
	(KVM_REG_ARM64 | KVM_REG_ARM64_SYSREG | \
139
	ARM64_SYS_REG_SHIFT_MASK(op0, OP0) | \
140
	ARM64_SYS_REG_SHIFT_MASK(op1, OP1) | \
141
	ARM64_SYS_REG_SHIFT_MASK(crn, CRN) | \
142
	ARM64_SYS_REG_SHIFT_MASK(crm, CRM) | \
143
	ARM64_SYS_REG_SHIFT_MASK(op2, OP2))
144

  
145
#define ARM64_SYS_REG(...) (__ARM64_SYS_REG(__VA_ARGS__) | KVM_REG_SIZE_U64)
146

  
147
#define KVM_REG_ARM_TIMER_CTL		ARM64_SYS_REG(3, 3, 14, 3, 1)
148
#define KVM_REG_ARM_TIMER_CNT		ARM64_SYS_REG(3, 3, 14, 3, 2)
149
#define KVM_REG_ARM_TIMER_CVAL		ARM64_SYS_REG(3, 3, 14, 0, 2)
150

  
151
/* Device Control API: ARM VGIC */
152
#define KVM_DEV_ARM_VGIC_GRP_ADDR	0
153
#define KVM_DEV_ARM_VGIC_GRP_DIST_REGS	1
154
#define KVM_DEV_ARM_VGIC_GRP_CPU_REGS	2
155
#define   KVM_DEV_ARM_VGIC_CPUID_SHIFT	32
156
#define   KVM_DEV_ARM_VGIC_CPUID_MASK	(0xffULL << KVM_DEV_ARM_VGIC_CPUID_SHIFT)
157
#define   KVM_DEV_ARM_VGIC_OFFSET_SHIFT	0
158
#define   KVM_DEV_ARM_VGIC_OFFSET_MASK	(0xffffffffULL << KVM_DEV_ARM_VGIC_OFFSET_SHIFT)
159

  
132 160
/* KVM_IRQ_LINE irq field index values */
133 161
#define KVM_ARM_IRQ_TYPE_SHIFT		24
134 162
#define KVM_ARM_IRQ_TYPE_MASK		0xff

Also available in: Unified diff