mmio_khv.h 762 B

12345678910111213141516171819202122232425262728293031323334
  1. /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2. #ifndef _LINUX_MMIO_KHV_H
  3. #define _LINUX_MMIO_KHV_H
  4. #define KHV_STAT_OFF 0
  5. #define KHV_ADDR_OFF 8
  6. #define KHV_VAL_OFF 16
  7. /* REQ type*/
  8. #define INVAL 0
  9. #define START 1
  10. #define READY 2
  11. #define ACK 3
  12. #define IS_WRITE BIT(7)
  13. #define WIDTH_8 0
  14. #define WIDTH_16 1
  15. #define WIDTH_32 2
  16. #define WIDTH_64 3
  17. struct mmio_khv_device {
  18. void __iomem *base;
  19. volatile unsigned char __iomem *notify_host_reg;
  20. u32 notify_host_reg_val;
  21. volatile unsigned char __iomem *notify_guest_reg;
  22. u32 notify_guest_reg_clr;
  23. };
  24. u64 readx(u32 offset, u32 bw);
  25. void writex(u64 val, u32 offset, u32 bw);
  26. void khv_shutdown(void);
  27. #endif