module ti.syslink.ipc.rtos.FrameQ
C synopsis target-domain sourced in ti/syslink/ipc/rtos/FrameQ.xdc
#include <ti/syslink/ipc/rtos/FrameQ.h>
Functions
Void
Functions common to all IFrameQ modules
Int32 
Int32 
Int32 
Int32 
Int32 
Int32 
Int32 
Int32 
UInt32 
Ptr 
UInt32 
UInt32 
UInt32 
Int32 
Int32 
Int32 
FrameQ_getv// (FrameQ_Handle handle, IFrameQ_Frame pframe[], UInt32 filledQueueId[], UInt8 *numFrames);
Int32 
Int32 
Int32 
Int32 
Int32 
Int32 
Int32 
Int32 
Int32 
Functions common to all target instances
Functions common to all target modules
Defines
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
Typedefs
typedef struct
typedef struct
typedef struct
typedef enum
typedef struct
typedef struct
typedef struct
typedef struct
typedef FrameQ_Object *
typedef enum
typedef Void 
typedef struct
typedef enum
typedef struct
typedef enum
typedef struct
typedef struct
typedef struct
typedef struct
Constants
extern const Assert_Id 
extern const Assert_Id 
extern const Assert_Id 
extern const Assert_Id 
extern const Assert_Id 
extern const Assert_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const Error_Id 
extern const NameServer_Handle 
extern const Bool 
 
 
const FrameQ_CACHE_LINESIZE

Cache line size

C synopsis target-domain
#define FrameQ_CACHE_LINESIZE (UInt32)128
 
 
const FrameQ_DYNAMIC_CREATE

Type of creation

C synopsis target-domain
#define FrameQ_DYNAMIC_CREATE (UInt32)0x4
 
 
const FrameQ_DYNAMIC_CREATE_USEDREGION

Type of creation

C synopsis target-domain
#define FrameQ_DYNAMIC_CREATE_USEDREGION (UInt32)0x8
 
 
const FrameQ_DYNAMIC_OPEN

Type of open

C synopsis target-domain
#define FrameQ_DYNAMIC_OPEN (UInt32)0x20
 
 
const FrameQ_FRAMEBUF_CPUACCESSFLAGS_BITOFFSET
C synopsis target-domain
#define FrameQ_FRAMEBUF_CPUACCESSFLAGS_BITOFFSET (UInt32)16
 
 
const FrameQ_INVALID

Type of open

C synopsis target-domain
#define FrameQ_INVALID (UInt32)0xFF
 
 
const FrameQ_MAXFILLEDQUEUS_FOR_READER

Max filled queues for a reader client of the FrameQ instance.

C synopsis target-domain
#define FrameQ_MAXFILLEDQUEUS_FOR_READER (UInt32)16
 
 
const FrameQ_MAX_INSTANCES

Maximum number of instances managed by FrameQ module

C synopsis target-domain
#define FrameQ_MAX_INSTANCES (UInt32)64
 
 
const FrameQ_MAX_INST_READERS

Maximum number of reader clients supported by an instance

C synopsis target-domain
#define FrameQ_MAX_INST_READERS (UInt32)2
 
 
const FrameQ_MAX_NAMELEN

Maximum length of the name strings

C synopsis target-domain
#define FrameQ_MAX_NAMELEN (UInt32)32
 
 
const FrameQ_NOTIFY_RESERVED_EVENTNO

Notify Event Number to be used by FrameQ module

C synopsis target-domain
#define FrameQ_NOTIFY_RESERVED_EVENTNO (UInt16)1
 
 
const FrameQ_STATIC_CREATE

Type of creation

C synopsis target-domain
#define FrameQ_STATIC_CREATE (UInt32)0x1
 
 
const FrameQ_STATIC_CREATE_USEDREGION

Type of creation

C synopsis target-domain
#define FrameQ_STATIC_CREATE_USEDREGION (UInt32)0x2
 
 
const FrameQ_STATIC_OPEN

Type of open

C synopsis target-domain
#define FrameQ_STATIC_OPEN (UInt32)0x10
 
 
const FrameQ_VERSION
C synopsis target-domain
#define FrameQ_VERSION (UInt32)1
 
 
enum FrameQ_CpuAccessFlags

Enumeration of CPU access flags for frame buffers. For frame headers CPUACCESS is assumed to be TRUE

C synopsis target-domain
typedef enum FrameQ_CpuAccessFlags {
    FrameQ_FRAMEBUF0_CPUACCESS,
    FrameQ_FRAMEBUF1_CPUACCESS,
    FrameQ_FRAMEBUF2_CPUACCESS,
    FrameQ_FRAMEBUF3_CPUACCESS,
    FrameQ_FRAMEBUF4_CPUACCESS,
    FrameQ_FRAMEBUF5_CPUACCESS,
    FrameQ_FRAMEBUF6_CPUACCESS,
    FrameQ_FRAMEBUF7_CPUACCESS
} FrameQ_CpuAccessFlags;
 
VALUES
FRAMEBUF0_CPUACCESS — If specified first frame buffer is accessed through CPU(direct memory access).
FRAMEBUF1_CPUACCESS — If specified second frame buffer is accessed through CPU(direct memory access).
FRAMEBUF2_CPUACCESS — If specified third frame buffer is accessed through CPU(direct memory access).
FRAMEBUF3_CPUACCESS — If specified fourth frame buffer is accessed through CPU(direct memory access).
FRAMEBUF4_CPUACCESS — If specified fifth frame buffer is accessed through CPU(direct memory access).
FRAMEBUF5_CPUACCESS — If specified sixth frame buffer is accessed through CPU(direct memory access).
FRAMEBUF6_CPUACCESS — If specified seventh frame buffer is accessed through CPU(direct memory access).
FRAMEBUF7_CPUACCESS — If specified eigth frame buffer is accessed through CPU(direct memory access).
 
enum FrameQ_Interface

Enumeration of FrameQ interface types.Denotes different implementation types

C synopsis target-domain
typedef enum FrameQ_Interface {
    FrameQ_INTERFACE_SHAREDMEM,
    FrameQ_INTERFACE_NONE
} FrameQ_Interface;
 
VALUES
INTERFACE_SHAREDMEM — FrameQ implementation (FrameQ_ShMem Implementation) on shared memory.
 
enum FrameQ_NotifyType
C synopsis target-domain
typedef enum FrameQ_NotifyType {
    FrameQ_NOTIFICATION_NONE,
    FrameQ_NOTIFICATION_ALWAYS,
    FrameQ_NOTIFICATION_ONCE,
    FrameQ_NOTIFICATION_HDWRFIFO_ALWAYS,
    FrameQ_NOTIFICATION_HDWRFIFO_ONCE
} FrameQ_NotifyType;
 
VALUES
NOTIFICATION_NONE — No notification required.
NOTIFICATION_ALWAYS — Notify whenever the other client sends data/frees up space.
NOTIFICATION_ONCE — Notify when the other side sends data/frees up buffer. Once the notification is done, the notification is disabled until it is enabled again.
NOTIFICATION_HDWRFIFO_ALWAYS — Notify whenever the other side sends data/frees up space. This notification is never disabled.
NOTIFICATION_HDWRFIFO_ONCE — Notify when the other side sends data/frees up buffer. 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..
DETAILS
Enumeration of Client notifyMgr notification types..
BRIEF
Enumerates the notification types used by SysLink ipc components.
 
enum FrameQ_OpenMode

Enumeration of FrameQ open modes

C synopsis target-domain
typedef enum FrameQ_OpenMode {
    FrameQ_MODE_NONE,
    FrameQ_MODE_WRITER,
    FrameQ_MODE_READER
} FrameQ_OpenMode;
 
VALUES
MODE_WRITER — if specifed in openParams, open call returns a writer handle.
MODE_READER — if specifed in params, open call returns a reader handle.
 
typedef FrameQ_Frame
C synopsis target-domain
typedef IFrame_FrameHeader *FrameQ_Frame;
 
 
typedef FrameQ_NotifyFunc

