Data Structures | Defines | Enumerations | Functions
cppi_desc.h File Reference

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

#include <ti/drv/qmss/qmss_drv.h>
#include <string.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_DescCppi_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 uint8_t * 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)
Qmss_QueueHnd Cppi_initDescriptorSubSys (Qmss_SubSysHnd subSysHnd, Cppi_DescCfg *descCfg, uint32_t *numAllocated)

Detailed Description

This is the CPPI Descriptor Management include file.

============================================================================
(C) Copyright 2009-2013, 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 2014, Texas Instruments Incorporated