Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

gpp/inc/ringiodefs.h File Reference

#include <dsplink.h>
#include <archdefs.h>
#include <mpcsdefs.h>

Include dependency graph for gpp/inc/ringiodefs.h:

This graph shows which files directly or indirectly include this file:

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

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.

============================================================================

Parameters:
isInitialized Flag to indicate if this region was initialized
dspId ID of the DSP with which the RingIO Region is shared
maxEntries Maximum number of RingIO instances supported by the RingIO.
ipsId ID of the IPS to be used.
ipsEventNo IPS Event number associated with the RingIO.
dspAddrEntry Pointer to array in DSP address space of RINGIO objects that can be created.
padding Padding.
lockObj Lock used to protect the shared RingIO_Ctrl from multiple simultaneous accesses. ============================================================================


#define RingIOEntry   RingIO_Entry
#define RingIORegion   RingIO_Ctrl
#define RingIO_SendNotify   RingIO_sendNotify
typedef RingIO_Ctrl_tag RingIO_Ctrl

RingIO_Handle

This type is used for the handle to the RingIO Client structure. ============================================================================

============================================================================

typedef Void * RingIO_Handle

RingIO_ControlHandle

This type is used for the handle to the Shared Control structure. ============================================================================

============================================================================

typedef RingIO_ControlStruct_tagRingIO_ControlHandle

RingIO_BufPtr

This type is used for the Buffer Pointer Type. ============================================================================

============================================================================

typedef Void * RingIO_BufPtr

RingIO_NotifyParam

This type is used for the Notification Parameter. ============================================================================

============================================================================

typedef Void * 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.

============================================================================

Parameters:
handle Handle to the RingIO.
param Parameter used while registering the notification.
msg Message passed along with notification.
Returns:
None. ============================================================================


typedef Void(* RingIO_NotifyFunc )(RingIO_Handle handle, RingIO_NotifyParam param, RingIO_NotifyMsg msg)

RingIO_Attrs

This structure defines the RingIO Creation Parameters.

============================================================================

Parameters:
transportType Transport type - This specifies whether the data transport is between DSP<-> DSP or DSP<->ARM.
ctrlPoolId Pool to be used to allocate memory for control structure.
dataPoolId Pool to be used to allocate memory for data buffer.
attrPoolId Pool to be used to allocate memory for attribute buffer.
lockPoolId Pool to be used to allocate memory for lock structure.
dataBufSize Data Buffer Size in bytes.
footBufSize Footer area for providing contiguous buffer to a reader.
attrBufSize Attribute buffer size in bytes. ============================================================================


typedef RingIO_Attrs_tag RingIO_Attrs

RingIO_ControlStruct

Forward declaration of RingIO_ControlStruct. ============================================================================

============================================================================

typedef 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

============================================================================

Parameters:
procId Processor Id where the client is executing
openMode Indicates whether the client is a reader or writer
pDataStart Virtual start address of the data buffer
pAttrStart Virtual start address of the attr buffer
acqStart Start offset of data buffer that has been acquired by the application.
acqSize Size of data that has been acquired
acqAttrStart Start offset of the acquired attribute buffer
acqAttrSize Size of attribute data that has been acquired
notifyType Notification type
notifyFunc Notification function for this client
notifyParam Parameter to the Notification function
notifyWaterMark Watermark that should be satisfied before notification is done
flags Counting bits from MSB to LSB 0....31 B31 - Denotes whether the client uses cache for accessing the data buffer (dataBufCacheUseFlag) B30 - Denotes whether the client uses cache for accessing the attribute buffer (attrBufCacheUseFlag) B29 - Denotes whether the client uses cache for accessing the control struct (controlStructCacheFlag) B28 - Denotes whether requests for acquire buffer should always be satisfied. If a contiguous request could not be satisfied because of the buffer wrap, we need to mark an early end and provide only a contiguous buffer (contiguousBufFlag)
virtControlHandle Handle to the Control structure. Apps do not have direct access to the control structure. The Control structure can only be accessed through the client handle
virtLockHandle Virtual (GPP) address of the lock that should be used to protect the Control structure from multiple accesses.
isValid Indicates whether the Client is initialized
notifyFlag Denotes whether notification needs to be done or not
refCount Denotes whether RingIO has been re-opened or not
padding Padding. ============================================================================