Prototype of the FrameQ call back function

C synopsis target-domain
typedef Void (*FrameQ_NotifyFunc)(IFrameQ_Handle,Ptr,UInt16);
 
 
struct FrameQ_Attrs

Shared control strucrue for the instance attributes

C synopsis target-domain
typedef struct FrameQ_Attrs {
    UInt32 status;
    UInt32 version;
    UInt32 localProtect;
    UInt32 remoteProtect;
    Ptr gateMPAddr;
    UInt32 numReaders;
    UInt32 numActiveReaders;
    UInt32 numQueues;
    UInt32 primaryQueueId;
    UInt32 frmQBufMgrId;
} FrameQ_Attrs;
 
FIELDS
status — flag denoting whether instance is created or not.
version — Version of the instance.
localProtect — Local protection type.See GateMP.LocalProtect
remoteProtect — Remote protection types.See GateMP.RemoteProtect
gateMPAddr — GateMP address (shm safe)
numReaders — Max reader clients supported for this instance.
numActiveReaders — Number of readers currenty opened for the instance.
numQueues — Number of queues cofigured for each reader.
primaryQueueId — QueueId to which writer sends frames if there are no active readers or only one reader exist.
frmQBufMgrId — Id of FrameQBufmgr used by this instance.
frmQueue — Array of frame queues supported for this instance.
 
struct FrameQ_CommonOpenParams

Structure defining common instance open parameters for the FrameQ module.Should be first element in the open params strcture of the actual implementation

C synopsis target-domain
typedef struct FrameQ_CommonOpenParams {
    String name;
    Ptr sharedAddr;
    UInt32 openMode;
    UInt32 cpuAccessFlags;
} FrameQ_CommonOpenParams;
 
FIELDS
name — Name of the instance.
sharedAddr — virtual address of the instance shared control structure.
openMode — Mode of the client
cpuAccessFlags — Flag to specify if Frame buffers are accessed through CPU.see CpuAccessFlags.
 
struct FrameQ_Config

module config structure

C synopsis target-domain
typedef struct FrameQ_Config {
    UInt32 eventNo;
    UInt8 maxInstances;
} FrameQ_Config;
 
FIELDS
eventNo — Notify event number used for notification.
 
struct FrameQ_CreateParams

Structure defining common instance parameters for the FrameQ module.Should be the first element in the create params strcture of the actual implementation

C synopsis target-domain
typedef struct FrameQ_CreateParams {
    UInt32 size;
    IFrameQ_Interface ctrlInterfaceType;
    String name;
    Bool openFlag;
} FrameQ_CreateParams;
 
