# cppi_desc.h File Reference

This is the CPPI Descriptor Management include file. More...

`#include <ti/drv/qmss/qmss_drv.h>`

## Data Structures

struct | Cppi_HostDescCfg
| CPPI host descriptor configuration structure. More...
struct | Cppi_MonolithicDescCfg
| CPPI monolithic descriptor configuration structure. More...
struct | Cppi_DescCfg
| CPPI descriptor configuration structure. More...
struct | Cppi_DescTag
| CPPI descriptor Word 1 Tag information. More...
struct | Cppi_HostDesc
| CPPI host descriptor layout. More...
struct | Cppi_MonolithicDesc
| CPPI monolithic descriptor layout. More...
union | Cppi_Desc
| CPPI descriptor. More...

## Defines

#define | CPPI_MONOLITHIC_DESC_EPIB_SIZE 20
#define | CPPI_HOST_DESC_EPIB_SIZE 16

## Enumerations

enum | Cppi_DescType { Cppi_DescType_HOST = 0, Cppi_DescType_MONOLITHIC = 2 }
| CPPI descriptor types. More...
enum | Cppi_ReturnPolicy { Cppi_ReturnPolicy_RETURN_ENTIRE_PACKET = 0, Cppi_ReturnPolicy_RETURN_BUFFER }
| Packet return policy. More...
enum | Cppi_PSLoc { Cppi_PSLoc_PS_IN_DESC = 0, Cppi_PSLoc_PS_IN_SOP }
| protocol specific information location More...
enum | Cppi_EPIB { Cppi_EPIB_NO_EPIB_PRESENT = 0, Cppi_EPIB_EPIB_PRESENT }
| extended packet information block More...
enum | Cppi_InitDesc { Cppi_InitDesc_INIT_DESCRIPTOR = 0, Cppi_InitDesc_BYPASS_INIT }
| Descriptor resource management. More...

## Functions

static void | Cppi_setDescType (Cppi_Desc *descAddr, Cppi_DescType descType)
static Cppi_DescType | Cppi_getDescType (Cppi_Desc *descAddr)
static uint32_t | Cppi_getDescError (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setData (Cppi_DescType descType, Cppi_Desc *descAddr, uint8_t *buffAddr, uint32_t buffLen)
static void | Cppi_getData (Cppi_DescType descType, Cppi_Desc *descAddr, uint8_t **buffAddr, uint32_t *buffLen)
static void | Cppi_setDataLen (Cppi_DescType descType, Cppi_Desc *descAddr, uint32_t buffLen)
static uint32_t | Cppi_getDataLen (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_linkNextBD (Cppi_DescType descType, Cppi_Desc *descAddr, Cppi_Desc *nextBD)
static Cppi_Desc * | Cppi_getNextBD (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setOriginalBufInfo (Cppi_DescType descType, Cppi_Desc *descAddr, uint8_t *buffAddr, uint32_t buffLen)
static void | Cppi_getOriginalBufInfo (Cppi_DescType descType, Cppi_Desc *descAddr, uint8_t **buffAddr, uint32_t *buffLen)
static void | Cppi_setPacketType (Cppi_DescType descType, Cppi_Desc *descAddr, uint8_t packetType)
static uint8_t | Cppi_getPacketType (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setTimeStamp (Cppi_DescType descType, Cppi_Desc *descAddr, uint32_t timeStamp)
static Cppi_Result | Cppi_getTimeStamp (Cppi_DescType descType, Cppi_Desc *descAddr, uint32_t *timeStamp)
static void | Cppi_setSoftwareInfo (Cppi_DescType descType, Cppi_Desc *descAddr, uint8_t *infoAddr)
static Cppi_Result | Cppi_getSoftwareInfo (Cppi_DescType descType, Cppi_Desc *descAddr, uint8_t **infoAddr)
static void | Cppi_setSoftwareInfo0 (Cppi_DescType descType, Cppi_Desc *descAddr, uint32_t value)
static uint32_t | Cppi_getSoftwareInfo0 (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setSoftwareInfo1 (Cppi_DescType descType, Cppi_Desc *descAddr, uint32_t value)
static uint32_t | Cppi_getSoftwareInfo1 (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setSoftwareInfo2 (Cppi_DescType descType, Cppi_Desc *descAddr, uint32_t value)
static uint32_t | Cppi_getSoftwareInfo2 (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setPSData (Cppi_DescType descType, Cppi_Desc *descAddr, uint8_t *dataAddr, uint32_t dataLen)
static Cppi_Result | Cppi_getPSData (Cppi_DescType descType, Cppi_PSLoc location, Cppi_Desc *descAddr, uint8_t **dataAddr, uint32_t *dataLen)
static void | Cppi_setPSLen (Cppi_DescType descType, Cppi_Desc *descAddr, uint32_t dataLen)
static uint32_t | Cppi_getPSLen (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setPacketLen (Cppi_DescType descType, Cppi_Desc *descAddr, uint32_t packetLen)
static uint32_t | Cppi_getPacketLen (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setPSLocation (Cppi_DescType descType, Cppi_Desc *descAddr, Cppi_PSLoc location)
static Cppi_PSLoc | Cppi_getPSLocation (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setPSFlags (Cppi_DescType descType, Cppi_Desc *descAddr, uint8_t psFlags)
static uint8_t | Cppi_getPSFlags (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setOrigBufferpooIndex (Cppi_DescType descType, Cppi_Desc *descAddr, uint8_t poolIndex)
static uint8_t | Cppi_getOrigBufferpooIndex (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_incrementRefCount (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_decrementRefCount (Cppi_DescType descType, Cppi_Desc *descAddr)
static uint8_t | Cppi_getRefCount (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setDataOffset (Cppi_DescType descType, Cppi_Desc *descAddr, uint32_t dataOffset)
static uint32_t | Cppi_getDataOffset (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setReturnPolicy (Cppi_DescType descType, Cppi_Desc *descAddr, Cppi_ReturnPolicy returnPolicy)
static Cppi_ReturnPolicy | Cppi_getReturnPolicy (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setReturnPushPolicy (Cppi_DescType descType, Cppi_Desc *descAddr, Qmss_Location returnPushPolicy)
static Qmss_Location | Cppi_getReturnPushPolicy (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setReturnQueue (Cppi_DescType descType, Cppi_Desc *descAddr, Qmss_Queue queue)
static Qmss_Queue | Cppi_getReturnQueue (Cppi_DescType descType, Cppi_Desc *descAddr)
static void | Cppi_setTag (Cppi_DescType descType, Cppi_Desc *descAddr, Cppi_DescTag *tag)
static Cppi_DescTag | Cppi_getTag (Cppi_DescType descType, Cppi_Desc *descAddr)
Qmss_QueueHnd | Cppi_initDescriptor (Cppi_DescCfg *descCfg, uint32_t *numAllocated)

## Detailed Description

This is the CPPI Descriptor Management include file.

  ============================================================================
  (C) Copyright 2009-2011, Texas Instruments, Inc.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of Texas Instruments Incorporated nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Copyright 2012, Texas Instruments Incorporated