1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright(c) 2013 - 2018 Intel Corporation. */
3 
4 #ifndef _I40E_ALLOC_H_
5 #define _I40E_ALLOC_H_
6 
7 #include <linux/types.h>
8 
9 struct i40e_hw;
10 
11 /* memory allocation tracking */
12 struct i40e_dma_mem {
13 	void *va;
14 	dma_addr_t pa;
15 	u32 size;
16 };
17 
18 struct i40e_virt_mem {
19 	void *va;
20 	u32 size;
21 };
22 
23 /* prototype for functions used for dynamic memory allocation */
24 int i40e_allocate_dma_mem(struct i40e_hw *hw,
25 			  struct i40e_dma_mem *mem,
26 			  u64 size, u32 alignment);
27 int i40e_free_dma_mem(struct i40e_hw *hw,
28 		      struct i40e_dma_mem *mem);
29 int i40e_allocate_virt_mem(struct i40e_hw *hw,
30 			   struct i40e_virt_mem *mem,
31 			   u32 size);
32 int i40e_free_virt_mem(struct i40e_hw *hw,
33 		       struct i40e_virt_mem *mem);
34 
35 #endif /* _I40E_ALLOC_H_ */
36