FIELDS
size — Size of the Create params structure(Should be the size of the actual implementation's Create params structure in which this FrameQ_CreateParams is the first element.
interface — type of implementation. See Interface.
name — Name of the instance.
openFlag — Denotes whether create should actually create/open instance.
 
struct FrameQ_FrameBufInfo

Structure of the framebuffer info in frame

C synopsis target-domain
typedef struct FrameQ_FrameBufInfo {
    UInt32 bufPtr;
    UInt32 bufSize;
    UInt32 startOffset;
    UInt32 validSize;
    UInt32 pixelFormat;
    UInt32 height;
    UInt32 width;
    UInt32 stride;
} FrameQ_FrameBufInfo;
 
FIELDS
bufPtr — Pointer to the frame buffer.
bufSize — Size of the buffer.
startOffSet — Start offset in the buffer from where valid data starts.
validSize — Valid size in the buffer from the zeroth offset in the frame buffer.
height — Pointer to the frame buffer.
width — Size of the buffer.
stride — Multiple of page size and needs to be added to Tile start address in order to get the address starting on next row in same tile.
 
struct FrameQ_FrameHeader

Structure of the base frame header. FrameQ maintains list of frames to be retrieved by FrameQ reader client. Application is expected to use Helper API to extract fileds and exteneded header pointer

C synopsis target-domain
typedef struct FrameQ_FrameHeader {
    UInt32 reserved0;
    UInt32 reserved1;
    UInt16 baseHeaderSize;
    UInt16 headerSize;
    UInt32 frmAllocaterId;
    UInt32 frameBufType;
    UInt8 freeFrmQueueNo;
    UInt8 numFrameBuffers;
    IFrame_FrameBufInfo frameBufInfo[1];
} FrameQ_FrameHeader;
 
FIELDS
baseHeaderSize — Size of the base frame header.
headerSize — Size of the frame header(total size of base header and extended header).
frmAllocaterId — Denotes the FrameQBufMgr Id from which frame is allocated.
freeFrmQueueNo — Free quque No from which frame is allocated in FrameQBufMgr.
numFrameBuffers — Number of framebuffers in a frame.
frameBufInfo — Information of Frame buffer. FrameBufInfo
 
struct FrameQ_FrameQueue

Structure to maintain the queue related information

C synopsis target-domain
typedef struct FrameQ_FrameQueue {
    UInt32 readerIndex;
    UInt32 numFrames[IFrameQ_MAXFILLEDQUEUS_FOR_READER];
    Bool isAllocated;
} FrameQ_FrameQueue;
 
FIELDS
readerIndex — Reader identifier.
numFrames — Number of frames available in the queue.
isAllocated — Flag denoting whether queue is allocated to any reader or not.
 
struct FrameQ_NotifyParams

Client notification registration parameter structure

C synopsis target-domain
typedef struct FrameQ_NotifyParams {
    IFrameQ_NotifyType notifyType;
    UInt32 watermark;
    IFrameQ_NotifyFunc cbFxnPtr;
    Ptr cbContext;
    Ptr cbClientHandle;
} FrameQ_NotifyParams;
 
FIELDS
notifyType — notification type.See SysLink.NotifyType.
watermark — Minumum number of free frames required to generate notification Same water mark for all the individual freeFramePools in the set.
cbFxnPtr — Cacll back function.
cbContext — Context pointer that needs to be passed to call back function.
cbClientHandle — Handle that needs to be passed as first arg to call back.Ideally this should be callers client handle.
 
struct FrameQ_ReaderClient

Reader client info structure

C synopsis target-domain
typedef struct FrameQ_ReaderClient {
    UInt32 isValid;
    UInt32 procId;
    UInt32 cacheFlags;
    UInt32 frameQIndex;
    UInt32 notifyId;
    Bool isRegistered;
} FrameQ_ReaderClient;
 
FIELDS
isValid — Denotes whether client is valid or not.
cacheFlags — Cache flags for the frame buffer and frame header.
frameQIndex — frameQueue from which this reader can read the frames.
 
struct FrameQ_WriterClient

Writer client info in shared memory

C synopsis target-domain
typedef struct FrameQ_WriterClient {
    UInt32 isValid;
    UInt32 procId;
    UInt32 cacheFlags;
    Bool isRegistered;
} FrameQ_WriterClient;
 
FIELDS
isValid — Denotes whether client is valid or not.
cacheFlags — Cache flags for the frame buffer and frame header. Shared structure cache flag is specified in the object.
 
config FrameQ_A_InvalidSharedRegionAddr  // module-wide

Assert raised when n invalid shared region address specified

C synopsis target-domain
extern const Assert_Id FrameQ_A_InvalidSharedRegionAddr;
 
 
config FrameQ_A_invalidFrameQBufMgrId  // module-wide

Assert raised when n invalid shared region address specified

C synopsis target-domain
extern const Assert_Id FrameQ_A_invalidFrameQBufMgrId;
 
 
config FrameQ_A_invalidParams  // module-wide

Assert raised when an invalid parameter(s) is passed into a function

C synopsis target-domain
extern const Assert_Id FrameQ_A_invalidParams;
 
 
config FrameQ_A_memoryAllocFail  // module-wide

Assert raised when n invalid shared region address specified

C synopsis target-domain
extern const Assert_Id FrameQ_A_memoryAllocFail;
 
 
config FrameQ_A_nullHandle  // module-wide

Assert raised when null handle is returned from modules

C synopsis target-domain
extern const Assert_Id FrameQ_A_nullHandle;
 
 
config FrameQ_A_nullPointer  // module-wide

Assert raised when a null pointer needs to be dereferenced

C synopsis target-domain
extern const Assert_Id FrameQ_A_nullPointer;
 
 
config FrameQ_E_CacheAlign  // module-wide

Error raised when buffersize is not aligned to Cache line size

C synopsis target-domain
extern const Error_Id FrameQ_E_CacheAlign;
 
 
config FrameQ_E_ClientNotifyMgrCreate  // module-wide

Error raised when ClientNotifyMgr Create failed

C synopsis target-domain
extern const Error_Id FrameQ_E_ClientNotifyMgrCreate;
 
 
config FrameQ_E_ClientNotifyMgrOpen  // module-wide

Error raised when ClientNotifyMgrOpen failed

C synopsis target-domain
extern const Error_Id FrameQ_E_ClientNotifyMgrOpen;
 
 
config FrameQ_E_FrameQCreateFail  // module-wide

Error raised when internal FrameQ create failed

C synopsis target-domain
extern const Error_Id FrameQ_E_FrameQCreateFail;
 
 
config FrameQ_E_FrameQCreated  // module-wide

Error raised when FrameQ is already created

C synopsis target-domain
extern const Error_Id FrameQ_E_FrameQCreated;
 
 
config FrameQ_E_FrameQNotCreated  // module-wide

Error raised when FrameQ is not created

C synopsis target-domain
extern const Error_Id FrameQ_E_FrameQNotCreated;
 
 
config FrameQ_E_FrameQNotFound  // module-wide

Error raised when FrameQ is not Found in NameServer

C synopsis target-domain
extern const Error_Id FrameQ_E_FrameQNotFound;
 
 
config FrameQ_E_FrameQOpenFail  // module-wide

Error raised when FrameQ open failed

C synopsis target-domain
extern const Error_Id FrameQ_E_FrameQOpenFail;
 
 
config FrameQ_E_GateCreate  // module-wide

Error raised when Gate Create failed

C synopsis target-domain
extern const Error_Id FrameQ_E_GateCreate;
 
 
config FrameQ_E_GateOpen  // module-wide

Error raised when Gate open failed

C synopsis target-domain
extern const Error_Id FrameQ_E_GateOpen;
 
 
config FrameQ_E_InstanceExists  // module-wide

Error raised when an instance already exists

C synopsis target-domain
extern const Error_Id FrameQ_E_InstanceExists;
 
 
config FrameQ_E_InvAddr  // module-wide

Error raised when Insufficient shared addrprovided to create call

C synopsis target-domain
extern const Error_Id FrameQ_E_InvAddr;
 
 
config FrameQ_E_InvSize  // module-wide

Error raised when Insufficient shared memory provided to create call

C synopsis target-domain
extern const Error_Id FrameQ_E_InvSize;
 
 
config FrameQ_E_InvalidArg  // module-wide

Error raised when Invalid args passed

C synopsis target-domain
extern const Error_Id FrameQ_E_InvalidArg;
 
 
config FrameQ_E_InvalidInterfaceType  // module-wide

Error raised when an invalid interface type mentioned in params

C synopsis target-domain
extern const Error_Id FrameQ_E_InvalidInterfaceType;
 
 
config FrameQ_E_InvalidParams  // module-wide

Error raised when an invalid parameter(s) is passed into a function

C synopsis target-domain
extern const Error_Id FrameQ_E_InvalidParams;
 
 
config FrameQ_E_Memory  // module-wide

Error raised when Memory alloc failed

C synopsis target-domain
extern const Error_Id FrameQ_E_Memory;
 
 
config FrameQ_nameServer  // module-wide

Handle to the name server

C synopsis target-domain
extern const NameServer_Handle FrameQ_nameServer;
 
 
config FrameQ_usedefaultgate  // module-wide

If set to true FrameQBufMgr instances will use dafault gate set in FrameQBufMgr. If default gate is not set in FrameQBufMgr, it uses GateMP's default gate. Set it to zero if FrameQBufMgr needs to create gate for a instance (remoteProtect and localProtect flags should be valid in params in this case)

C synopsis target-domain
extern const Bool FrameQ_usedefaultgate;
 
 
FrameQ_getConfig()  // module-wide

Initialize the passed pointer with the current parameters

C synopsis target-domain
Int32 FrameQ_getConfig(IFrameQ_Config *cfgParams);
 
ARGUMENTS
cfgParams — Pointer to parameter structure to be initialized.
 
FrameQ_getFrameBufDataStartOffset()  // module-wide

Function to get data start offset in frame buffer

C synopsis target-domain
UInt32 FrameQ_getFrameBufDataStartOffset(IFrameQ_Frame frame, UInt32 frameBufNum);
 
ARGUMENTS
frame — frame.See Frame.
frameBufNum — Frame Buffer number.
RETURNS
Returns valid data start offset in frame buffer.
 
FrameQ_getFrameBufSize()  // module-wide

Function to get size of frame buffer

C synopsis target-domain
UInt32 FrameQ_getFrameBufSize(IFrameQ_Frame frame, UInt32 frameBufNum);
 
ARGUMENTS
frame — frame.See Frame.
frameBufNum — Frame Buffer number.
RETURNS
Returns frame buffer size of the given frame number.
 
FrameQ_getFrameBufValidSize()  // module-wide

Function to get valid data size of a frame buffer

C synopsis target-domain
UInt32 FrameQ_getFrameBufValidSize(IFrameQ_Frame frame, UInt32 frameBufNum);
 
ARGUMENTS
frame — Frame.See Frame
frameBufNum — Frame Buffer number.
RETURNS
Returns valid data size of data in the given frame.
 
FrameQ_getFrameBuffer()  // module-wide

Function to get the framebuffer.If frame is extended it returns the pointer to the user supplied buffer

C synopsis target-domain
Ptr FrameQ_getFrameBuffer(IFrameQ_Frame frame, UInt32 frameBufNum);
 
ARGUMENTS
frame — Pointer to the frame. See Frame
frameBufNum — Number of the framebuffer that needs to returned.see getNumFrameBuffers
RETURNS
Returns framebuffer pointed to by the given number in a frame .
 
FrameQ_getNumFrameBuffers()  // module-wide

Function to know the number of frame buffers contained in a frame

C synopsis target-domain
UInt32 FrameQ_getNumFrameBuffers(IFrameQ_Frame frame);
 
ARGUMENTS
frame — frame pointer(i.e frame header).See Frame
RETURNS
Returns number of frame buffers in given frame.
 
FrameQ_setFrameBufDataStartOffset()  // module-wide

Function to set data start offset from where valid data starts in frame buffer

C synopsis target-domain
Int32 FrameQ_setFrameBufDataStartOffset(IFrameQ_Frame frame, UInt32 frameBufNum, UInt32 dataStartOffset);
 
ARGUMENTS
frame — frame.See Frame
frameBufNum — Number of the framebuffer to which this setting is required.
dataStartOffset — dataStart offset value.
RETURNS
Returns data start offset from where valid data starts in frame buffer.
 
FrameQ_setFrameBufValidSize()  // module-wide

Function to set valid data size of a frame buffer

C synopsis target-domain
Int32 FrameQ_setFrameBufValidSize(IFrameQ_Frame frame, UInt32 frameBufNum, UInt32 validSize);
 
ARGUMENTS
buf — frame.See Frame.
frameBufNum — Number of the framebuffer to which this setting is required.
validSize — valid data size value to set in for the frame buffer.
RETURNS
Returns valid data size in the frame buffer.
Module-Wide Built-Ins

C synopsis target-domain
Types_ModuleId FrameQ_Module_id();
// Get this module's unique id
 
Bool FrameQ_Module_startupDone();
// Test if this module has completed startup
 
IHeap_Handle FrameQ_Module_heap();
// The heap from which this module allocates memory
 
Bool FrameQ_Module_hasMask();
// Test whether this module has a diagnostics mask
 
Bits16 FrameQ_Module_getMask();
// Returns the diagnostics mask for this module
 
Void FrameQ_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types

C synopsis target-domain
typedef struct FrameQ_Object FrameQ_Object;
// Opaque internal representation of an instance object
 
typedef FrameQ_Object *FrameQ_Handle;
// Client reference to an instance object
 
typedef struct FrameQ_Struct FrameQ_Struct;
// Opaque client structure large enough to hold an instance object
 
FrameQ_Handle FrameQ_handle(FrameQ_Struct *structP);
// Convert this instance structure pointer into an instance handle
 
FrameQ_Struct *FrameQ_struct(FrameQ_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters

C synopsis target-domain
typedef struct FrameQ_Params {
// Instance config-params structure
    IInstance_Params *instance;
    // Common per-instance configs
    FrameQ_CreateParams commonCreateParams;
    // 
    Ptr impParams;
    // Pointer to implementation specific parameters
    UInt32 impParamsSize;
    // Pointer to implementation specific parameters
} FrameQ_Params;
 
Void FrameQ_Params_init(FrameQ_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
 
config FrameQ_commonCreateParams  // instance
C synopsis target-domain
struct FrameQ_Params {
      ...
    FrameQ_CreateParams commonCreateParams;
 
 
config FrameQ_impParams  // instance

Pointer to implementation specific parameters

C synopsis target-domain
struct FrameQ_Params {
      ...
    Ptr impParams;
 
 
config FrameQ_impParamsSize  // instance

Pointer to implementation specific parameters

C synopsis target-domain
struct FrameQ_Params {
      ...
    UInt32 impParamsSize;
 
 
FrameQ_alloc()  // instance

Function to allocate a frame

C synopsis target-domain
Int32 FrameQ_alloc(FrameQ_Handle handle, IFrameQ_Frame *framePtr);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
framePtr — Location to receive the allocated frame.
RETURNS
returns 0 if successfully allocated the buffer.
DETAILS
It allocates frame from the free Queue 0 of FrameQBufMgr
 
FrameQ_allocv()  // instance

Function to allocate multiple frames from the FrameQ. FrameQ calls alloctes frames from the plugged in FrameQBufMgr instance from the give free Frame pool nos

C synopsis target-domain
Int32 FrameQ_allocv(FrameQ_Handle handle, IFrameQ_Frame framePtr[], UInt32 freeQId[], UInt8 *numFrames);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
framePtr — array of pointers to receive allocate frame pointers.
freeQId — array of freeFrame poolNos to allocate frames from. if API retruns success, this represents ths actual size of the buffer allocated.
numFrames — Number of frames to allocate.
RETURNS
returns value greater than zero if successfully allocated frames.
 
FrameQ_control()  // instance

Provides a hook to perform implementation dependent operation

C synopsis target-domain
Int32 FrameQ_control(FrameQ_Handle handle, Int32 cmd, Ptr arg);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
cmd — command to exectue.
arg — argument of type void*.
 
FrameQ_dup()  // instance

Function to duplicate frame

C synopsis target-domain
Int32 FrameQ_dup(FrameQ_Handle handle, IFrameQ_Frame frame, IFrameQ_Frame *dupedFrame);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
 
FrameQ_free()  // instance

Function to free frame

C synopsis target-domain
Int32 FrameQ_free(FrameQ_Handle handle, IFrameQ_Frame frame);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
frame — Frame to be freed.
RETURNS
returns 0 if successfully freed the allocated buffer.
 
FrameQ_freev()  // instance

Function to free frames

C synopsis target-domain
Int32 FrameQ_freev(FrameQ_Handle handle, IFrameQ_Frame framePtr[], UInt32 numFrames);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
framePtr — array of frames to be freed.
RETURNS
returns 0 if successfully freed the allocated frames.
 
FrameQ_get()  // instance

Function to retrieve(get) frames from FrameQ

C synopsis target-domain
Int32 FrameQ_get(FrameQ_Handle handle, IFrameQ_Frame *frame);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
 
FrameQ_getNumFrames()  // instance

Function to get the number of frames

C synopsis target-domain
Int32 FrameQ_getNumFrames(FrameQ_Handle handle, UInt32 *numFrames);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
numFrames — Outputparameter indicates number of frames in the FrameQ. For readers, this will indicates the number of frames present in the queue that it is accessing. For writer, this indicates the number frames present in the primary queue.
RETURNS
returns 0 if successfully returned the frames.
 
FrameQ_getNumFreeFrames()  // instance

Function to get the number of free frames available in the plugged in FrameQbufMgr's FreeFramePool 0. The returned number free frame may not exist in the frameQbufMgr after this call.This is because if any allocs are done by the other FrameQ writers on the same FrameQBufMgr.If frees are not other frameQ writers the free Frames would be even more than the value that we have got

C synopsis target-domain
Int32 FrameQ_getNumFreeFrames(FrameQ_Handle handle, UInt32 *numFreeFrames);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
numFreeFrames — Outputparameter indicates number of free frames .
RETURNS
returns 0 if successfully returned the number of free frames.
 
FrameQ_getv()  // instance
C synopsis target-domain
Int32 FrameQ_getv(FrameQ_Handle handle, IFrameQ_Frame pframe[], UInt32 filledQueueId[], UInt8 *numFrames);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
 
FrameQ_getvNumFrames()  // instance

For Reader this function is to get the available frames from the queues associated with this reader client. For writer this function is to get the available frames from the queues associated with the primary Reader(first reader)

C synopsis target-domain
Int32 FrameQ_getvNumFrames(FrameQ_Handle handle, UInt32 numFrames[], UInt8 filledQId[], UInt8 numFilledQids);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
numFrames — Outputparameter indicates number of frames in each given filled quque.
filledQId — Arry of filled queue ids.
numFilledQids — Number of filled queueids .
RETURNS
returns 0 if successfully returned the frames.
 
FrameQ_getvNumFreeFrames()  // instance

Function to get the number of free frames available in the plugged in FrameQbufMgr

C synopsis target-domain
Int32 FrameQ_getvNumFreeFrames(FrameQ_Handle handle, UInt32 numFreeFrames[], UInt8 freeQId[], UInt8 numFreeQids);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
numFreeFrames — Outputparameter indicates number of free frames in each given free quque at that instance.
filledQId — Array of free Queue ids(freeFramePool nos).
numFreeQids — Number of free queueids same as freeFrame PoolNo of plugged in FrameQBufMgr .
RETURNS
returns 0 if successfully returned the frames.
 
FrameQ_put()  // instance

Function to insert frames in to FrameQ instance

C synopsis target-domain
Int32 FrameQ_put(FrameQ_Handle handle, IFrameQ_Frame buf);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
 
FrameQ_putv()  // instance

Function to insert multiple frames in to queues of a FrameQ reader client

C synopsis target-domain
Int32 FrameQ_putv(FrameQ_Handle handle, IFrameQ_Frame framePtr[], UInt32 filledQueueId[], UInt8 numFrames);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
 
FrameQ_registerNotifier()  // instance

Function to register a call back function with the instance.

C synopsis target-domain
Int32 FrameQ_registerNotifier(FrameQ_Handle handle, IFrameQ_NotifyParams *notifyParams);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
notifyParams — Notification registration parameters.See NotifyRegParams.
RETURNS
Returns 0 if successfully registered the call back function.
 
FrameQ_sendNotify()  // instance

Function to send force notification to reader client

C synopsis target-domain
Int32 FrameQ_sendNotify(FrameQ_Handle handle, UInt16 msg);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
RETURNS
Returns positive value if successfully sent notification.
 
FrameQ_unregisterNotifier()  // instance

Function to unregister the call back function

C synopsis target-domain
Int32 FrameQ_unregisterNotifier(FrameQ_Handle handle);
 
ARGUMENTS
handle — handle of a previously-created FrameQ instance object
RETURNS
Returns positive value if successfully unregistered the call back function.
Instance Convertors

C synopsis target-domain
IFrameQ_Handle FrameQ_Handle_upCast(FrameQ_Handle handle);
// unconditionally move one level up the inheritance hierarchy
 
FrameQ_Handle FrameQ_Handle_downCast(IFrameQ_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins

C synopsis target-domain
Int FrameQ_Object_count();
// The number of statically-created instance objects
 
FrameQ_Handle FrameQ_Object_get(FrameQ_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
 
FrameQ_Handle FrameQ_Object_first();
// The handle of the first dynamically-created instance object, or NULL
 
FrameQ_Handle FrameQ_Object_next(FrameQ_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
 
IHeap_Handle FrameQ_Object_heap();
// The heap used to allocate dynamically-created instance objects
 
Types_Label *FrameQ_Handle_label(FrameQ_Handle handle, Types_Label *buf);
// The label associated with this instance object
 
String FrameQ_Handle_name(FrameQ_Handle handle);
// The name of this instance object
 
XDCscript usage meta-domain sourced in ti/syslink/ipc/rtos/FrameQ.xdc
var FrameQ = xdc.useModule('ti.syslink.ipc.rtos.FrameQ');
module-wide constants & types
    const FrameQ.DYNAMIC_OPEN// Type of open = 0x20;
    const FrameQ.INVALID// Type of open = 0xFF;
    const FrameQ.STATIC_OPEN// Type of open = 0x10;
    const FrameQ.VERSION//  = 1;
 
        const FrameQ.FRAMEBUF0_CPUACCESS;
        const FrameQ.FRAMEBUF1_CPUACCESS;
        const FrameQ.FRAMEBUF2_CPUACCESS;
        const FrameQ.FRAMEBUF3_CPUACCESS;
        const FrameQ.FRAMEBUF4_CPUACCESS;
        const FrameQ.FRAMEBUF5_CPUACCESS;
        const FrameQ.FRAMEBUF6_CPUACCESS;
        const FrameQ.FRAMEBUF7_CPUACCESS;
 
        const FrameQ.INTERFACE_SHAREDMEM;
        const FrameQ.INTERFACE_NONE;
 
    values of type FrameQ.NotifyType// 
        const FrameQ.NOTIFICATION_NONE;
        const FrameQ.NOTIFICATION_ALWAYS;
        const FrameQ.NOTIFICATION_ONCE;
        const FrameQ.NOTIFICATION_HDWRFIFO_ALWAYS;
        const FrameQ.NOTIFICATION_HDWRFIFO_ONCE;
 
        const FrameQ.MODE_NONE;
        const FrameQ.MODE_WRITER;
        const FrameQ.MODE_READER;
 
        obj.status = UInt32  ...
        obj.version = UInt32  ...
        obj.localProtect = UInt32  ...
        obj.remoteProtect = UInt32  ...
        obj.gateMPAddr = Ptr  ...
        obj.numReaders = UInt32  ...
        obj.numActiveReaders = UInt32  ...
        obj.numQueues = UInt32  ...
        obj.primaryQueueId = UInt32  ...
        obj.frmQBufMgrId = UInt32  ...
 
        obj.name = String  ...
        obj.sharedAddr = Ptr  ...
        obj.openMode = UInt32  ...
        obj.cpuAccessFlags = UInt32  ...
 
        obj.eventNo = UInt32  ...
        obj.maxInstances = UInt8  ...
 
        obj.size = UInt32  ...
        obj.ctrlInterfaceType = IFrameQ.Interface  ...
        obj.name = String  ...
        obj.openFlag = Bool  ...
 
        obj.bufPtr = UInt32  ...
        obj.bufSize = UInt32  ...
        obj.startOffset = UInt32  ...
        obj.validSize = UInt32  ...
        obj.pixelFormat = UInt32  ...
        obj.height = UInt32  ...
        obj.width = UInt32  ...
        obj.stride = UInt32  ...
 
        obj.reserved0 = UInt32  ...
        obj.reserved1 = UInt32  ...
        obj.baseHeaderSize = UInt16  ...
        obj.headerSize = UInt16  ...
        obj.frmAllocaterId = UInt32  ...
        obj.frameBufType = UInt32  ...
        obj.freeFrmQueueNo = UInt8  ...
        obj.numFrameBuffers = UInt8  ...
        obj.frameBufInfo = IFrame.FrameBufInfo[1]  ...
 
        obj.readerIndex = UInt32  ...
        obj.numFrames = UInt32[IFrameQ.MAXFILLEDQUEUS_FOR_READER]  ...
        obj.isAllocated = Bool  ...
 
        obj.notifyType = IFrameQ.NotifyType  ...
        obj.watermark = UInt32  ...
        obj.cbFxnPtr = Void(*)(IFrameQ.Handle,Ptr,UInt16)  ...
        obj.cbContext = Ptr  ...
        obj.cbClientHandle = Ptr  ...
 
        obj.isValid = UInt32  ...
        obj.procId = UInt32  ...
        obj.cacheFlags = UInt32  ...
        obj.frameQIndex = UInt32  ...
        obj.notifyId = UInt32  ...
        obj.isRegistered = Bool  ...
 
        obj.isValid = UInt32  ...
        obj.procId = UInt32  ...
        obj.cacheFlags = UInt32  ...
        obj.isRegistered = Bool  ...
module-wide config parameters
        msg: "A_InvalidSharedRegionAddr: Invalid shared region address"
    };
        msg: "A_invalidFrameQBufMgrId: Invalid FrameQBufMgr id specified"
    };
        msg: "A_invalidParams: Invalid parameter"
    };
        msg: "A_memoryAllocFail: Memory_alloc failed"
    };
        msg: "A_nullHandle: Null Handle"
    };
        msg: "A_nullPointer: Null pointer"
    };
        msg: "E_CacheAlign: BufferSize is not Cache Aligned"
    };
        msg: "E_ClientNotifyMgrCreate: ClientNotifyMgr instance Create Failed"
    };
        msg: "E_ClientNotifyMgrOpen: ClientNotifyMgrOpen instance Open Failed"
    };
        msg: "E_FrameQCreateFail: Internal FrameQ instance create API failed"
    };
        msg: "E_FrameQCreated: FrameQ instance is already created"
    };
        msg: "E_FrameQNotCreated: FrameQ instance is not created"
    };
        msg: "E_FrameQNotFound: FrameQ instance is not found in NameServer"
    };
        msg: "E_FrameQOpenFail: FrameQ instance open failed"
    };
        msg: "E_GateCreate: Gate instance Create Failed"
    };
        msg: "E_GateOpen: Gate instance Open Failed"
    };
        msg: "E_InstanceExists: Instance already exists"
    };
        msg: "E_InvAddr: Shared Addr provide to create call is NULL"
    };
        msg: "E_InvSize: SharedMemory provided to create call is less than the instance shared memory requirements"
    };
        msg: "E_InvalidArg : Invalid Arguments passed"
    };
        msg: "E_InvalidInterfaceType: Invalid interface type"
    };
        msg: "E_InvalidParams: Invalid parameter"
    };
        msg: "E_Memory : Memory alloc failed"
    };
 
