1/***********************license start*************** 2 * Copyright (c) 2003-2010 Cavium Inc. (support@cavium.com). All rights 3 * reserved. 4 * 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: 9 * 10 * * Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 13 * * Redistributions in binary form must reproduce the above 14 * copyright notice, this list of conditions and the following 15 * disclaimer in the documentation and/or other materials provided 16 * with the distribution. 17 18 * * Neither the name of Cavium Inc. nor the names of 19 * its contributors may be used to endorse or promote products 20 * derived from this software without specific prior written 21 * permission. 22 23 * This Software, including technical data, may be subject to U.S. export control 24 * laws, including the U.S. Export Administration Act and its associated 25 * regulations, and may be subject to export or import regulations in other 26 * countries. 27 28 * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS" 29 * AND WITH ALL FAULTS AND CAVIUM INC. MAKES NO PROMISES, REPRESENTATIONS OR 30 * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO 31 * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR 32 * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM 33 * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE, 34 * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF 35 * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR 36 * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE RISK ARISING OUT OF USE OR 37 * PERFORMANCE OF THE SOFTWARE LIES WITH YOU. 38 ***********************license end**************************************/ 39 40 41/** 42 * @file 43 * 44 * Packet buffer defines. 45 * 46 * <hr>$Revision: 70030 $<hr> 47 * 48 */ 49 50#ifndef __CVMX_PACKET_H__ 51#define __CVMX_PACKET_H__ 52 53#ifdef __cplusplus 54extern "C" { 55#endif 56 57/** 58 * This structure defines a buffer pointer on Octeon 59 */ 60union cvmx_buf_ptr { 61 void* ptr; 62 uint64_t u64; 63 struct 64 { 65 uint64_t i : 1; /**< if set, invert the "free" pick of the overall packet. HW always sets this bit to 0 on inbound packet */ 66 uint64_t back : 4; /**< Indicates the amount to back up to get to the buffer start in cache lines. In most cases 67 this is less than one complete cache line, so the value is zero */ 68 uint64_t pool : 3; /**< The pool that the buffer came from / goes to */ 69 uint64_t size :16; /**< The size of the segment pointed to by addr (in bytes) */ 70 uint64_t addr :40; /**< Pointer to the first byte of the data, NOT buffer */ 71 } s; 72}; 73 74typedef union cvmx_buf_ptr cvmx_buf_ptr_t; 75 76#ifdef __cplusplus 77} 78#endif 79 80#endif /* __CVMX_PACKET_H__ */ 81 82