1 /******************************************************************************* 2 * 3 * Intel Ethernet Controller XL710 Family Linux Driver 4 * Copyright(c) 2013 - 2014 Intel Corporation. 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms and conditions of the GNU General Public License, 8 * version 2, as published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope it will be useful, but WITHOUT 11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13 * more details. 14 * 15 * You should have received a copy of the GNU General Public License along 16 * with this program. If not, see <http://www.gnu.org/licenses/>. 17 * 18 * The full GNU General Public License is included in this distribution in 19 * the file called "COPYING". 20 * 21 * Contact Information: 22 * e1000-devel Mailing List <e1000-devel@lists.sourceforge.net> 23 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 24 * 25 ******************************************************************************/ 26 27 #ifndef _I40E_ALLOC_H_ 28 #define _I40E_ALLOC_H_ 29 30 struct i40e_hw; 31 32 /* Memory allocation types */ 33 enum i40e_memory_type { 34 i40e_mem_arq_buf = 0, /* ARQ indirect command buffer */ 35 i40e_mem_asq_buf = 1, 36 i40e_mem_atq_buf = 2, /* ATQ indirect command buffer */ 37 i40e_mem_arq_ring = 3, /* ARQ descriptor ring */ 38 i40e_mem_atq_ring = 4, /* ATQ descriptor ring */ 39 i40e_mem_pd = 5, /* Page Descriptor */ 40 i40e_mem_bp = 6, /* Backing Page - 4KB */ 41 i40e_mem_bp_jumbo = 7, /* Backing Page - > 4KB */ 42 i40e_mem_reserved 43 }; 44 45 /* prototype for functions used for dynamic memory allocation */ 46 i40e_status i40e_allocate_dma_mem(struct i40e_hw *hw, 47 struct i40e_dma_mem *mem, 48 enum i40e_memory_type type, 49 u64 size, u32 alignment); 50 i40e_status i40e_free_dma_mem(struct i40e_hw *hw, 51 struct i40e_dma_mem *mem); 52 i40e_status i40e_allocate_virt_mem(struct i40e_hw *hw, 53 struct i40e_virt_mem *mem, 54 u32 size); 55 i40e_status i40e_free_virt_mem(struct i40e_hw *hw, 56 struct i40e_virt_mem *mem); 57 58 #endif /* _I40E_ALLOC_H_ */ 59