per-instance config parameters
    var params = new FrameQ.Params// Instance config-params object;
        params.commonCreateParams//  = FrameQ.CreateParams {
            size: 0,
            ctrlInterfaceType: IFrameQ.INTERFACE_NONE,
            name: null,
            openFlag: false
        };
 
 
const FrameQ.CACHE_LINESIZE

Cache line size

XDCscript usage meta-domain
const FrameQ.CACHE_LINESIZE = 128;
 
C SYNOPSIS
 
const FrameQ.DYNAMIC_CREATE

Type of creation

XDCscript usage meta-domain
const FrameQ.DYNAMIC_CREATE = 0x4;
 
C SYNOPSIS
 
const FrameQ.DYNAMIC_CREATE_USEDREGION

Type of creation

XDCscript usage meta-domain
const FrameQ.DYNAMIC_CREATE_USEDREGION = 0x8;
 
C SYNOPSIS
 
const FrameQ.DYNAMIC_OPEN

Type of open

XDCscript usage meta-domain
const FrameQ.DYNAMIC_OPEN = 0x20;
 
C SYNOPSIS
 
const FrameQ.FRAMEBUF_CPUACCESSFLAGS_BITOFFSET
XDCscript usage meta-domain
const FrameQ.FRAMEBUF_CPUACCESSFLAGS_BITOFFSET = 16;
 
