Blame view

kernel/linux-rt-4.4.41/drivers/net/ethernet/intel/i40e/i40e_osdep.h 2.73 KB
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
  /*******************************************************************************
   *
   * Intel Ethernet Controller XL710 Family Linux Driver
   * Copyright(c) 2013 - 2014 Intel Corporation.
   *
   * This program is free software; you can redistribute it and/or modify it
   * under the terms and conditions of the GNU General Public License,
   * version 2, as published by the Free Software Foundation.
   *
   * This program is distributed in the hope it will be useful, but WITHOUT
   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
   * more details.
   *
   * You should have received a copy of the GNU General Public License along
   * with this program.  If not, see <http://www.gnu.org/licenses/>.
   *
   * The full GNU General Public License is included in this distribution in
   * the file called "COPYING".
   *
   * Contact Information:
   * e1000-devel Mailing List <e1000-devel@lists.sourceforge.net>
   * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
   *
   ******************************************************************************/
  
  #ifndef _I40E_OSDEP_H_
  #define _I40E_OSDEP_H_
  
  #include <linux/types.h>
  #include <linux/if_ether.h>
  #include <linux/if_vlan.h>
  #include <linux/tcp.h>
  #include <linux/pci.h>
  #include <linux/highuid.h>
  
  /* get readq/writeq support for 32 bit kernels, use the low-first version */
  #include <linux/io-64-nonatomic-lo-hi.h>
  
  /* File to be the magic between shared code and
   * actual OS primitives
   */
  
  #define hw_dbg(hw, S, A...)	do {} while (0)
  
  #define wr32(a, reg, value)	writel((value), ((a)->hw_addr + (reg)))
  #define rd32(a, reg)		readl((a)->hw_addr + (reg))
  
  #define wr64(a, reg, value)	writeq((value), ((a)->hw_addr + (reg)))
  #define rd64(a, reg)		readq((a)->hw_addr + (reg))
  #define i40e_flush(a)		readl((a)->hw_addr + I40E_GLGEN_STAT)
  
  /* memory allocation tracking */
  struct i40e_dma_mem {
  	void *va;
  	dma_addr_t pa;
  	u32 size;
  } __packed;
  
  #define i40e_allocate_dma_mem(h, m, unused, s, a) \
  			i40e_allocate_dma_mem_d(h, m, s, a)
  #define i40e_free_dma_mem(h, m) i40e_free_dma_mem_d(h, m)
  
  struct i40e_virt_mem {
  	void *va;
  	u32 size;
  } __packed;
  
  #define i40e_allocate_virt_mem(h, m, s) i40e_allocate_virt_mem_d(h, m, s)
  #define i40e_free_virt_mem(h, m) i40e_free_virt_mem_d(h, m)
  
  #define i40e_debug(h, m, s, ...)                                \
  do {                                                            \
  	if (((m) & (h)->debug_mask))                            \
  		pr_info("i40e %02x.%x " s,                      \
  			(h)->bus.device, (h)->bus.func,         \
  			##__VA_ARGS__);                         \
  } while (0)
  
  typedef enum i40e_status_code i40e_status;
  #ifdef CONFIG_I40E_FCOE
  #define I40E_FCOE
  #endif
  #endif /* _I40E_OSDEP_H_ */