const FrameQ_CACHE_LINESIZE |
 |
Cache line size
#define FrameQ_CACHE_LINESIZE (UInt32)128
const FrameQ_DYNAMIC_CREATE |
 |
Type of creation
#define FrameQ_DYNAMIC_CREATE (UInt32)0x4
const FrameQ_DYNAMIC_CREATE_USEDREGION |
 |
Type of creation
#define FrameQ_DYNAMIC_CREATE_USEDREGION (UInt32)0x8
const FrameQ_DYNAMIC_OPEN |
 |
Type of open
#define FrameQ_DYNAMIC_OPEN (UInt32)0x20
const FrameQ_FRAMEBUF_CPUACCESSFLAGS_BITOFFSET |
 |
#define FrameQ_FRAMEBUF_CPUACCESSFLAGS_BITOFFSET (UInt32)16
const FrameQ_INVALID |
 |
Type of open
#define FrameQ_INVALID (UInt32)0xFF
const FrameQ_MAXFILLEDQUEUS_FOR_READER |
 |
Max filled queues for a reader client of the FrameQ instance.
#define FrameQ_MAXFILLEDQUEUS_FOR_READER (UInt32)16
const FrameQ_MAX_INSTANCES |
 |
Maximum number of instances managed by FrameQ module
#define FrameQ_MAX_INSTANCES (UInt32)64
const FrameQ_MAX_INST_READERS |
 |
Maximum number of reader clients supported by an instance
#define FrameQ_MAX_INST_READERS (UInt32)2
const FrameQ_MAX_NAMELEN |
 |
Maximum length of the name strings
#define FrameQ_MAX_NAMELEN (UInt32)32
const FrameQ_NOTIFY_RESERVED_EVENTNO |
 |
Notify Event Number to be used by FrameQ module
#define FrameQ_NOTIFY_RESERVED_EVENTNO (UInt16)1
const FrameQ_STATIC_CREATE |
 |
Type of creation
#define FrameQ_STATIC_CREATE (UInt32)0x1
const FrameQ_STATIC_CREATE_USEDREGION |
 |
Type of creation
#define FrameQ_STATIC_CREATE_USEDREGION (UInt32)0x2
const FrameQ_STATIC_OPEN |
 |
Type of open
#define FrameQ_STATIC_OPEN (UInt32)0x10
const FrameQ_VERSION |
 |
#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
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
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 |
 |
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
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 |
 |
typedef FrameQ_NotifyFunc |
 |
Prototype of the FrameQ call back function
struct FrameQ_Attrs |
 |