C SYNOPSIS
 
const FrameQ.INVALID

Type of open

XDCscript usage meta-domain
const FrameQ.INVALID = 0xFF;
 
C SYNOPSIS
 
const FrameQ.MAXFILLEDQUEUS_FOR_READER

Max filled queues for a reader client of the FrameQ instance.

XDCscript usage meta-domain
const FrameQ.MAXFILLEDQUEUS_FOR_READER = 16;
 
C SYNOPSIS
 
const FrameQ.MAX_INSTANCES

Maximum number of instances managed by FrameQ module

XDCscript usage meta-domain
const FrameQ.MAX_INSTANCES = 64;
 
C SYNOPSIS
 
const FrameQ.MAX_INST_READERS

Maximum number of reader clients supported by an instance

XDCscript usage meta-domain
const FrameQ.MAX_INST_READERS = 2;
 
C SYNOPSIS
 
const FrameQ.MAX_NAMELEN

Maximum length of the name strings

XDCscript usage meta-domain
const FrameQ.MAX_NAMELEN = 32;
 
C SYNOPSIS
 
const FrameQ.NOTIFY_RESERVED_EVENTNO

Notify Event Number to be used by FrameQ module

XDCscript usage meta-domain
const FrameQ.NOTIFY_RESERVED_EVENTNO = 1;
 
