166bc8e0fSJesse Brandeburg /* SPDX-License-Identifier: GPL-2.0 */ 266bc8e0fSJesse Brandeburg /* Copyright(c) 2013 - 2018 Intel Corporation. */ 366bc8e0fSJesse Brandeburg 466bc8e0fSJesse Brandeburg #ifndef _IAVF_OSDEP_H_ 566bc8e0fSJesse Brandeburg #define _IAVF_OSDEP_H_ 666bc8e0fSJesse Brandeburg 766bc8e0fSJesse Brandeburg #include <linux/types.h> 866bc8e0fSJesse Brandeburg #include <linux/if_ether.h> 966bc8e0fSJesse Brandeburg #include <linux/if_vlan.h> 1066bc8e0fSJesse Brandeburg #include <linux/tcp.h> 1166bc8e0fSJesse Brandeburg #include <linux/pci.h> 1266bc8e0fSJesse Brandeburg 1366bc8e0fSJesse Brandeburg /* get readq/writeq support for 32 bit kernels, use the low-first version */ 1466bc8e0fSJesse Brandeburg #include <linux/io-64-nonatomic-lo-hi.h> 1566bc8e0fSJesse Brandeburg 1666bc8e0fSJesse Brandeburg #define wr32(a, reg, value) writel((value), ((a)->hw_addr + (reg))) 1766bc8e0fSJesse Brandeburg #define rd32(a, reg) readl((a)->hw_addr + (reg)) 1866bc8e0fSJesse Brandeburg 1966bc8e0fSJesse Brandeburg #define wr64(a, reg, value) writeq((value), ((a)->hw_addr + (reg))) 2066bc8e0fSJesse Brandeburg #define rd64(a, reg) readq((a)->hw_addr + (reg)) 2166bc8e0fSJesse Brandeburg #define iavf_flush(a) readl((a)->hw_addr + IAVF_VFGEN_RSTAT) 2266bc8e0fSJesse Brandeburg 2366bc8e0fSJesse Brandeburg /* memory allocation tracking */ 2466bc8e0fSJesse Brandeburg struct iavf_dma_mem { 2566bc8e0fSJesse Brandeburg void *va; 2666bc8e0fSJesse Brandeburg dma_addr_t pa; 2766bc8e0fSJesse Brandeburg u32 size; 2866bc8e0fSJesse Brandeburg }; 2966bc8e0fSJesse Brandeburg 3066bc8e0fSJesse Brandeburg #define iavf_allocate_dma_mem(h, m, unused, s, a) \ 3166bc8e0fSJesse Brandeburg iavf_allocate_dma_mem_d(h, m, s, a) 3266bc8e0fSJesse Brandeburg 3366bc8e0fSJesse Brandeburg struct iavf_virt_mem { 3466bc8e0fSJesse Brandeburg void *va; 3566bc8e0fSJesse Brandeburg u32 size; 3666bc8e0fSJesse Brandeburg }; 3766bc8e0fSJesse Brandeburg 38*75051ce4SJeff Kirsher #define iavf_debug(h, m, s, ...) \ 39*75051ce4SJeff Kirsher do { \ 40*75051ce4SJeff Kirsher if (((m) & (h)->debug_mask)) \ 41*75051ce4SJeff Kirsher pr_info("iavf %02x:%02x.%x " s, \ 42*75051ce4SJeff Kirsher (h)->bus.bus_id, (h)->bus.device, \ 43*75051ce4SJeff Kirsher (h)->bus.func, ##__VA_ARGS__); \ 44*75051ce4SJeff Kirsher } while (0) 4566bc8e0fSJesse Brandeburg 4666bc8e0fSJesse Brandeburg #endif /* _IAVF_OSDEP_H_ */ 47