2026-01-21 18:59:54 +08:00

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 */