AM273x MCU+ SDK  08.02.00
cbuff/v1/cbuff.h File Reference

Introduction

This file contains the prototypes of the APIs present in the device abstraction layer file of CBUFF. This also contains some related macros.

Go to the source code of this file.

Data Structures

struct  CBUFF_Stats
 CBUFF Statistics. More...
 
struct  CBUFF_BufferCfg
 CBUFF Buffer configuration. More...
 
struct  CBUFF_LinkListParams
 CBUFF Linked List parameters. More...
 
struct  CBUFF_Attrs
 CBUFF instance attributes - used during init time. More...
 
struct  CBUFF_LVDSCfg
 CBUFF LVDS Initialization configuration. More...
 
struct  CBUFF_EDMAChannelCfg
 CBUFF EDMA channel resource configuration. More...
 
struct  CBUFF_EDMAInfo
 CBUFF EDMA Information block. More...
 
struct  CBUFF_SwSessionCfg
 CBUFF Software Triggered Session configuration. More...
 
struct  CBUFF_SessionCfg
 CBUFF configuration. More...
 
struct  CBUFF_InitCfg
 CBUFF Initialization Configuration. More...
 
struct  CBUFF_EDMATrackingEntry
 CBUFF EDMA Tracking Entry. More...
 
struct  CBUFF_Session
 CBUFF Session. More...
 
struct  CBUFF_Object
 CBUFF Driver. More...
 
struct  CBUFF_InterfaceFxn
 CBUFF Interface Function. More...
 

Macros

#define CBUFF_ERRNO_BASE   (-3300)
 CBUFF driver error base. More...
 
#define CBUFF_MAX_USER_BUFFER   (3U)
 Maximum number of user supplied data buffers which can be configured and sent over the interface. More...
 
#define CBUFF_MAX_NUM_SESSION   (7U)
 Maximum number of sessions which can be supported by the CBUFF Driver. More...
 
#define CBUFF_EDMA_MAX_NUM_CHANNELS   (32U)
 Maximum number of EDMA channels which can be used by the CBUFF driver. More...
 
#define CBUFF_MAX_LINKED_LIST_SIZE   (32U)
 Maximum number of linked list entries which can be tracked by the driver. More...
 
#define CBUFF_LL_READ_THRESHOLD   (0x4U)
 Read threshold configured in the Linked List Entries. This is used by the CBUFF 128bit FIFO. More...
 
#define CBUFF_LL_WRITE_THRESHOLD   (0x40U)
 Write threshold configured in the Linked List Entries. This is used by the CBUFF 128bit FIFO. More...
 
#define CBUFF_MAX_TRANSFER_SIZE_CBUFF_UNITS   (0x3FFFU)
 Maximum transfer size in CBUFF Units. More...
 
#define CBUFF_MIN_TRANSFER_SIZE_CBUFF_UNITS   ((CBUFF_LL_READ_THRESHOLD * 16U) / 2U)
 Minimum transfer size in CBUFF Units. More...
 
#define CBUFF_Interface_MDO   ((uint32_t) 1) /*! The CBUFF driver will send out the packets using the MDO/Aurora Interface */
 
#define CBUFF_Interface_LVDS   ((uint32_t) 2) /*! The CBUFF driver will send out the packets using the LVDS Interface */
 
#define CBUFF_Command_GET_CBUFF_STATS   ((uint32_t) 1) /*! get the statistics associated with the CBUFF driver */
 
#define CBUFF_Command_CLEAR_CBUFF_STATS   ((uint32_t) 2) /*! clear the statistics associated with the CBUFF driver */
 
#define CBUFF_Command_GET_ACTIVE_SESSION   ((uint32_t) 3) /*! Get the current active session in the CBUFF */
 
#define CBUFF_OutputDataFmt_12bit   ((uint32_t) 0) /*! 12bit output format */
 
#define CBUFF_OutputDataFmt_14bit   ((uint32_t) 1) /*! 14bit output format */
 
#define CBUFF_OutputDataFmt_16bit   ((uint32_t) 2) /*! 16bit output format */
 
#define CBUFF_DataType_REAL   ((uint32_t) 0) /*! Real Data */
 
#define CBUFF_DataType_COMPLEX   ((uint32_t) 1) /*! Complex Data */
 
#define CBUFF_LVDSLaneFmtMapLANEx_FMT_0_y   ((uint32_t) 0) /*! Use the LVDS Lane Format-0. */
 
#define CBUFF_LVDSLaneFmtMapLANEx_FMT_1_y   ((uint32_t) 1) /*! Use the LVDS Lane Format-1. */
 
#define CBUFF_LLType_UNUSED   ((uint32_t) 0) /*! CBUFF Linked List Entry is not being used */
 CBUFF_LLType type of data transfer. More...
 
#define CBUFF_LLType_USER   ((uint32_t) 1) /*! CBUFF Linked List Entry holds a user buffer */
 
#define CBUFF_LLType_HEADER   ((uint32_t) 2) /*! CBUFF Linked List Entry holds a header */
 
CBUFF driver error codes

Error Codes

#define CBUFF_STATUS_SUCCESS   ((int32_t)0)
 No Error. More...
 
#define CBUFF_EINVAL   (CBUFF_ERRNO_BASE-1)
 Error Code: Invalid argument. More...
 
#define CBUFF_ENOMEM   (CBUFF_ERRNO_BASE-2)
 Error Code: Out of memory. More...
 
#define CBUFF_EINUSE   (CBUFF_ERRNO_BASE-3)
 Error Code: Operation cannot be implemented because the CBUFF driver is in use. More...
 
