#include <mpcs.h>
Go to the source code of this file.
Data Structures | |||||||||||||||||||||||||||||||||||||||||||
struct | RingIO_Attrs_tag | ||||||||||||||||||||||||||||||||||||||||||
struct | RingIO_Client_tag | ||||||||||||||||||||||||||||||||||||||||||
struct | RingIO_ControlStruct_tag | ||||||||||||||||||||||||||||||||||||||||||
struct | RingIO_Entry_tag | ||||||||||||||||||||||||||||||||||||||||||
struct | RingIO_Ctrl_tag | ||||||||||||||||||||||||||||||||||||||||||
Defines | |||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_SUCCESS (SYS_OK) | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_BASE (SYS_EUSER) | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_SPENDINGATTRIBUTE (RINGIO_BASE + 0x1) | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_EFAILURE (RINGIO_BASE + 0x2) | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_EBUFWRAP (RINGIO_BASE + 0x3) | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_EBUFEMPTY (RINGIO_BASE + 0x4) | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_EBUFFULL (RINGIO_BASE + 0x5) | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_EPENDINGDATA (RINGIO_BASE + 0x6) | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_EVARIABLEATTRIBUTE (RINGIO_BASE + 0x7) | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_EALREADYEXISTS (RINGIO_BASE + 0x8) | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_ENOTCONTIGUOUSDATA (RINGIO_BASE + 0x9) | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_EWRONGSTATE (RINGIO_BASE + 0xA) | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_NAME_MAX_LEN DSP_MAX_STRLEN | ||||||||||||||||||||||||||||||||||||||||||
Maximum length of RingIO strings. ============================================================================. | |||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_INVALID_ATTR (Uint16) 0xFFFF | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_DATABUF_CACHEUSE 0x1 | ||||||||||||||||||||||||||||||||||||||||||
These constants denote the flags provided while opening the RingIO. ============================================================================. | |||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_ATTRBUF_CACHEUSE 0x2 | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_CONTROL_CACHEUSE 0x4 | ||||||||||||||||||||||||||||||||||||||||||
#define | RINGIO_NEED_EXACT_SIZE 0x8 | ||||||||||||||||||||||||||||||||||||||||||
Typedefs | |||||||||||||||||||||||||||||||||||||||||||
RingIO_Handle | |||||||||||||||||||||||||||||||||||||||||||
This type is used for the handle to the RingIO Client structure. ============================================================================ ============================================================================ | |||||||||||||||||||||||||||||||||||||||||||
typedef Ptr | RingIO_Handle | ||||||||||||||||||||||||||||||||||||||||||
RingIO_ControlHandle | |||||||||||||||||||||||||||||||||||||||||||
This type is used for the handle to the Shared Control structure. ============================================================================ ============================================================================ | |||||||||||||||||||||||||||||||||||||||||||
typedef struct RingIO_ControlStruct_tag * | RingIO_ControlHandle | ||||||||||||||||||||||||||||||||||||||||||
RingIO_BufPtr | |||||||||||||||||||||||||||||||||||||||||||
This type is used for the Buffer Pointer Type. ============================================================================ ============================================================================ | |||||||||||||||||||||||||||||||||||||||||||
typedef Ptr | RingIO_BufPtr | ||||||||||||||||||||||||||||||||||||||||||
RingIO_NotifyParam | |||||||||||||||||||||||||||||||||||||||||||
This type is used for the Notification Parameter. ============================================================================ ============================================================================ | |||||||||||||||||||||||||||||||||||||||||||
typedef Ptr | RingIO_NotifyParam | ||||||||||||||||||||||||||||||||||||||||||
RingIO_NotifyMsg | |||||||||||||||||||||||||||||||||||||||||||
This type is used for the Notification Message. ============================================================================ ============================================================================ | |||||||||||||||||||||||||||||||||||||||||||
typedef Uint16 | RingIO_NotifyMsg | ||||||||||||||||||||||||||||||||||||||||||
RingIO_NotifyFunc | |||||||||||||||||||||||||||||||||||||||||||
Signature of function used as the Notification function. ============================================================================
| |||||||||||||||||||||||||||||||||||||||||||
typedef Void(* | RingIO_NotifyFunc )(RingIO_Handle handle, RingIO_NotifyParam param, RingIO_NotifyMsg msg) | ||||||||||||||||||||||||||||||||||||||||||
RingIO_Attrs | |||||||||||||||||||||||||||||||||||||||||||
This structure defines the RingIO Creation Parameters. ============================================================================
| |||||||||||||||||||||||||||||||||||||||||||
typedef struct RingIO_Attrs_tag | RingIO_Attrs | ||||||||||||||||||||||||||||||||||||||||||
RingIO_ControlStruct | |||||||||||||||||||||||||||||||||||||||||||
This structure defines the RingIO Control Structure. This structure is stored in shared memory and is accessible by all clients. The control structure supports a single reader and a single writer for the ring buffer. ============================================================================
| |||||||||||||||||||||||||||||||||||||||||||
typedef struct RingIO_ControlStruct_tag | RingIO_ControlStruct | ||||||||||||||||||||||||||||||||||||||||||
RingIO_Client | |||||||||||||||||||||||||||||||||||||||||||
This structure defines the RingIO Shared memory client structure. The RingIO Reader or Writer state information is stored in this structure ============================================================================
| |||||||||||||||||||||||||||||||||||||||||||
typedef struct RingIO_Client_tag | RingIO_Client | ||||||||||||||||||||||||||||||||||||||||||
RingIO_Entry | |||||||||||||||||||||||||||||||||||||||||||
Entry structure for the RingIO data transport ============================================================================
| |||||||||||||||||||||||||||||||||||||||||||
typedef struct RingIO_Entry_tag | RingIO_Entry | ||||||||||||||||||||||||||||||||||||||||||
Enumerations | |||||||||||||||||||||||||||||||||||||||||||
RingIO_NotifyType | |||||||||||||||||||||||||||||||||||||||||||
Enumeration of RingIO notification types. ============================================================================
| |||||||||||||||||||||||||||||||||||||||||||
enum | RingIO_NotifyType { RINGIO_NOTIFICATION_NONE = 0, RINGIO_NOTIFICATION_ALWAYS, RINGIO_NOTIFICATION_ONCE, RINGIO_NOTIFICATION_HDWRFIFO_ALWAYS, RINGIO_NOTIFICATION_HDWRFIFO_ONCE, RINGIO_NOTIFICATION_NONE = 0u, RINGIO_NOTIFICATION_ALWAYS, RINGIO_NOTIFICATION_ONCE, RINGIO_NOTIFICATION_HDWRFIFO_ALWAYS, RINGIO_NOTIFICATION_HDWRFIFO_ONCE } | ||||||||||||||||||||||||||||||||||||||||||
RingIO_OpenMode | |||||||||||||||||||||||||||||||||||||||||||
Enumeration of RingIO open modes. ============================================================================
| |||||||||||||||||||||||||||||||||||||||||||
enum | RingIO_OpenMode { RINGIO_MODE_READ = 0, RINGIO_MODE_WRITE, RINGIO_MODE_READ = 0u, RINGIO_MODE_WRITE } | ||||||||||||||||||||||||||||||||||||||||||
RingIO_TransportType | |||||||||||||||||||||||||||||||||||||||||||
Enumeration of RingIO transport types. ============================================================================
| |||||||||||||||||||||||||||||||||||||||||||
enum | RingIO_TransportType { RINGIO_TRANSPORT_DSP_DSP = 1, RINGIO_TRANSPORT_GPP_DSP, RINGIO_TRANSPORT_DSP_DSP = 1u, RINGIO_TRANSPORT_GPP_DSP } | ||||||||||||||||||||||||||||||||||||||||||
RingIO_Ctrl | |||||||||||||||||||||||||||||||||||||||||||
This structure defines the control structure required by the RINGIO component. It contains information about all RINGIO objects shared between the GPP and a specific DSP. ============================================================================
| |||||||||||||||||||||||||||||||||||||||||||
#define | GET_ENTRY_ID(client) ((client)->virtControlHandle->entryId) | ||||||||||||||||||||||||||||||||||||||||||
Gets the entry id of the RingIO ============================================================================. | |||||||||||||||||||||||||||||||||||||||||||
#define | GET_LOCK_POOL_ID(entryId) (RingIO_ctrlPtr->entry [entryId].lockPoolId) | ||||||||||||||||||||||||||||||||||||||||||
Gets the pool id from which the MPCS lock object structure has been allocated. ============================================================================. | |||||||||||||||||||||||||||||||||||||||||||
#define | GET_CTRL_POOL_ID(entryId) (RingIO_ctrlPtr->entry [entryId].ctrlPoolId) | ||||||||||||||||||||||||||||||||||||||||||
Gets the pool id from which the RingIO control structure has been validated. ============================================================================. | |||||||||||||||||||||||||||||||||||||||||||
#define | GET_DATA_POOL_ID(entryId) (RingIO_ctrlPtr->entry [entryId].dataPoolId) | ||||||||||||||||||||||||||||||||||||||||||
Gets the pool id from which the RingIO data buffer has been allocated. ============================================================================. | |||||||||||||||||||||||||||||||||||||||||||
#define | GET_ATTR_POOL_ID(entryId) (RingIO_ctrlPtr->entry [entryId].attrPoolId) | ||||||||||||||||||||||||||||||||||||||||||
Gets the pool id from which the RingIO attr buffer has been allocated. ============================================================================. | |||||||||||||||||||||||||||||||||||||||||||
#define | IS_WRITER(client) ((client)->openMode == RINGIO_MODE_WRITE) | ||||||||||||||||||||||||||||||||||||||||||
Check if client is a writer. ============================================================================. | |||||||||||||||||||||||||||||||||||||||||||
#define | IS_READER(client) ((client)->openMode == RINGIO_MODE_READ) | ||||||||||||||||||||||||||||||||||||||||||
Check if client is a reader. ============================================================================. | |||||||||||||||||||||||||||||||||||||||||||
#define | GET_CUR_ATTR_END(control) ((control)->curAttrBufEnd + 1) | ||||||||||||||||||||||||||||||||||||||||||
Get Current attr buffer end. ============================================================================. | |||||||||||||||||||||||||||||||||||||||||||
#define | GET_CUR_DATA_END(control) ((control)->curBufEnd + 1) | ||||||||||||||||||||||||||||||||||||||||||
Get Current data buffer end. ============================================================================. | |||||||||||||||||||||||||||||||||||||||||||
#define | ADJUST_MODULO(start, size, bufSize) (((start) + (size)) % bufSize) | ||||||||||||||||||||||||||||||||||||||||||
Modulo operation ============================================================================. | |||||||||||||||||||||||||||||||||||||||||||
#define | SIZEOF_ATTR(size) (sizeof (RingIO_Attr) + (size)) | ||||||||||||||||||||||||||||||||||||||||||
Size of RingIO attributes ============================================================================. | |||||||||||||||||||||||||||||||||||||||||||
typedef struct RingIO_Ctrl_tag | RingIO_Ctrl |
#define RINGIO_SUCCESS (SYS_OK) |
#define RINGIO_BASE (SYS_EUSER) |
#define RINGIO_SPENDINGATTRIBUTE (RINGIO_BASE + 0x1) |
#define RINGIO_EFAILURE (RINGIO_BASE + 0x2) |
#define RINGIO_EBUFWRAP (RINGIO_BASE + 0x3) |
#define RINGIO_EBUFEMPTY (RINGIO_BASE + 0x4) |
#define RINGIO_EBUFFULL (RINGIO_BASE + 0x5) |
#define RINGIO_EPENDINGDATA (RINGIO_BASE + 0x6) |
#define RINGIO_EVARIABLEATTRIBUTE (RINGIO_BASE + 0x7) |
#define RINGIO_EALREADYEXISTS (RINGIO_BASE + 0x8) |
#define RINGIO_ENOTCONTIGUOUSDATA (RINGIO_BASE + 0x9) |
#define RINGIO_EWRONGSTATE (RINGIO_BASE + 0xA) |
#define RINGIO_NAME_MAX_LEN DSP_MAX_STRLEN |
Maximum length of RingIO strings. ============================================================================.
============================================================================
#define RINGIO_INVALID_ATTR (Uint16) 0xFFFF |
#define RINGIO_DATABUF_CACHEUSE 0x1 |
These constants denote the flags provided while opening the RingIO. ============================================================================.
============================================================================
#define RINGIO_ATTRBUF_CACHEUSE 0x2 |
#define RINGIO_CONTROL_CACHEUSE 0x4 |
#define RINGIO_NEED_EXACT_SIZE 0x8 |
#define GET_ENTRY_ID | ( | client ) | ((client)->virtControlHandle->entryId) |
Gets the entry id of the RingIO ============================================================================.
============================================================================
#define GET_LOCK_POOL_ID | ( | entryId ) | (RingIO_ctrlPtr->entry [entryId].lockPoolId) |
Gets the pool id from which the MPCS lock object structure has been allocated. ============================================================================.
============================================================================
#define GET_CTRL_POOL_ID | ( | entryId ) | (RingIO_ctrlPtr->entry [entryId].ctrlPoolId) |
Gets the pool id from which the RingIO control structure has been validated. ============================================================================.
============================================================================
#define GET_DATA_POOL_ID | ( | entryId ) | (RingIO_ctrlPtr->entry [entryId].dataPoolId) |
Gets the pool id from which the RingIO data buffer has been allocated. ============================================================================.
============================================================================
#define GET_ATTR_POOL_ID | ( | entryId ) | (RingIO_ctrlPtr->entry [entryId].attrPoolId) |
Gets the pool id from which the RingIO attr buffer has been allocated. ============================================================================.
============================================================================
#define IS_WRITER | ( | client ) | ((client)->openMode == RINGIO_MODE_WRITE) |
Check if client is a writer. ============================================================================.
============================================================================
#define IS_READER | ( | client ) | ((client)->openMode == RINGIO_MODE_READ) |
Check if client is a reader. ============================================================================.
============================================================================
#define GET_CUR_ATTR_END | ( | control ) | ((control)->curAttrBufEnd + 1) |
Get Current attr buffer end. ============================================================================.
============================================================================
#define GET_CUR_DATA_END | ( | control ) | ((control)->curBufEnd + 1) |
Get Current data buffer end. ============================================================================.
============================================================================
#define ADJUST_MODULO | ( | start, | |
size, | |||
bufSize | |||
) | (((start) + (size)) % bufSize) |
Modulo operation ============================================================================.
============================================================================
#define SIZEOF_ATTR | ( | size ) | (sizeof (RingIO_Attr) + (size)) |
Size of RingIO attributes ============================================================================.
============================================================================
typedef Ptr RingIO_Handle |
typedef struct RingIO_ControlStruct_tag* RingIO_ControlHandle |
typedef Ptr RingIO_BufPtr |
typedef Ptr RingIO_NotifyParam |
typedef Uint16 RingIO_NotifyMsg |
typedef Void(* RingIO_NotifyFunc)(RingIO_Handle handle, RingIO_NotifyParam param, RingIO_NotifyMsg msg) |
typedef struct RingIO_Attrs_tag RingIO_Attrs |
typedef struct RingIO_ControlStruct_tag RingIO_ControlStruct |
typedef struct RingIO_Client_tag RingIO_Client |
typedef struct RingIO_Entry_tag RingIO_Entry |
typedef struct RingIO_Ctrl_tag RingIO_Ctrl |
enum RingIO_NotifyType |
enum RingIO_OpenMode |
enum RingIO_TransportType |