Shared control strucrue for the instance attributes
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.
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
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
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
typedef struct FrameQ_CreateParams {
UInt32 size;
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
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
typedef struct FrameQ_FrameHeader {
UInt32 reserved0;
UInt32 reserved1;
UInt16 baseHeaderSize;
UInt16 headerSize;
UInt32 frmAllocaterId;
UInt32 frameBufType;
UInt8 freeFrmQueueNo;
UInt8 numFrameBuffers;
} 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.
struct FrameQ_FrameQueue |
 |
Structure to maintain the queue related information
typedef struct FrameQ_FrameQueue {
UInt32 readerIndex;
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
typedef struct FrameQ_NotifyParams {
UInt32 watermark;
Ptr cbContext;
Ptr cbClientHandle;
} FrameQ_NotifyParams;
FIELDS
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
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
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
extern const Assert_Id FrameQ_A_InvalidSharedRegionAddr;
config FrameQ_A_invalidFrameQBufMgrId // module-wide |
 |
Assert raised when n invalid shared region address specified
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
extern const Assert_Id FrameQ_A_invalidParams;
config FrameQ_A_memoryAllocFail // module-wide |
 |
Assert raised when n invalid shared region address specified
extern const Assert_Id FrameQ_A_memoryAllocFail;
config FrameQ_A_nullHandle // module-wide |
 |
Assert raised when null handle is returned from modules
config FrameQ_A_nullPointer // module-wide |
 |
Assert raised when a null pointer needs to be dereferenced
config FrameQ_E_CacheAlign // module-wide |
 |
Error raised when buffersize is not aligned to Cache line size
extern const Error_Id FrameQ_E_CacheAlign;
config FrameQ_E_ClientNotifyMgrCreate // module-wide |
 |
Error raised when ClientNotifyMgr Create failed
extern const Error_Id FrameQ_E_ClientNotifyMgrCreate;
config FrameQ_E_ClientNotifyMgrOpen // module-wide |
 |
Error raised when ClientNotifyMgrOpen failed
extern const Error_Id FrameQ_E_ClientNotifyMgrOpen;
config FrameQ_E_FrameQCreateFail // module-wide |
 |
Error raised when internal FrameQ create failed
extern const Error_Id FrameQ_E_FrameQCreateFail;
config FrameQ_E_FrameQCreated // module-wide |
 |
Error raised when FrameQ is already created
extern const Error_Id FrameQ_E_FrameQCreated;
config FrameQ_E_FrameQNotCreated // module-wide |
 |
Error raised when FrameQ is not created
extern const Error_Id FrameQ_E_FrameQNotCreated;
config FrameQ_E_FrameQNotFound // module-wide |
 |
Error raised when FrameQ is not Found in NameServer
extern const Error_Id FrameQ_E_FrameQNotFound;
config FrameQ_E_FrameQOpenFail // module-wide |
 |
Error raised when FrameQ open failed
extern const Error_Id FrameQ_E_FrameQOpenFail;
config FrameQ_E_GateCreate // module-wide |
 |
Error raised when Gate Create failed
extern const Error_Id FrameQ_E_GateCreate;
config FrameQ_E_GateOpen // module-wide |
 |
Error raised when Gate open failed
extern const Error_Id FrameQ_E_GateOpen;
config FrameQ_E_InstanceExists // module-wide |
 |
Error raised when an instance already exists
extern const Error_Id FrameQ_E_InstanceExists;
config FrameQ_E_InvAddr // module-wide |
 |
Error raised when Insufficient shared addrprovided to create call
config FrameQ_E_InvSize // module-wide |
 |
Error raised when Insufficient shared memory provided to create call
config FrameQ_E_InvalidArg // module-wide |
 |
Error raised when Invalid args passed
extern const Error_Id FrameQ_E_InvalidArg;
config FrameQ_E_InvalidInterfaceType // module-wide |
 |
Error raised when an invalid interface type mentioned in params
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
extern const Error_Id FrameQ_E_InvalidParams;
config FrameQ_E_Memory // module-wide |
 |
Error raised when Memory alloc failed
config FrameQ_nameServer // module-wide |
 |
Handle to the name server
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)
extern const Bool FrameQ_usedefaultgate;
FrameQ_getConfig() // module-wide |
 |
Initialize the passed pointer with the current parameters
ARGUMENTS
cfgParams
Pointer to parameter structure to be initialized.
FrameQ_getFrameBufDataStartOffset() // module-wide |
 |
Function to get data start offset in frame buffer
UInt32 FrameQ_getFrameBufDataStartOffset(
IFrameQ_Frame frame,
UInt32 frameBufNum);
ARGUMENTS
frameBufNum
Frame Buffer number.
RETURNS
Returns valid data start offset in frame buffer.
FrameQ_getFrameBufSize() // module-wide |
 |
Function to get size of frame buffer
UInt32 FrameQ_getFrameBufSize(
IFrameQ_Frame frame,
UInt32 frameBufNum);
ARGUMENTS
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
UInt32 FrameQ_getFrameBufValidSize(
IFrameQ_Frame frame,
UInt32 frameBufNum);
ARGUMENTS
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
Ptr FrameQ_getFrameBuffer(
IFrameQ_Frame frame,
UInt32 frameBufNum);
ARGUMENTS
frame
Pointer to the frame. See Frame
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
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
Int32 FrameQ_setFrameBufDataStartOffset(
IFrameQ_Frame frame,
UInt32 frameBufNum,
UInt32 dataStartOffset);
ARGUMENTS
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
Int32 FrameQ_setFrameBufValidSize(
IFrameQ_Frame frame,
UInt32 frameBufNum,
UInt32 validSize);
ARGUMENTS
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 |
 |
// Get this module's unique id
Bool FrameQ_Module_startupDone();
// Test if this module has completed startup
// 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 |
 |
typedef struct FrameQ_Object FrameQ_Object;
// Opaque internal representation of an instance object
// Client reference to an instance object
typedef struct FrameQ_Struct FrameQ_Struct;
// Opaque client structure large enough to hold an instance object
// Convert this instance structure pointer into an instance handle
// Convert this instance handle into an instance structure pointer
Instance Config Parameters |
 |
typedef struct FrameQ_Params {
// Instance config-params structure
// Common per-instance configs
//
Ptr impParams;
// Pointer to implementation specific parameters
UInt32 impParamsSize;
// Pointer to implementation specific parameters
} FrameQ_Params;
// Initialize this config-params structure with supplier-specified defaults before instance creation
config FrameQ_commonCreateParams // instance |
 |
config FrameQ_impParams // instance |
 |
Pointer to implementation specific parameters
config FrameQ_impParamsSize // instance |
 |
Pointer to implementation specific parameters
...
UInt32 impParamsSize;
FrameQ_alloc() // instance |
 |
Function to allocate a frame
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
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
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
ARGUMENTS
handle
handle of a previously-created FrameQ instance object
FrameQ_free() // instance |
 |
Function to free 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
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
ARGUMENTS
handle
handle of a previously-created FrameQ instance object
FrameQ_getNumFrames() // instance |
 |
Function to get the number of frames
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
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 |
 |
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)
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
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
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
ARGUMENTS
handle
handle of a previously-created FrameQ instance object
FrameQ_registerNotifier() // instance |
 |