C SYNOPSIS
 
const FrameQ.STATIC_CREATE

Type of creation

XDCscript usage meta-domain
const FrameQ.STATIC_CREATE = 0x1;
 
C SYNOPSIS
 
const FrameQ.STATIC_CREATE_USEDREGION

Type of creation

XDCscript usage meta-domain
const FrameQ.STATIC_CREATE_USEDREGION = 0x2;
 
C SYNOPSIS
 
const FrameQ.STATIC_OPEN

Type of open

XDCscript usage meta-domain
const FrameQ.STATIC_OPEN = 0x10;
 
C SYNOPSIS
 
const FrameQ.VERSION
XDCscript usage meta-domain
const FrameQ.VERSION = 1;
 
C SYNOPSIS
 
enum FrameQ.CpuAccessFlags

Enumeration of CPU access flags for frame buffers. For frame headers CPUACCESS is assumed to be TRUE

XDCscript usage meta-domain
values of type FrameQ.CpuAccessFlags
    const FrameQ.FRAMEBUF0_CPUACCESS;
    const FrameQ.FRAMEBUF1_CPUACCESS;
    const FrameQ.FRAMEBUF2_CPUACCESS;
    const FrameQ.FRAMEBUF3_CPUACCESS;
    const FrameQ.FRAMEBUF4_CPUACCESS;
    const FrameQ.FRAMEBUF5_CPUACCESS;
    const FrameQ.FRAMEBUF6_CPUACCESS;
    const FrameQ.FRAMEBUF7_CPUACCESS;
 
VALUES
FRAMEBUF0_CPUACCESS — If specified first frame buffer is accessed through CPU(direct memory access).
FRAMEBUF1_CPUACCESS — If specified second frame buffer is accessed through CPU(direct memory access).
FRAMEBUF2_CPUACCESS — If specified third frame buffer is accessed through CPU(direct memory access).
FRAMEBUF3_CPUACCESS — If specified fourth frame buffer is accessed through CPU(direct memory access).
FRAMEBUF4_CPUACCESS — If specified fifth frame buffer is accessed through CPU(direct memory access).
FRAMEBUF5_CPUACCESS — If specified sixth frame buffer is accessed through CPU(direct memory access).
FRAMEBUF6_CPUACCESS — If specified seventh frame buffer is accessed through CPU(direct memory access).
FRAMEBUF7_CPUACCESS — If specified eigth frame buffer is accessed through CPU(direct memory access).
C SYNOPSIS
 
enum FrameQ.Interface

Enumeration of FrameQ interface types.Denotes different implementation types

XDCscript usage meta-domain
values of type FrameQ.Interface
    const FrameQ.INTERFACE_SHAREDMEM;
    const FrameQ.INTERFACE_NONE;
 
VALUES
INTERFACE_SHAREDMEM — FrameQ implementation (FrameQ_ShMem Implementation) on shared memory.
C SYNOPSIS
 
enum FrameQ.NotifyType
XDCscript usage meta-domain
values of type FrameQ.NotifyType
    const FrameQ.NOTIFICATION_NONE;
    const FrameQ.NOTIFICATION_ALWAYS;
    const FrameQ.NOTIFICATION_ONCE;
    const FrameQ.NOTIFICATION_HDWRFIFO_ALWAYS;
    const FrameQ.NOTIFICATION_HDWRFIFO_ONCE;
 
VALUES
NOTIFICATION_NONE — No notification required.
NOTIFICATION_ALWAYS — Notify whenever the other client sends data/frees up space.
NOTIFICATION_ONCE — Notify when the other side sends data/frees up buffer. Once the notification is done, the notification is disabled until it is enabled again.
NOTIFICATION_HDWRFIFO_ALWAYS — Notify whenever the other side sends data/frees up space. This notification is never disabled.
NOTIFICATION_HDWRFIFO_ONCE — Notify when the other side sends data/frees up buffer. 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..
DETAILS
Enumeration of Client notifyMgr notification types..
BRIEF
Enumerates the notification types used by SysLink ipc components.
C SYNOPSIS
 
enum FrameQ.OpenMode

Enumeration of FrameQ open modes

XDCscript usage meta-domain
values of type FrameQ.OpenMode
    const FrameQ.MODE_NONE;
    const FrameQ.MODE_WRITER;
    const FrameQ.MODE_READER;
 
VALUES
MODE_WRITER — if specifed in openParams, open call returns a writer handle.
MODE_READER — if specifed in params, open call returns a reader handle.
C SYNOPSIS
 
struct FrameQ.Attrs

Shared control strucrue for the instance attributes

XDCscript usage meta-domain
var obj = new FrameQ.Attrs;
 
    obj.status = UInt32  ...
    obj.version = UInt32  ...
    obj.localProtect = UInt32  ...
    obj.remoteProtect = UInt32  ...
    obj.gateMPAddr = Ptr  ...
    obj.numReaders = UInt32  ...
    obj.numActiveReaders = UInt32  ...
    obj.numQueues = UInt32  ...
    obj.primaryQueueId = UInt32  ...
    obj.frmQBufMgrId = UInt32  ...
 
FIELDS
status — flag denoting whether instance is created or not.
version — Version of the instance.
localProtect — Local protection type.See GateMP.LocalProtect
remoteProtect — Remote protection types.See GateMP.RemoteProtect
gateMPAddr — GateMP address (shm safe)
numReaders — Max reader clients supported for this instance.
numActiveReaders — Number of readers currenty opened for the instance.
numQueues — Number of queues cofigured for each reader.
primaryQueueId — QueueId to which writer sends frames if there are no active readers or only one reader exist.
frmQBufMgrId — Id of FrameQBufmgr used by this instance.
frmQueue — Array of frame queues supported for this instance.
C SYNOPSIS
 
struct FrameQ.CommonOpenParams

Structure defining common instance open parameters for the FrameQ module.Should be first element in the open params strcture of the actual implementation

XDCscript usage meta-domain
var obj = new FrameQ.CommonOpenParams;
 
    obj.name = String  ...
    obj.sharedAddr = Ptr  ...
    obj.openMode = UInt32  ...
    obj.cpuAccessFlags = UInt32  ...
 
