1 /******************************************************************************* 2 * 3 * Intel Ethernet Controller XL710 Family Linux Driver 4 * Copyright(c) 2013 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 with 16 * this program; if not, write to the Free Software Foundation, Inc., 17 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * The full GNU General Public License is included in this distribution in 20 * the file called "COPYING". 21 * 22 * Contact Information: 23 * e1000-devel Mailing List <e1000-devel@lists.sourceforge.net> 24 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 25 * 26 ******************************************************************************/ 27 28 #ifndef _I40E_ALLOC_H_ 29 #define _I40E_ALLOC_H_ 30 31 struct i40e_hw; 32 33 /* Memory allocation types */ 34 enum i40e_memory_type { 35 i40e_mem_arq_buf = 0, /* ARQ indirect command buffer */ 36 i40e_mem_asq_buf = 1, 37 i40e_mem_atq_buf = 2, /* ATQ indirect command buffer */ 38 i40e_mem_arq_ring = 3, /* ARQ descriptor ring */ 39 i40e_mem_atq_ring = 4, /* ATQ descriptor ring */ 40 i40e_mem_pd = 5, /* Page Descriptor */ 41 i40e_mem_bp = 6, /* Backing Page - 4KB */ 42 i40e_mem_bp_jumbo = 7, /* Backing Page - > 4KB */ 43 i40e_mem_reserved 44 }; 45 46 /* prototype for functions used for dynamic memory allocation */ 47 i40e_status i40e_allocate_dma_mem(struct i40e_hw *hw, 48 struct i40e_dma_mem *mem, 49 enum i40e_memory_type type, 50 u64 size, u32 alignment); 51 i40e_status i40e_free_dma_mem(struct i40e_hw *hw, 52 struct i40e_dma_mem *mem); 53 i40e_status i40e_allocate_virt_mem(struct i40e_hw *hw, 54 struct i40e_virt_mem *mem, 55 u32 size); 56 i40e_status i40e_free_virt_mem(struct i40e_hw *hw, 57 struct i40e_virt_mem *mem); 58 59 #endif /* _I40E_ALLOC_H_ */ 60