typedef RingIO_Client_tag RingIO_Client

RingIO_Entry

Entry structure for the RingIO data transport

============================================================================

Parameters:
name System wide unique identifier for the RingIO
phyControl Physical (DSP) address of the Control structure for the RingIO.
virtControl Virtual (GPP) address of the Control structure for the RingIO.
ownerProcId Creator's processor ID of this ringio.
ctrlPoolId Pool to be used to allocate memory for control structure.
dataPoolId Pool to be used to allocate memory for data buffer.
attrPoolId Pool to be used to allocate memory for attribute buffer.
lockPoolId Pool to be used to allocate memory for lock structure.
padding Padding. ============================================================================


typedef RingIO_Entry_tag RingIO_Entry

RingIO_OpenMode

Enumeration of RingIO open modes.

============================================================================

Parameters:
RINGIO_MODE_READ Reader mode.
RINGIO_MODE_WRITE Writer mode. ============================================================================


enum  RingIO_OpenMode { RINGIO_MODE_READ = 0u, RINGIO_MODE_WRITE }

RingIO_TransportType

Enumeration of RingIO transport types.

============================================================================

Parameters:
RINGIO_TRANSPORT_DSP_DSP Intra-DSP transport.
RINGIO_TRANSPORT_GPP_DSP GPP<->DSP transport. ============================================================================


enum  RingIO_TransportType { RINGIO_TRANSPORT_DSP_DSP = 1u, RINGIO_TRANSPORT_GPP_DSP }

RingIO_NotifyType

Enumeration of RingIO notification types.

============================================================================

Parameters:
RINGIO_NOTIFICATION_NONE No notification required.
RINGIO_NOTIFICATION_ALWAYS Notify whenever the other side sends data/frees up space.
RINGIO_NOTIFICATION_ONCE Notify when the other side sends data/frees up space. Once the notification is done, the notification is disabled until it is enabled again
RINGIO_NOTIFICATION_HDWRFIFO_ALWAYS Notify whenever the other side sends data/frees up space. This notification is never disabled.
RINGIO_NOTIFICATION_HDWRFIFO_ONCE Notify when the other side sends data/frees up space. Once the notification is done, the notification is disabled until it is enabled again. The notification is enabled once the watermark is crossed and does not require buffer to get full/empty.
============================================================================

enum  RingIO_NotifyType {
  RINGIO_NOTIFICATION_NONE = 0u, RINGIO_NOTIFICATION_ALWAYS, RINGIO_NOTIFICATION_ONCE, RINGIO_NOTIFICATION_HDWRFIFO_ALWAYS,
  RINGIO_NOTIFICATION_HDWRFIFO_ONCE
}

Defines

#define RINGIODEFS_H
#define RINGIO_INVALID_ATTR   (Uint16) 0xFFFFl
 This constant denotes an invalid attribute type. This should not be used for any valid attribute. ============================================================================.
#define RINGIO_DATABUF_CACHEUSE   0x1u
 These constants denote the flags provided while opening the RingIO. ============================================================================.
#define RINGIO_ATTRBUF_CACHEUSE   0x2u
#define RINGIO_CONTROL_CACHEUSE   0x4u
#define RINGIO_NEED_EXACT_SIZE   0x8u
#define RINGIO_NAME_MAX_LEN   32u
 Maximum length of RingIO strings. ============================================================================.


Define Documentation

#define RINGIO_ATTRBUF_CACHEUSE   0x2u
 

Definition at line 75 of file gpp/inc/ringiodefs.h.

#define RINGIO_CONTROL_CACHEUSE   0x4u
 

Definition at line 76 of file gpp/inc/ringiodefs.h.

#define RINGIO_DATABUF_CACHEUSE   0x1u
 

These constants denote the flags provided while opening the RingIO. ============================================================================.

============================================================================

Constant:
RINGIO_DATABUF_CACHEUSE, RINGIO_ATTRBUF_CACHEUSE, RINGIO_ATTRBUF_CACHEUSE, RINGIO_NEED_EXACT_SIZE

Definition at line 74 of file gpp/inc/ringiodefs.h.