Function to register a call back function with the instance.
ARGUMENTS
handle
handle of a previously-created FrameQ instance object
RETURNS
Returns 0 if successfully registered the call back function.
FrameQ_sendNotify() // instance |
 |
Function to send force notification to reader client
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
ARGUMENTS
handle
handle of a previously-created FrameQ instance object
RETURNS
Returns positive value if successfully unregistered the call back function.
Instance Convertors |
 |
// unconditionally move one level up the inheritance hierarchy
// conditionally move one level down the inheritance hierarchy; NULL upon failure
Instance Built-Ins |
 |
Int FrameQ_Object_count();
// The number of statically-created instance objects
// The handle of the i-th statically-created instance object (array == NULL)
// The handle of the first dynamically-created instance object, or NULL
// The handle of the next dynamically-created instance object, or NULL
// The heap used to allocate dynamically-created instance objects
// The label associated with this instance object
// The name of this instance object
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.
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.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 ...
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.
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.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.watermark = UInt32 ...
obj.cbContext = Ptr ...
obj.cbClientHandle = Ptr ...
FIELDS
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
msg: "E_ClientNotifyMgrCreate: ClientNotifyMgr instance Create Failed"
};
C SYNOPSIS
config FrameQ.E_ClientNotifyMgrOpen // module-wide |
 |
Error raised when ClientNotifyMgrOpen failed
XDCscript usage |
meta-domain |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
msg: "E_InvalidParams: Invalid parameter"
};
C SYNOPSIS
config FrameQ.E_Memory // module-wide |
 |
Error raised when Memory alloc failed
XDCscript usage |
meta-domain |
msg: "E_Memory : Memory alloc failed"
};
C SYNOPSIS
config FrameQ.nameServer // module-wide |
 |
Handle to the name server
XDCscript usage |
meta-domain |
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 |
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 |
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
//
size: 0,
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;
...
size: 0,
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