9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi/******************************************************************************
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi Copyright (c) 2013-2014, Intel Corporation
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi All rights reserved.
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi Redistribution and use in source and binary forms, with or without
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi modification, are permitted provided that the following conditions are met:
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi 1. Redistributions of source code must retain the above copyright notice,
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi this list of conditions and the following disclaimer.
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi 2. Redistributions in binary form must reproduce the above copyright
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi notice, this list of conditions and the following disclaimer in the
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi documentation and/or other materials provided with the distribution.
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi 3. Neither the name of the Intel Corporation nor the names of its
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi contributors may be used to endorse or promote products derived from
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi this software without specific prior written permission.
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi POSSIBILITY OF SUCH DAMAGE.
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi******************************************************************************/
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi/*$FreeBSD: head/sys/dev/ixl/i40e_alloc.h 283119 2015-05-19 18:35:18Z jhb $*/
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi#ifndef _I40E_ALLOC_H_
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi#define _I40E_ALLOC_H_
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchistruct i40e_hw;
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi/* Memory allocation types */
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchienum i40e_memory_type {
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi i40e_mem_arq_buf = 0, /* ARQ indirect command buffer */
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi i40e_mem_asq_buf = 1,
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi i40e_mem_atq_buf = 2, /* ATQ indirect command buffer */
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi i40e_mem_arq_ring = 3, /* ARQ descriptor ring */
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi i40e_mem_atq_ring = 4, /* ATQ descriptor ring */
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi i40e_mem_pd = 5, /* Page Descriptor */
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi i40e_mem_bp = 6, /* Backing Page - 4KB */
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi i40e_mem_bp_jumbo = 7, /* Backing Page - > 4KB */
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi i40e_mem_reserved
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi};
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi/* prototype for functions used for dynamic memory allocation */
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchienum i40e_status_code i40e_allocate_dma_mem(struct i40e_hw *hw,
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi struct i40e_dma_mem *mem,
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi enum i40e_memory_type type,
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi u64 size, u32 alignment);
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchienum i40e_status_code i40e_free_dma_mem(struct i40e_hw *hw,
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi struct i40e_dma_mem *mem);
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchienum i40e_status_code i40e_allocate_virt_mem(struct i40e_hw *hw,
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi struct i40e_virt_mem *mem,
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi u32 size);
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchienum i40e_status_code i40e_free_virt_mem(struct i40e_hw *hw,
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi struct i40e_virt_mem *mem);
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi
9d26e4fc021e249c93c2861629cc665e4f5bd4d6Robert Mustacchi#endif /* _I40E_ALLOC_H_ */