kvm.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * This file is subject to the terms and conditions of the GNU General Public
  3. * License. See the file "COPYING" in the main directory of this archive
  4. * for more details.
  5. *
  6. * Copyright (C) 2012 MIPS Technologies, Inc. All rights reserved.
  7. * Copyright (C) 2013 Cavium, Inc.
  8. * Authors: Sanjay Lal <sanjayl@kymasys.com>
  9. */
  10. #ifndef __LINUX_KVM_MIPS_H
  11. #define __LINUX_KVM_MIPS_H
  12. #include <linux/types.h>
  13. #define __KVM_MIPS
  14. #define N_MIPS_COPROC_REGS 32
  15. #define N_MIPS_COPROC_SEL 8
  16. /* for KVM_GET_REGS and KVM_SET_REGS */
  17. struct kvm_regs {
  18. __u32 gprs[32];
  19. __u32 hi;
  20. __u32 lo;
  21. __u32 pc;
  22. __u32 cp0reg[N_MIPS_COPROC_REGS][N_MIPS_COPROC_SEL];
  23. };
  24. /* for KVM_GET_SREGS and KVM_SET_SREGS */
  25. struct kvm_sregs {
  26. };
  27. /*
  28. * for KVM_GET_FPU and KVM_SET_FPU
  29. *
  30. * If Status[FR] is zero (32-bit FPU), the upper 32-bits of the FPRs
  31. * are zero filled.
  32. */
  33. struct kvm_fpu {
  34. __u64 fpr[32];
  35. __u32 fir;
  36. __u32 fccr;
  37. __u32 fexr;
  38. __u32 fenr;
  39. __u32 fcsr;
  40. __u32 pad;
  41. };
  42. struct kvm_debug_exit_arch {
  43. };
  44. /* for KVM_SET_GUEST_DEBUG */
  45. struct kvm_guest_debug_arch {
  46. };
  47. struct kvm_mips_interrupt {
  48. /* in */
  49. __u32 cpu;
  50. __u32 irq;
  51. };
  52. /* definition of registers in kvm_run */
  53. struct kvm_sync_regs {
  54. };
  55. #endif /* __LINUX_KVM_MIPS_H */