1 /** 2 * @file IxOsalBufferMgtDefault.h 3 * 4 * @brief Default buffer pool management and buffer management 5 * definitions. 6 * 7 * Design Notes: 8 * 9 * @par 10 * IXP400 SW Release version 2.0 11 * 12 * -- Copyright Notice -- 13 * 14 * @par 15 * Copyright 2001-2005, Intel Corporation. 16 * All rights reserved. 17 * 18 * @par 19 * Redistribution and use in source and binary forms, with or without 20 * modification, are permitted provided that the following conditions 21 * are met: 22 * 1. Redistributions of source code must retain the above copyright 23 * notice, this list of conditions and the following disclaimer. 24 * 2. Redistributions in binary form must reproduce the above copyright 25 * notice, this list of conditions and the following disclaimer in the 26 * documentation and/or other materials provided with the distribution. 27 * 3. Neither the name of the Intel Corporation nor the names of its contributors 28 * may be used to endorse or promote products derived from this software 29 * without specific prior written permission. 30 * 31 * @par 32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' 33 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 34 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 35 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 36 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 37 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 38 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 40 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 41 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 42 * SUCH DAMAGE. 43 * 44 * @par 45 * -- End of Copyright Notice -- 46 */ 47 48 #ifndef IX_OSAL_BUFFER_MGT_DEFAULT_H 49 #define IX_OSAL_BUFFER_MGT_DEFAULT_H 50 51 /** 52 * @enum IxMbufPoolAllocationType 53 * @brief Used to indicate how the pool memory was allocated 54 */ 55 56 typedef enum 57 { 58 IX_OSAL_MBUF_POOL_TYPE_SYS_ALLOC = 0, /**< mbuf pool allocated by the system */ 59 IX_OSAL_MBUF_POOL_TYPE_USER_ALLOC /**< mbuf pool allocated by the user */ 60 } IxOsalMbufPoolAllocationType; 61 62 63 /** 64 * @brief Implementation of buffer pool structure for use with non-VxWorks OS 65 */ 66 67 typedef struct 68 { 69 IX_OSAL_MBUF *nextFreeBuf; /**< Pointer to the next free mbuf */ 70 void *mbufMemPtr; /**< Pointer to the mbuf memory area */ 71 void *dataMemPtr; /**< Pointer to the data memory area */ 72 int bufDataSize; /**< The size of the data portion of each mbuf */ 73 int totalBufsInPool; /**< Total number of mbufs in the pool */ 74 int freeBufsInPool; /**< Number of free mbufs currently in the pool */ 75 int mbufMemSize; /**< The size of the pool mbuf memory area */ 76 int dataMemSize; /**< The size of the pool data memory area */ 77 char name[IX_OSAL_MBUF_POOL_NAME_LEN + 1]; /**< Descriptive name for pool */ 78 IxOsalMbufPoolAllocationType poolAllocType; 79 unsigned int poolIdx; /**< Pool Index */ 80 } IxOsalMbufPool; 81 82 typedef IxOsalMbufPool IX_OSAL_MBUF_POOL; 83 84 85 PUBLIC IX_STATUS ixOsalBuffPoolUninit (IX_OSAL_MBUF_POOL * pool); 86 87 88 #endif /* IX_OSAL_BUFFER_MGT_DEFAULT_H */ 89