FIELDS
name — Name of the instance.
sharedAddr — virtual address of the instance shared control structure.
openMode — Mode of the client
cpuAccessFlags — Flag to specify if Frame buffers are accessed through CPU.see CpuAccessFlags.
C SYNOPSIS
 
struct FrameQ.Config

module config structure

XDCscript usage meta-domain
var obj = new FrameQ.Config;
 
    obj.eventNo = UInt32  ...
    obj.maxInstances = UInt8  ...
 
FIELDS
eventNo — Notify event number used for notification.
C SYNOPSIS
 
struct FrameQ.CreateParams

Structure defining common instance parameters for the FrameQ module.Should be the first element in the create params strcture of the actual implementation

XDCscript usage meta-domain
var obj = new FrameQ.CreateParams;
 
    obj.size = UInt32  ...
    obj.ctrlInterfaceType = IFrameQ.Interface  ...
    obj.name = String  ...
    obj.openFlag = Bool  ...
 
FIELDS
size — Size of the Create params structure(Should be the size of the actual implementation's Create params structure in which this FrameQ_CreateParams is the first element.
interface — type of implementation. See Interface.
name — Name of the instance.
openFlag — Denotes whether create should actually create/open instance.
C SYNOPSIS
 
struct FrameQ.FrameBufInfo

Structure of the framebuffer info in frame

XDCscript usage meta-domain
var obj = new FrameQ.FrameBufInfo;
 
    obj.bufPtr = UInt32  ...
    obj.bufSize = UInt32  ...
    obj.startOffset = UInt32  ...
    obj.validSize = UInt32  ...
    obj.pixelFormat = UInt32  ...
    obj.height = UInt32  ...
    obj.width = UInt32  ...
    obj.stride = UInt32  ...
 
FIELDS
bufPtr — Pointer to the frame buffer.
bufSize — Size of the buffer.
startOffSet — Start offset in the buffer from where valid data starts.
validSize — Valid size in the buffer from the zeroth offset in the frame buffer.
height — Pointer to the frame buffer.
width — Size of the buffer.
stride — Multiple of page size and needs to be added to Tile start address in order to get the address starting on next row in same tile.
C SYNOPSIS
 
struct FrameQ.FrameHeader

Structure of the base frame header. FrameQ maintains list of frames to be retrieved by FrameQ reader client. Application is expected to use Helper API to extract fileds and exteneded header pointer

XDCscript usage meta-domain
var obj = new FrameQ.FrameHeader;
 
    obj.reserved0 = UInt32  ...
    obj.reserved1 = UInt32  ...
    obj.baseHeaderSize = UInt16  ...
    obj.headerSize = UInt16  ...
    obj.frmAllocaterId = UInt32  ...
    obj.frameBufType = UInt32  ...
    obj.freeFrmQueueNo = UInt8  ...
    obj.numFrameBuffers = UInt8  ...
    obj.frameBufInfo = IFrame.FrameBufInfo[1]  ...
 
FIELDS
baseHeaderSize — Size of the base frame header.
headerSize — Size of the frame header(total size of base header and extended header).
frmAllocaterId — Denotes the FrameQBufMgr Id from which frame is allocated.
freeFrmQueueNo — Free quque No from which frame is allocated in FrameQBufMgr.
numFrameBuffers — Number of framebuffers in a frame.
frameBufInfo — Information of Frame buffer. FrameBufInfo
C SYNOPSIS
 
struct FrameQ.FrameQueue

Structure to maintain the queue related information

XDCscript usage meta-domain
var obj = new FrameQ.FrameQueue;
 
    obj.readerIndex = UInt32  ...
    obj.numFrames = UInt32[IFrameQ.MAXFILLEDQUEUS_FOR_READER]  ...
    obj.isAllocated = Bool  ...
 
FIELDS
readerIndex — Reader identifier.
numFrames — Number of frames available in the queue.
isAllocated — Flag denoting whether queue is allocated to any reader or not.
C SYNOPSIS
 
struct FrameQ.NotifyParams

Client notification registration parameter structure

XDCscript usage meta-domain
var obj = new FrameQ.NotifyParams;
 
    obj.notifyType = IFrameQ.NotifyType  ...
    obj.watermark = UInt32  ...
    obj.cbFxnPtr = Void(*)(IFrameQ.Handle,Ptr,UInt16)  ...
    obj.cbContext = Ptr  ...
    obj.cbClientHandle = Ptr  ...
 
FIELDS
notifyType — notification type.See SysLink.NotifyType.
watermark — Minumum number of free frames required to generate notification Same water mark for all the individual freeFramePools in the set.
cbFxnPtr — Cacll back function.
cbContext — Context pointer that needs to be passed to call back function.
cbClientHandle — Handle that needs to be passed as first arg to call back.Ideally this should be callers client handle.
C SYNOPSIS
 
struct FrameQ.ReaderClient

Reader client info structure

XDCscript usage meta-domain
var obj = new FrameQ.ReaderClient;
 
    obj.isValid = UInt32  ...
    obj.procId = UInt32  ...
    obj.cacheFlags = UInt32  ...
    obj.frameQIndex = UInt32  ...
    obj.notifyId = UInt32  ...
    obj.isRegistered = Bool  ...
 
FIELDS
isValid — Denotes whether client is valid or not.
cacheFlags — Cache flags for the frame buffer and frame header.
frameQIndex — frameQueue from which this reader can read the frames.
C SYNOPSIS
 
struct FrameQ.WriterClient

Writer client info in shared memory

XDCscript usage meta-domain
var obj = new FrameQ.WriterClient;
 
    obj.isValid = UInt32  ...
    obj.procId = UInt32  ...
    obj.cacheFlags = UInt32  ...
    obj.isRegistered = Bool  ...
 
FIELDS
isValid — Denotes whether client is valid or not.
cacheFlags — Cache flags for the frame buffer and frame header. Shared structure cache flag is specified in the object.
C SYNOPSIS
 
config FrameQ.A_InvalidSharedRegionAddr  // module-wide

Assert raised when n invalid shared region address specified

XDCscript usage meta-domain
FrameQ.A_InvalidSharedRegionAddr = Assert.Desc {
    msg: "A_InvalidSharedRegionAddr: Invalid shared region address"
};
 
C SYNOPSIS
 
config FrameQ.A_invalidFrameQBufMgrId  // module-wide

Assert raised when n invalid shared region address specified

XDCscript usage meta-domain
FrameQ.A_invalidFrameQBufMgrId = Assert.Desc {
    msg: "A_invalidFrameQBufMgrId: Invalid FrameQBufMgr id specified"
};
 
C SYNOPSIS
 
config FrameQ.A_invalidParams  // module-wide

Assert raised when an invalid parameter(s) is passed into a function

XDCscript usage meta-domain
FrameQ.A_invalidParams = Assert.Desc {
    msg: "A_invalidParams: Invalid parameter"
};
 
C SYNOPSIS
 
config FrameQ.A_memoryAllocFail  // module-wide

Assert raised when n invalid shared region address specified

XDCscript usage meta-domain
FrameQ.A_memoryAllocFail = Assert.Desc {
    msg: "A_memoryAllocFail: Memory_alloc failed"
};
 
C SYNOPSIS
 
config FrameQ.A_nullHandle  // module-wide

Assert raised when null handle is returned from modules

XDCscript usage meta-domain
FrameQ.A_nullHandle = Assert.Desc {
    msg: "A_nullHandle: Null Handle"
};
 
C SYNOPSIS
 
config FrameQ.A_nullPointer  // module-wide

Assert raised when a null pointer needs to be dereferenced

XDCscript usage meta-domain
FrameQ.A_nullPointer = Assert.Desc {
    msg: "A_nullPointer: Null pointer"
};
 
C SYNOPSIS
 
config FrameQ.E_CacheAlign  // module-wide

Error raised when buffersize is not aligned to Cache line size

XDCscript usage meta-domain
FrameQ.E_CacheAlign = Error.Desc {
    msg: "E_CacheAlign: BufferSize is not Cache Aligned"
};
 
C SYNOPSIS
 
config FrameQ.E_ClientNotifyMgrCreate  // module-wide

Error raised when ClientNotifyMgr Create failed

XDCscript usage meta-domain
FrameQ.E_ClientNotifyMgrCreate = Error.Desc {
    msg: "E_ClientNotifyMgrCreate: ClientNotifyMgr instance Create Failed"
};
 
C SYNOPSIS
 
config FrameQ.E_ClientNotifyMgrOpen  // module-wide

Error raised when ClientNotifyMgrOpen failed

XDCscript usage meta-domain
FrameQ.E_ClientNotifyMgrOpen = Error.Desc {
    msg: "E_ClientNotifyMgrOpen: ClientNotifyMgrOpen instance Open Failed"
};
 
C SYNOPSIS
 
config FrameQ.E_FrameQCreateFail  // module-wide

Error raised when internal FrameQ create failed

XDCscript usage meta-domain
FrameQ.E_FrameQCreateFail = Error.Desc {
    msg: "E_FrameQCreateFail: Internal FrameQ instance create API failed"
};
 
C SYNOPSIS
 
config FrameQ.E_FrameQCreated  // module-wide

Error raised when FrameQ is already created

XDCscript usage meta-domain
FrameQ.E_FrameQCreated = Error.Desc {
    msg: "E_FrameQCreated: FrameQ instance is already created"
};
 
C SYNOPSIS
 
config FrameQ.E_FrameQNotCreated  // module-wide

Error raised when FrameQ is not created

XDCscript usage meta-domain
FrameQ.E_FrameQNotCreated = Error.Desc {
    msg: "E_FrameQNotCreated: FrameQ instance is not created"
};
 
C SYNOPSIS
 
config FrameQ.E_FrameQNotFound  // module-wide

Error raised when FrameQ is not Found in NameServer

XDCscript usage meta-domain
FrameQ.E_FrameQNotFound = Error.Desc {
    msg: "E_FrameQNotFound: FrameQ instance is not found in NameServer"
};
 
C SYNOPSIS
 
config FrameQ.E_FrameQOpenFail  // module-wide

Error raised when FrameQ open failed

XDCscript usage meta-domain
FrameQ.E_FrameQOpenFail = Error.Desc {
    msg: "E_FrameQOpenFail: FrameQ instance open failed"
};
 
C SYNOPSIS
 
config FrameQ.E_GateCreate  // module-wide

Error raised when Gate Create failed

XDCscript usage meta-domain
FrameQ.E_GateCreate = Error.Desc {
    msg: "E_GateCreate: Gate instance Create Failed"
};
 
C SYNOPSIS
 
config FrameQ.E_GateOpen  // module-wide

Error raised when Gate open failed

XDCscript usage meta-domain
FrameQ.E_GateOpen = Error.Desc {
    msg: "E_GateOpen: Gate instance Open Failed"
};
 
C SYNOPSIS
 
config FrameQ.E_InstanceExists  // module-wide

Error raised when an instance already exists

XDCscript usage meta-domain
FrameQ.E_InstanceExists = Error.Desc {
    msg: "E_InstanceExists: Instance already exists"
};
 
C SYNOPSIS
 
config FrameQ.E_InvAddr  // module-wide

Error raised when Insufficient shared addrprovided to create call

XDCscript usage meta-domain
FrameQ.E_InvAddr = Error.Desc {
    msg: "E_InvAddr: Shared Addr provide to create call is NULL"
};
 
C SYNOPSIS
 
config FrameQ.E_InvSize  // module-wide

Error raised when Insufficient shared memory provided to create call

XDCscript usage meta-domain
FrameQ.E_InvSize = Error.Desc {
    msg: "E_InvSize: SharedMemory provided to create call is less than the instance shared memory requirements"
};
 
C SYNOPSIS
 
config FrameQ.E_InvalidArg  // module-wide

Error raised when Invalid args passed

XDCscript usage meta-domain
FrameQ.E_InvalidArg = Error.Desc {
    msg: "E_InvalidArg : Invalid Arguments passed"
};
 
C SYNOPSIS
 
config FrameQ.E_InvalidInterfaceType  // module-wide

Error raised when an invalid interface type mentioned in params

XDCscript usage meta-domain
FrameQ.E_InvalidInterfaceType = Error.Desc {
    msg: "E_InvalidInterfaceType: Invalid interface type"
};
 
C SYNOPSIS
 
config FrameQ.E_InvalidParams  // module-wide

Error raised when an invalid parameter(s) is passed into a function

XDCscript usage meta-domain
FrameQ.E_InvalidParams = Error.Desc {
    msg: "E_InvalidParams: Invalid parameter"
};
 
C SYNOPSIS
 
config FrameQ.E_Memory  // module-wide

Error raised when Memory alloc failed

XDCscript usage meta-domain
FrameQ.E_Memory = Error.Desc {
    msg: "E_Memory : Memory alloc failed"
};
 
C SYNOPSIS
 
config FrameQ.nameServer  // module-wide

Handle to the name server

XDCscript usage meta-domain
FrameQ.nameServer = NameServer.Handle null;
 
C SYNOPSIS
 
config FrameQ.usedefaultgate  // module-wide

If set to true FrameQBufMgr instances will use dafault gate set in FrameQBufMgr. If default gate is not set in FrameQBufMgr, it uses GateMP's default gate. Set it to zero if FrameQBufMgr needs to create gate for a instance (remoteProtect and localProtect flags should be valid in params in this case)

XDCscript usage meta-domain
FrameQ.usedefaultgate = Bool false;
 
C SYNOPSIS
 
metaonly config FrameQ.common$  // module-wide

Common module configuration parameters

XDCscript usage meta-domain
FrameQ.common$ = Types.Common$ undefined;
 
DETAILS
All modules have this configuration parameter. Its name contains the '$' character to ensure it does not conflict with configuration parameters declared by the module. This allows new configuration parameters to be added in the future without any chance of breaking existing modules.
 
metaonly config FrameQ.nameSrvPrms  // module-wide

This Params object is used for temporary storage of the module wide parameters that are for setting the NameServer instance

XDCscript usage meta-domain
FrameQ.nameSrvPrms = NameServer.Params undefined;
 
 
metaonly config FrameQ.tableSection  // module-wide

Section name is used to place the names table

XDCscript usage meta-domain
FrameQ.tableSection = String null;
 
 
metaonly config FrameQ.useNameServer  // module-wide

Whether to have this module use the NameServer or not

XDCscript usage meta-domain
FrameQ.useNameServer = Bool true;
 
DETAILS
Currently defaulted to false because static creation of NameServer instances is not supported.
Instance Config Parameters

XDCscript usage meta-domain
var params = new FrameQ.Params;
// Instance config-params object
    params.commonCreateParams = FrameQ.CreateParams {
    // 
        size: 0,
        ctrlInterfaceType: IFrameQ.INTERFACE_NONE,
        name: null,
        openFlag: false
    };
    params.impParams = Ptr null;
    // Pointer to implementation specific parameters
    params.impParamsSize = UInt32 0;
    // Pointer to implementation specific parameters
 
config FrameQ.commonCreateParams  // instance
XDCscript usage meta-domain
var params = new FrameQ.Params;
  ...
params.commonCreateParams = FrameQ.CreateParams {
    size: 0,
    ctrlInterfaceType: IFrameQ.INTERFACE_NONE,
    name: null,
    openFlag: false
};
 
C SYNOPSIS
 
config FrameQ.impParams  // instance

Pointer to implementation specific parameters

XDCscript usage meta-domain
var params = new FrameQ.Params;
  ...
params.impParams = Ptr null;
 
C SYNOPSIS
 
config FrameQ.impParamsSize  // instance

Pointer to implementation specific parameters

XDCscript usage meta-domain
var params = new FrameQ.Params;
  ...
params.impParamsSize = UInt32 0;
 
C SYNOPSIS
generated on Mon, 20 Jun 2011 05:31:05 GMT