GNU Linux-libre 6.8.9-gnu
[releases.git] / drivers / net / ethernet / intel / i40e / i40e_alloc.h
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_ */