#define RINGIO_INVALID_ATTR   (Uint16) 0xFFFFl
 

This constant denotes an invalid attribute type. This should not be used for any valid attribute. ============================================================================.

============================================================================

Constant:
RINGIO_INVALID_ATTR

Definition at line 65 of file gpp/inc/ringiodefs.h.

#define RINGIO_NAME_MAX_LEN   32u
 

Maximum length of RingIO strings. ============================================================================.

============================================================================

Macro:
RINGIO_NAME_MAX_LEN

Definition at line 85 of file gpp/inc/ringiodefs.h.

#define RINGIO_NEED_EXACT_SIZE   0x8u
 

Definition at line 77 of file gpp/inc/ringiodefs.h.

#define RingIO_SendNotify   RingIO_sendNotify
 

============================================================================

Deprecated:
The deprecated API RingIO_SendNotify has been replaced with RingIO_sendNotify
============================================================================

Definition at line 528 of file gpp/inc/ringiodefs.h.

#define RINGIODEFS_H
 

Definition at line 44 of file gpp/inc/ringiodefs.h.

#define RingIOEntry   RingIO_Entry
 

============================================================================

Deprecated:
The deprecated data structure RingIOEntry has been replaced with RingIOEntry
============================================================================

Definition at line 512 of file gpp/inc/ringiodefs.h.

#define RingIORegion   RingIO_Ctrl
 

============================================================================

Deprecated:
The deprecated data structure RingIORegion has been replaced with RingIO_Ctrl
============================================================================

Definition at line 520 of file gpp/inc/ringiodefs.h.


Typedef Documentation

typedef struct RingIO_Attrs_tag RingIO_Attrs
 

typedef Void* RingIO_BufPtr
 

Definition at line 176 of file gpp/inc/ringiodefs.h.

typedef struct RingIO_Client_tag RingIO_Client
 

typedef struct RingIO_ControlStruct_tag* RingIO_ControlHandle
 

Definition at line 168 of file gpp/inc/ringiodefs.h.

typedef struct RingIO_ControlStruct_tag RingIO_ControlStruct
 

Definition at line 256 of file gpp/inc/ringiodefs.h.

typedef struct RingIO_Ctrl_tag RingIO_Ctrl
 

============================================================================

Deprecated:
The deprecated data structure RingIOEntry has been replaced with RingIOEntry
============================================================================

typedef struct RingIO_Entry_tag RingIO_Entry
 

typedef Void* RingIO_Handle
 

Definition at line 160 of file gpp/inc/ringiodefs.h.

typedef Void(* RingIO_NotifyFunc)(RingIO_Handle handle, RingIO_NotifyParam param, RingIO_NotifyMsg msg)
 

Definition at line 210 of file gpp/inc/ringiodefs.h.

typedef Uint16 RingIO_NotifyMsg
 

Definition at line 193 of file gpp/inc/ringiodefs.h.

typedef Void* RingIO_NotifyParam
 

Definition at line 184 of file gpp/inc/ringiodefs.h.


Enumeration Type Documentation

enum RingIO_NotifyType
 

Enumerator:
RINGIO_NOTIFICATION_NONE 
RINGIO_NOTIFICATION_ALWAYS 
RINGIO_NOTIFICATION_ONCE 
RINGIO_NOTIFICATION_HDWRFIFO_ALWAYS 
RINGIO_NOTIFICATION_HDWRFIFO_ONCE 

Definition at line 144 of file gpp/inc/ringiodefs.h.

enum RingIO_OpenMode
 

Enumerator:
RINGIO_MODE_READ 
RINGIO_MODE_WRITE 

Definition at line 99 of file gpp/inc/ringiodefs.h.

00099             {
00100     RINGIO_MODE_READ = 0u,
00101     RINGIO_MODE_WRITE
00102 } RingIO_OpenMode ;

enum RingIO_TransportType
 

Enumerator:
RINGIO_TRANSPORT_DSP_DSP 
RINGIO_TRANSPORT_GPP_DSP 

Definition at line 115 of file gpp/inc/ringiodefs.h.


Generated on Fri Jul 16 14:34:10 2010 for DSP/BIOSLink by  doxygen 1.4.4