118 lines
1.9 KiB
C
118 lines
1.9 KiB
C
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
#ifndef _UAPI_ASM_SW64_KVM_H
|
|
#define _UAPI_ASM_SW64_KVM_H
|
|
|
|
/*
|
|
* KVM SW specific structures and definitions.
|
|
*/
|
|
#define SWVM_IRQS 64
|
|
enum SW64_KVM_IRQ {
|
|
SW64_KVM_IRQ_IPI = 27,
|
|
SW64_KVM_IRQ_TIMER = 9,
|
|
SW64_KVM_IRQ_KBD = 29,
|
|
SW64_KVM_IRQ_MOUSE = 30,
|
|
};
|
|
|
|
#define SWVM_VM_TYPE_DEFAULT 0
|
|
#define SWVM_VM_TYPE_PHYVCPU 1
|
|
#define __KVM_HAVE_IRQ_LINE
|
|
|
|
#define SWVM_NUM_NUMA_MEMBANKS 1
|
|
#define KVM_NR_IRQCHIPS 1
|
|
/*
|
|
* for KVM_GET_REGS and KVM_SET_REGS
|
|
*/
|
|
struct kvm_regs {
|
|
unsigned long r0;
|
|
unsigned long r1;
|
|
unsigned long r2;
|
|
unsigned long r3;
|
|
|
|
unsigned long r4;
|
|
unsigned long r5;
|
|
unsigned long r6;
|
|
unsigned long r7;
|
|
|
|
unsigned long r8;
|
|
unsigned long r9;
|
|
unsigned long r10;
|
|
unsigned long r11;
|
|
|
|
unsigned long r12;
|
|
unsigned long r13;
|
|
unsigned long r14;
|
|
unsigned long r15;
|
|
|
|
unsigned long r19;
|
|
unsigned long r20;
|
|
unsigned long r21;
|
|
unsigned long r22;
|
|
|
|
unsigned long r23;
|
|
unsigned long r24;
|
|
unsigned long r25;
|
|
unsigned long r26;
|
|
|
|
unsigned long r27;
|
|
unsigned long r28;
|
|
unsigned long __padding0;
|
|
unsigned long fpcr;
|
|
|
|
unsigned long fp[124];
|
|
/* These are saved by HMcode: */
|
|
unsigned long ps;
|
|
unsigned long pc;
|
|
unsigned long gp;
|
|
unsigned long r16;
|
|
unsigned long r17;
|
|
unsigned long r18;
|
|
};
|
|
|
|
|
|
/*
|
|
* return stack for __sw64_vcpu_run
|
|
*/
|
|
struct vcpu_run_ret_stack {
|
|
unsigned long ra;
|
|
unsigned long r0;
|
|
};
|
|
|
|
struct host_int_args {
|
|
unsigned long r18;
|
|
unsigned long r17;
|
|
unsigned long r16;
|
|
};
|
|
|
|
/*
|
|
* for KVM_GET_FPU and KVM_SET_FPU
|
|
*/
|
|
struct kvm_fpu {
|
|
};
|
|
|
|
struct hcall_args {
|
|
unsigned long arg0, arg1, arg2;
|
|
};
|
|
|
|
struct phyvcpu_hcall_args {
|
|
unsigned long call;
|
|
struct hcall_args args;
|
|
};
|
|
|
|
struct kvm_debug_exit_arch {
|
|
unsigned long epc;
|
|
};
|
|
|
|
/* for KVM_SET_GUEST_DEBUG */
|
|
struct kvm_guest_debug_arch {
|
|
};
|
|
|
|
/* definition of registers in kvm_run */
|
|
struct kvm_sync_regs {
|
|
};
|
|
|
|
/* dummy definition */
|
|
struct kvm_sregs {
|
|
};
|
|
|
|
#endif /* _UAPI_ASM_SW64_KVM_H */
|