i40e_osdep.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /* Copyright(c) 2013 - 2018 Intel Corporation. */
  3. #ifndef _I40E_OSDEP_H_
  4. #define _I40E_OSDEP_H_
  5. #include <linux/types.h>
  6. #include <linux/if_ether.h>
  7. #include <linux/if_vlan.h>
  8. #include <linux/tcp.h>
  9. #include <linux/pci.h>
  10. /* get readq/writeq support for 32 bit kernels, use the low-first version */
  11. #include <linux/io-64-nonatomic-lo-hi.h>
  12. /* File to be the magic between shared code and
  13. * actual OS primitives
  14. */
  15. #define hw_dbg(hw, S, A...) do {} while (0)
  16. #define wr32(a, reg, value) writel((value), ((a)->hw_addr + (reg)))
  17. #define rd32(a, reg) readl((a)->hw_addr + (reg))
  18. #define wr64(a, reg, value) writeq((value), ((a)->hw_addr + (reg)))
  19. #define rd64(a, reg) readq((a)->hw_addr + (reg))
  20. #define i40e_flush(a) readl((a)->hw_addr + I40E_VFGEN_RSTAT)
  21. /* memory allocation tracking */
  22. struct i40e_dma_mem {
  23. void *va;
  24. dma_addr_t pa;
  25. u32 size;
  26. };
  27. #define i40e_allocate_dma_mem(h, m, unused, s, a) \
  28. i40evf_allocate_dma_mem_d(h, m, s, a)
  29. #define i40e_free_dma_mem(h, m) i40evf_free_dma_mem_d(h, m)
  30. struct i40e_virt_mem {
  31. void *va;
  32. u32 size;
  33. };
  34. #define i40e_allocate_virt_mem(h, m, s) i40evf_allocate_virt_mem_d(h, m, s)
  35. #define i40e_free_virt_mem(h, m) i40evf_free_virt_mem_d(h, m)
  36. #define i40e_debug(h, m, s, ...) i40evf_debug_d(h, m, s, ##__VA_ARGS__)
  37. extern void i40evf_debug_d(void *hw, u32 mask, char *fmt_str, ...)
  38. __attribute__ ((format(gnu_printf, 3, 4)));
  39. typedef enum i40e_status_code i40e_status;
  40. #endif /* _I40E_OSDEP_H_ */