19d26e4fcSRobert Mustacchi /****************************************************************************** 29d26e4fcSRobert Mustacchi 3*df36e06dSRobert Mustacchi Copyright (c) 2013-2018, Intel Corporation 49d26e4fcSRobert Mustacchi All rights reserved. 59d26e4fcSRobert Mustacchi 69d26e4fcSRobert Mustacchi Redistribution and use in source and binary forms, with or without 79d26e4fcSRobert Mustacchi modification, are permitted provided that the following conditions are met: 89d26e4fcSRobert Mustacchi 99d26e4fcSRobert Mustacchi 1. Redistributions of source code must retain the above copyright notice, 109d26e4fcSRobert Mustacchi this list of conditions and the following disclaimer. 119d26e4fcSRobert Mustacchi 129d26e4fcSRobert Mustacchi 2. Redistributions in binary form must reproduce the above copyright 139d26e4fcSRobert Mustacchi notice, this list of conditions and the following disclaimer in the 149d26e4fcSRobert Mustacchi documentation and/or other materials provided with the distribution. 159d26e4fcSRobert Mustacchi 169d26e4fcSRobert Mustacchi 3. Neither the name of the Intel Corporation nor the names of its 179d26e4fcSRobert Mustacchi contributors may be used to endorse or promote products derived from 189d26e4fcSRobert Mustacchi this software without specific prior written permission. 199d26e4fcSRobert Mustacchi 209d26e4fcSRobert Mustacchi THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 219d26e4fcSRobert Mustacchi AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 229d26e4fcSRobert Mustacchi IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 239d26e4fcSRobert Mustacchi ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 249d26e4fcSRobert Mustacchi LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 259d26e4fcSRobert Mustacchi CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 269d26e4fcSRobert Mustacchi SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 279d26e4fcSRobert Mustacchi INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 289d26e4fcSRobert Mustacchi CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 299d26e4fcSRobert Mustacchi ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 309d26e4fcSRobert Mustacchi POSSIBILITY OF SUCH DAMAGE. 319d26e4fcSRobert Mustacchi 329d26e4fcSRobert Mustacchi ******************************************************************************/ 333d75a287SRobert Mustacchi /*$FreeBSD$*/ 349d26e4fcSRobert Mustacchi 359d26e4fcSRobert Mustacchi #ifndef _I40E_ALLOC_H_ 369d26e4fcSRobert Mustacchi #define _I40E_ALLOC_H_ 379d26e4fcSRobert Mustacchi 389d26e4fcSRobert Mustacchi struct i40e_hw; 399d26e4fcSRobert Mustacchi 409d26e4fcSRobert Mustacchi /* Memory allocation types */ 419d26e4fcSRobert Mustacchi enum i40e_memory_type { 429d26e4fcSRobert Mustacchi i40e_mem_arq_buf = 0, /* ARQ indirect command buffer */ 439d26e4fcSRobert Mustacchi i40e_mem_asq_buf = 1, 449d26e4fcSRobert Mustacchi i40e_mem_atq_buf = 2, /* ATQ indirect command buffer */ 459d26e4fcSRobert Mustacchi i40e_mem_arq_ring = 3, /* ARQ descriptor ring */ 469d26e4fcSRobert Mustacchi i40e_mem_atq_ring = 4, /* ATQ descriptor ring */ 479d26e4fcSRobert Mustacchi i40e_mem_pd = 5, /* Page Descriptor */ 489d26e4fcSRobert Mustacchi i40e_mem_bp = 6, /* Backing Page - 4KB */ 499d26e4fcSRobert Mustacchi i40e_mem_bp_jumbo = 7, /* Backing Page - > 4KB */ 509d26e4fcSRobert Mustacchi i40e_mem_reserved 519d26e4fcSRobert Mustacchi }; 529d26e4fcSRobert Mustacchi 539d26e4fcSRobert Mustacchi /* prototype for functions used for dynamic memory allocation */ 549d26e4fcSRobert Mustacchi enum i40e_status_code i40e_allocate_dma_mem(struct i40e_hw *hw, 559d26e4fcSRobert Mustacchi struct i40e_dma_mem *mem, 569d26e4fcSRobert Mustacchi enum i40e_memory_type type, 579d26e4fcSRobert Mustacchi u64 size, u32 alignment); 589d26e4fcSRobert Mustacchi enum i40e_status_code i40e_free_dma_mem(struct i40e_hw *hw, 599d26e4fcSRobert Mustacchi struct i40e_dma_mem *mem); 609d26e4fcSRobert Mustacchi enum i40e_status_code i40e_allocate_virt_mem(struct i40e_hw *hw, 619d26e4fcSRobert Mustacchi struct i40e_virt_mem *mem, 629d26e4fcSRobert Mustacchi u32 size); 639d26e4fcSRobert Mustacchi enum i40e_status_code i40e_free_virt_mem(struct i40e_hw *hw, 649d26e4fcSRobert Mustacchi struct i40e_virt_mem *mem); 659d26e4fcSRobert Mustacchi 669d26e4fcSRobert Mustacchi #endif /* _I40E_ALLOC_H_ */ 67