#define CBUFF_ENOTSUP   (CBUFF_ERRNO_BASE-4)
 Error Code: Operation cannot be implemented because the CBUFF driver is not supporting this currently. More...
 
#define CBUFF_EDMA_FAIL   (CBUFF_ERRNO_BASE-5)
 Error Code: The application failed to provide the EDMA resources which are required by the CBUFF driver to support the application use case. More...
 
#define CBUFF_ELIMIT   (CBUFF_ERRNO_BASE-6)
 Error Code: Limit exceeded. More...
 

Typedefs

typedef void * CBUFF_Handle
 A handle that is returned from a CBUFF_open() call. More...
 
typedef void * CBUFF_SessionHandle
 A handle that is returned from a CBUFF Session. More...
 
typedef uint32_t CBUFF_Interface
 High Speed Interface. More...
 
typedef uint32_t CBUFF_Command
 CBUFF Command. More...
 
typedef uint32_t CBUFF_OutputDataFmt
 Output Data Format. More...
 
typedef uint32_t CBUFF_DataType
 Data Type. More...
 
typedef uint32_t CBUFF_LVDSLaneFmtMap
 LVDS Lane Format Map. More...
 
typedef uint32_t CBUFF_LLType
 CBUFF Linked List Type. More...
 
typedef int32_t(* CBUFF_EDMAChannelAllocateFxn) (CBUFF_EDMAInfo *ptrEDMAInfo, CBUFF_EDMAChannelCfg *ptrEDMAChannelCfg)
 
typedef void(* CBUFF_EDMAChannelFreeFxn) (CBUFF_EDMAChannelCfg *ptrEDMAChannelCfg)
 
typedef void(* CBUFF_FrameDoneCallbackFxn) (CBUFF_SessionHandle sessionHandle)
 
typedef int32_t(* CBUFF_initFxn) (CBUFF_Object *ptrDriverMCB, int32_t *errCode)
 This is the function invoked by the CBUFF driver to initialize the high speed interface. More...
 
typedef int32_t(* CBUFF_deinitFxn) (CBUFF_Object *ptrDriverMCB, int32_t *errCode)
 This is the function invoked by the CBUFF driver to deinitialize and shutdown the high speed interface. More...
 
typedef int32_t(* CBUFF_openFxn) (CBUFF_Session *ptrSession, int32_t *errCode)
 This is the function invoked by the CBUFF driver to open the high speed interface for the specific session. More...
 
typedef int32_t(* CBUFF_closeFxn) (CBUFF_Session *ptrSession, int32_t *errCode)
 This is the function invoked by the CBUFF driver to close the high speed interface for the specific session. More...
 
typedef void(* CBUFF_initLinkListParamsFxn) (CBUFF_Session *ptrSession, CBUFF_LinkListParams *ptrLinkListParams)
 This is the function prototype invoked by the CBUFF Driver to initialize the linked list parameters for each high speed interface. More...
 
typedef void(* CBUFF_finalizeLinkListParamsFxn) (CBUFF_Session *ptrSession, CBUFF_LinkListParams *ptrLinkListParams)
 This is the function prototype invoked by the CBUFF Driver to finalize the linked list parameters for the high speed interface. Once the parameters have been finalized they can be written to the CBUFF IP. More...
 

Functions

void CBUFF_init (void)
 Description
This function initializes the CBUFF module. This function must be called before any other functions are called. More...
 
CBUFF_Handle CBUFF_open (CBUFF_InitCfg *ptrInitCfg, int32_t *errCode)
 Description
The function Configures CBUFF peripheral with user provided configuration. More...
 
CBUFF_SessionHandle CBUFF_createSession (CBUFF_Handle cbuffHandle, CBUFF_SessionCfg *ptrSessionCfg, int32_t *errCode)
 Description
The function creates a session with the specified configuration. More...
 
int32_t CBUFF_close (CBUFF_SessionHandle sessionHandle, int32_t *errCode)
 Description
The function deletes the specific session. More...
 
int32_t CBUFF_deinit (CBUFF_Handle cBuffHandle, int32_t *errCode)
 Description
The function is used to deinitialize and shutdown the CBUFF driver. More...
 
int32_t CBUFF_control (CBUFF_Handle cBuffHandle, CBUFF_Command cmd, void *arg, uint32_t argLen, int32_t *errCode)
 Description
The function is used to get/set information from the CBUFF Driver. More...
 
int32_t CBUFF_activateSession (CBUFF_SessionHandle sessionHandle, int32_t *errCode)
 Description
The function activates the specific CBUFF session. More...
 
int32_t CBUFF_deactivateSession (CBUFF_SessionHandle sessionHandle, int32_t *errCode)
 Description
The function deactivates the specific CBUFF session. More...
 

Variables

CBUFF_Attrs gCbuffAttrs []
 Externally defined driver configuration array. More...
 
CBUFF_Object gCbuffObject []
 Externally defined driver object. More...
 
CBUFF_ObjectgCbuffObjectPtr []
 Externally defined driver object pointer. More...
 
uint32_t gCbuffConfigNum
 Externally defined driver configuration array size. More...
 

Variable Documentation

◆ gCbuffAttrs

CBUFF_Attrs gCbuffAttrs[]
extern

Externally defined driver configuration array.

◆ gCbuffObject

CBUFF_Object gCbuffObject[]
extern

Externally defined driver object.

◆ gCbuffObjectPtr

CBUFF_Object* gCbuffObjectPtr[]
extern

Externally defined driver object pointer.

◆ gCbuffConfigNum

uint32_t gCbuffConfigNum
extern

Externally defined driver configuration array size.