SysLink Application Programming Interface (API): SysLink API Reference

  • Main Page
  • Data Structures
  • Files
  • Related Pages

SysLink API Reference

2.20.00.14

Modules

The SysLink product is partitioned into several components:

  • System APIs:
    • SysLink
  • Slave processor management APIs:
    • ProcMgr
  • Low-level IPC-related APIs
    • Ipc
    • Ipc (host only)
    • GateMP
    • HeapBufMP
    • HeapMemMP
    • HeapMultiBufMP
    • HeapQueueMgr
    • ListMP
    • MessageQ
    • MultiProc
    • NameServer
    • Notify
    • SharedRegion
  • High-level data transfer APIs:
    • RingIO
  • Utility APIs:
    • Cache
    • Gate
    • List
    • Memory
  • Deprecated APIs:
    • FrameQ
Copyright 2012, Texas Instruments Incorporated


SysLink Application Programming Interface (API):

  • Related Pages
IMPORTANT NOTICE

Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications, enhancements, improvements, and other changes to its products and services at any time and to discontinue any product or service without notice. Customers should obtain the latest relevant information before placing orders and should verify that such information is current and complete. All products are sold subject to TI's terms and conditions of sale supplied at the time of order acknowledgment.

TI warrants performance of its hardware products to the specifications applicable at the time of sale in accordance with TI's standard warranty. Testing and other quality control techniques are used to the extent TI deems necessary to support this warranty. Except where mandated by government requirements, testing of all parameters of each product is not necessarily performed.

TI assumes no liability for applications assistance or customer product design. Customers are responsible for their products and applications using TI components. To minimize the risks associated with customer products and applications, customers should provide adequate design and operating safeguards.

TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right, copyright, mask work right, or other TI intellectual property right relating to any combination, machine, or process in which TI products or services are used. Information published by TI regarding third party products or services does not constitute a license from TI to use such products or services or a warranty or endorsement thereof. Use of such information may require a license from a third party under the patents or other intellectual property of that third party, or a license from TI under the patents or other intellectual property of TI.

Reproduction of information in TI data books or data sheets is permissible only if reproduction is without alteration and is accompanied by all associated warranties, conditions, limitations, and notices. Reproduction of this information with alteration is an unfair and deceptive business practice. TI is not responsible or liable for such altered documentation.

Resale of TI products or services with statements different from or beyond the parameters stated by TI for that product or service voids all express and any implied warranties for the associated TI product or service and is an unfair and deceptive business practice. TI is not responsible or liable for any such statements.

Mailing Address:

    Texas Instruments
    Post Office Box 655303
    Dallas, Texas 75265


SysLink Application Programming Interface (API): Deprecated List

Deprecated List

File FrameQ.h
The FrameQ APIs are deprecated as of SysLink 2.20. While supported in this release, they will be removed in a future release.

File FrameQ_ShMem.h
The FrameQ APIs are deprecated as of SysLink 2.20. While supported in this release, they will be removed in a future release.

File FrameQBufMgr.h
The FrameQ APIs are deprecated as of SysLink 2.20. While supported in this release, they will be removed in a future release.

File FrameQBufMgr_ShMem.h
The FrameQ APIs are deprecated as of SysLink 2.20. While supported in this release, they will be removed in a future release.

File FrameQDefs.h
The FrameQ APIs are deprecated as of SysLink 2.20. While supported in this release, they will be removed in a future release.


SysLink Application Programming Interface (API): Data Structures

  • Data Structures
  • Data Structure Index
  • Data Fields

Data Structures

Here are the data structures with brief descriptions:
Cache_ModuleObject | Structure defining state object of cache module
Frame_FrameBufInfo_tag | Structure to frame buffer informantion in frame header
Frame_FrameHeader_Tag | 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
FrameQ_CommonOpenParams_Tag | Common parameters required to open a FrameQ instance of any implementation
FrameQ_Config_Tag | Structure defining config parameters for the FrameQ module
FrameQ_CreateParams_Tag | Common parameters required to create FrameQ instance of any implementation. It should be the first element of the actual implementaton params structure
FrameQ_NotifyParams_Tag | Notification parameter structure
FrameQ_Params | Common parameters required to create FrameQ instance of any implementation. It should be the first element of the actual implementaton params structure
FrameQ_ShMem_OpenParams_tag | Structure defining open parameters for the FrameQ instance on ShMem (shared memory interface)
FrameQ_ShMem_Params_tag | Structure defining instance create parameters for the FrameQ on shared memory(inter core and intra core)
FrameQBufMgr_CommonOpenParams_Tag | Common parameters required to open a FrameQBufMgr instance of any implementation
FrameQBufMgr_Config_Tag | Structure defining module config parameters for the FrameQBufMgr module
FrameQBufMgr_CreateParams_Tag | Common parameters required to create FrameQBufMgr instance of any implementation
FrameQBufMgr_FrameBufParams_Tag | Frame buffer param structure
FrameQBufMgr_NotifyParams_Tag | Structure defining notification parameter structure
FrameQBufMgr_Params | Common parameters required to create FrameQBufMgr instance of any implementation
FrameQBufMgr_ShMem_OpenParams_tag | Structure defining open parameters for the FrameQ instance on ShMem (shared memory interface)
FrameQBufMgr_ShMem_Params_tag | Structure defining parameters for the FrameQ module
GateMP_Params | Structure defining parameters for the GateMP module
GateProcess_Params | Create parameter structure
GateProcess_ShMem | Shared memory structure used by instance
HeapBufMP_ExtendedStats | Stats structure for the HeapBufMP_getExtendedStats API
HeapBufMP_Params | Structure defining parameters for the HeapBufMP module
HeapMemMP_ExtendedStats | Stats structure for the HeapMemMP_getExtendedStats API
HeapMemMP_Params | Structure defining parameters for the HeapMemMP module
HeapMultiBufMP_Bucket | Structure for bucket configuration
HeapMultiBufMP_ExtendedStats | Stats structure for the HeapMultiBufMP_getExtendedStats API
HeapMultiBufMP_Params | Structure defining parameters for the HeapMultiBufMP module
HeapQueueMgr_Params | Structure defining parameters for the HeapQueueMgr module
IGateProvider_Object |
IHeap_Object_tag | Structure for the Handle for the Heap
IpcMemMgr_Config_t | Structure defining config parameters for overall System
List_Elem_tag | Structure defining object for the list element
List_Object_tag | Structure defining object for the list
List_Params_tag | Structure defining params for the list
ListMP_Elem | Structure defining a ListMP element
ListMP_Params | Structure defining parameter structure for ListMP_create()
Memory_Stats_tag | Structure defining memory related statistics
MemoryOS_MapInfo_tag | Structure containing information required for mapping a memory region
MemoryOS_SGList | Structure for scatter-gathered list
MemoryOS_UnmapInfo_tag | Structure containing information required for unmapping a memory region
MessageQ_MsgHeader | Required first field in every message
MessageQ_Params | Structure defining parameters for the MessageQ module
NameServer_Params | NameServer_Handle type
ProcMgr_AddrInfo_tag | This structure defines information about memory regions mapped by the ProcMgr module
ProcMgr_AttachParams_tag | Configuration parameters specific to the slave ProcMgr instance
ProcMgr_MappedMemEntry | Structure containing information of mapped memory regions
ProcMgr_ProcInfo_tag | Characteristics of the slave processor
ProcMgr_SectionInfo_tag | Characteristics of sections in executable
ProcMgr_StartParams_tag | Configuration parameters to be provided while starting the slave processor
ResTrack_Params | Structure defining params for creating an instance
RingIO_openParams_Tag | Structure defining config parameters for opening the RingIO instances
RingIO_Params_Tag | Common parameters required to create RingIO instance of any implementation. It should be the first element of the actual implementaton params structure
RingIO_sharedMemReqDetails_tag | Structure defining config parameters for opening the RingIO instances
RingIOShm_Params_Tag | Structure defining parameters for creating the RingIOShm instances
SharedRegion_Entry | Structure defining a region
SyslinkMemMgr_AllocBlock_tag |
SyslinkMemMgr_AllocParams_tag | Alloc params
SyslinkMemMgr_CreateParams_tag | Structure defining common create parameters for the Memory manager module.Should be the first element in implementation specific create params


SysLink Application Programming Interface (API): Cache_ModuleObject Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

Cache_ModuleObject Struct Reference

Structure defining state object of cache module. More...

#include <_Cache_qnx.h>

Data Fields

Atomic | refCount
struct cache_ctrl | cinfo

Detailed Description

Structure defining state object of cache module.

Field Documentation

Atomic Cache_ModuleObject::refCount

Reference count

struct cache_ctrl Cache_ModuleObject::cinfo

Cache control state information

The documentation for this struct was generated from the following file:
  • _Cache_qnx.h


SysLink Application Programming Interface (API): Frame_FrameBufInfo_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

Frame_FrameBufInfo_tag Struct Reference

Structure to frame buffer informantion in frame header. More...

#include <FrameQDefs.h>

Data Fields

UInt32 bufPtr
UInt32 bufSize
UInt32 startOffset
UInt32 validSize
UInt32 pixelFormat
UInt32 height
UInt32 width
UInt32 stride

Detailed Description

Structure to frame buffer informantion in frame header.

Field Documentation

UInt32 Frame_FrameBufInfo_tag::bufPtr

Pointer to the frame buffer.

UInt32 Frame_FrameBufInfo_tag::bufSize

Size of the buffer.

UInt32 Frame_FrameBufInfo_tag::startOffset

Start offset in the buffer from where valid data starts.

UInt32 Frame_FrameBufInfo_tag::validSize

Valid size in the buffer from the zeroth offset in the frame buffer

UInt32 Frame_FrameBufInfo_tag::pixelFormat
UInt32 Frame_FrameBufInfo_tag::height
UInt32 Frame_FrameBufInfo_tag::width
UInt32 Frame_FrameBufInfo_tag::stride
The documentation for this struct was generated from the following file:
  • FrameQDefs.h


SysLink Application Programming Interface (API): Frame_FrameHeader_Tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

Frame_FrameHeader_Tag Struct Reference

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. More...

#include <FrameQDefs.h>

Collaboration diagram for Frame_FrameHeader_Tag:
[legend]

Data Fields

UInt32 reserved0
UInt32 reserved1
UInt16 baseHeaderSize
UInt16 headerSize
UInt32 frmAllocaterId
UInt32 frameBufType
UInt8 freeFrmQueueNo
UInt8 numFrameBuffers
Frame_FrameBufInfo frameBufInfo [1]

Detailed Description

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.

Field Documentation

UInt32 Frame_FrameHeader_Tag::reserved0

reserverd field

UInt32 Frame_FrameHeader_Tag::reserved1

reserverd field

UInt16 Frame_FrameHeader_Tag::baseHeaderSize

Size of the base frame header.

UInt16 Frame_FrameHeader_Tag::headerSize

Size of the frame header(total size of base header and extended header).

UInt32 Frame_FrameHeader_Tag::frmAllocaterId

Denotes the FrameQBufMgr Id from which frame is allocated.

UInt32 Frame_FrameHeader_Tag::frameBufType
UInt8 Frame_FrameHeader_Tag::freeFrmQueueNo

Free quque No from which frame is allocated in FrameQBufMgr.

UInt8 Frame_FrameHeader_Tag::numFrameBuffers

Number of framebuffers in frame.

Frame_FrameBufInfo Frame_FrameHeader_Tag::frameBufInfo[1]

Information of Frame buffers. see Frame_FrameBufInfo

The documentation for this struct was generated from the following file:
  • FrameQDefs.h


SysLink Application Programming Interface (API): FrameQ_CommonOpenParams_Tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQ_CommonOpenParams_Tag Struct Reference

Common parameters required to open a FrameQ instance of any implementation. More...

#include <FrameQ.h>

Data Fields

String name
Ptr sharedAddr
UInt32 openMode
UInt32 cpuAccessFlags

Detailed Description

Common parameters required to open a FrameQ instance of any implementation.

Field Documentation

String FrameQ_CommonOpenParams_Tag::name

Name of the instance to open

Ptr FrameQ_CommonOpenParams_Tag::sharedAddr

Virtual shared Region addr in case open by address is required.

UInt32 FrameQ_CommonOpenParams_Tag::openMode

Mode of the client.

UInt32 FrameQ_CommonOpenParams_Tag::cpuAccessFlags

cpuAccessFlags flags to know if app is going to access frame buffers through CPU.

The documentation for this struct was generated from the following file:
  • FrameQ.h


SysLink Application Programming Interface (API): FrameQ_Config_Tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQ_Config_Tag Struct Reference

Structure defining config parameters for the FrameQ module. More...

#include <FrameQ.h>

Data Fields

UInt32 eventNo
UInt8 maxInstances
UInt32 usedefaultgate

Detailed Description

Structure defining config parameters for the FrameQ module.

Field Documentation

UInt32 FrameQ_Config_Tag::eventNo

Notify event number used for client notifications

UInt8 FrameQ_Config_Tag::maxInstances

Maximum instances

UInt32 FrameQ_Config_Tag::usedefaultgate

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

The documentation for this struct was generated from the following file:
  • FrameQ.h


SysLink Application Programming Interface (API): FrameQ_CreateParams_Tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQ_CreateParams_Tag Struct Reference

Common parameters required to create FrameQ instance of any implementation. It should be the first element of the actual implementaton params structure. More...

#include <FrameQ.h>

Data Fields

UInt32 size
FrameQ_Interface ctrlInterfaceType
String name
Bool openFlag

Detailed Description

Common parameters required to create FrameQ instance of any implementation. It should be the first element of the actual implementaton params structure.

Field Documentation

UInt32 FrameQ_CreateParams_Tag::size

Size of the paramstructure

FrameQ_Interface FrameQ_CreateParams_Tag::ctrlInterfaceType

Interface type

String FrameQ_CreateParams_Tag::name

Name of the instance

Bool FrameQ_CreateParams_Tag::openFlag
The documentation for this struct was generated from the following file:
  • FrameQ.h


SysLink Application Programming Interface (API): FrameQ_NotifyParams_Tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQ_NotifyParams_Tag Struct Reference

Notification parameter structure. More...

#include <FrameQ.h>

Data Fields

FrameQ_NotifyType notifyType
UInt32 watermark
FrameQ_NotifyFunc cbFxnPtr
Ptr cbContext
Ptr cbClientHandle

Detailed Description

Notification parameter structure.

Field Documentation

FrameQ_NotifyType FrameQ_NotifyParams_Tag::notifyType

Notification type

UInt32 FrameQ_NotifyParams_Tag::watermark

Minumum number of free frames required to generate notification Same water mark for all the individual freeFramePools in the set.

FrameQ_NotifyFunc FrameQ_NotifyParams_Tag::cbFxnPtr

Cacll back function

Ptr FrameQ_NotifyParams_Tag::cbContext

Context pointer that needs to be passed to call back function.

Ptr FrameQ_NotifyParams_Tag::cbClientHandle

Handle that needs to be passed as first arg to call back. Ideally this should be callers client handle.

The documentation for this struct was generated from the following file:
  • FrameQ.h


SysLink Application Programming Interface (API): FrameQ_Params Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQ_Params Struct Reference

Common parameters required to create FrameQ instance of any implementation. It should be the first element of the actual implementaton params structure . More...

#include <FrameQ.h>

Collaboration diagram for FrameQ_Params:
[legend]

Data Fields

FrameQ_CreateParams commonCreateParams
Ptr impParams
UInt32 impParamsSize

Detailed Description

Common parameters required to create FrameQ instance of any implementation. It should be the first element of the actual implementaton params structure .

Field Documentation

FrameQ_CreateParams FrameQ_Params::commonCreateParams
Ptr FrameQ_Params::impParams

Pointer to implementation specific parameters

UInt32 FrameQ_Params::impParamsSize

Size of the implementation specific structure pointed by impParams.

The documentation for this struct was generated from the following file:
  • FrameQ.h


SysLink Application Programming Interface (API): FrameQ_ShMem_OpenParams_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQ_ShMem_OpenParams_tag Struct Reference

Structure defining open parameters for the FrameQ instance on ShMem (shared memory interface). More...

#include <FrameQ_ShMem.h>

Collaboration diagram for FrameQ_ShMem_OpenParams_tag:
[legend]

Data Fields

FrameQ_CommonOpenParams commonOpenParams

Detailed Description

Structure defining open parameters for the FrameQ instance on ShMem (shared memory interface).

Field Documentation

FrameQ_CommonOpenParams FrameQ_ShMem_OpenParams_tag::commonOpenParams

Open params common to all the implementations

The documentation for this struct was generated from the following file:
  • FrameQ_ShMem.h


SysLink Application Programming Interface (API): FrameQ_ShMem_Params_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQ_ShMem_Params_tag Struct Reference

Structure defining instance create parameters for the FrameQ on shared memory(inter core and intra core). More...

#include <FrameQ_ShMem.h>

Collaboration diagram for FrameQ_ShMem_Params_tag:
[legend]

Data Fields

FrameQ_CreateParams commonCreateParams
GateMP_Handle gate
GateMP_LocalProtect localProtect
GateMP_RemoteProtect remoteProtect
Ptr sharedAddr
UInt32 sharedAddrSize
UInt32 regionId
UInt32 numReaders
UInt32 numQueues
UInt32 cpuAccessFlags
String frameQBufMgrName
Ptr frameQBufMgrSharedAddr

Detailed Description

Structure defining instance create parameters for the FrameQ on shared memory(inter core and intra core).

Field Documentation

FrameQ_CreateParams FrameQ_ShMem_Params_tag::commonCreateParams

Common create parameters .Same for all the implementations of FrameQ

GateMP_Handle FrameQ_ShMem_Params_tag::gate

gate used for critical region management of the shared memory.

If it is null, FrameQ decides the gate based on the following 1. If module's usedefaultgate is set to FALSE, It creates a gate internally based on the localProtect and remoteProtect flags provided in this params. 2. If module's usedefaultgate is set to TRUE, it uses the module' s gloabl gate for the instance. if module's global gate does not exist FrameQ uses the GateMP's default gate for the instance.

GateMP_LocalProtect FrameQ_ShMem_Params_tag::localProtect

local protection level for the instance. Will be used if gate passed is NULL.

GateMP_RemoteProtect FrameQ_ShMem_Params_tag::remoteProtect

Multiprocessor protection for the module instances.Will be used if gate is passed as NULL to create gate internally.

Ptr FrameQ_ShMem_Params_tag::sharedAddr

Virtual Address of the shared memory.Must be mapped on other processors if instance needs to be accessible from other processors.

The creator must supply the shared memory that this will use to maintain shared state information. Required parameter if regionId is not specified.

UInt32 FrameQ_ShMem_Params_tag::sharedAddrSize

Size of sharedAddr

Can use the FrameQ_ShMem_sharedMemReq call to determine the required size.

Required parameter if regionId is not specified.

UInt32 FrameQ_ShMem_Params_tag::regionId

Shared region ID

The ID corresponding to the shared region in which this shared instance is to be placed.

UInt32 FrameQ_ShMem_Params_tag::numReaders

Number of readers that can use this instance.

UInt32 FrameQ_ShMem_Params_tag::numQueues

Number of queues( Reader can retrieve frames from these queue by mentioning the queueId in getv calls.) supported for each reader.

UInt32 FrameQ_ShMem_Params_tag::cpuAccessFlags

cpuAccessFlags flags denoting whether frame buffers are accessed through CPU or not. All the conrol structure and header buffers cache flags will be derived internally based on shared region settings.

String FrameQ_ShMem_Params_tag::frameQBufMgrName

Name of FrameQ bufMgr that needs to be opened in FrameQ instance for use. Note: The FrameQBufMgr instance has to be created prior to calling FrameQ_create API.

Ptr FrameQ_ShMem_Params_tag::frameQBufMgrSharedAddr

Shared Address of the FrameQBufMgr instance that needs to be used in FrameQ.Not required if FrameQ_ShMem_Params::frameQBufMgrName is provided.

The documentation for this struct was generated from the following file:
  • FrameQ_ShMem.h


SysLink Application Programming Interface (API): FrameQBufMgr_CommonOpenParams_Tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQBufMgr_CommonOpenParams_Tag Struct Reference

Common parameters required to open a FrameQBufMgr instance of any implementation. More...

#include <FrameQBufMgr.h>

Data Fields

String name
UInt32 cpuAccessFlags
Ptr sharedAddr

Detailed Description

Common parameters required to open a FrameQBufMgr instance of any implementation.

Field Documentation

String FrameQBufMgr_CommonOpenParams_Tag::name

Name of the instance to open

UInt32 FrameQBufMgr_CommonOpenParams_Tag::cpuAccessFlags

cpuAccessFlags flags to know if Frame buffers are accessed through CPU

Ptr FrameQBufMgr_CommonOpenParams_Tag::sharedAddr

Virtual shared Region addr in case open by address is required.

The documentation for this struct was generated from the following file:
  • FrameQBufMgr.h


SysLink Application Programming Interface (API): FrameQBufMgr_Config_Tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQBufMgr_Config_Tag Struct Reference

Structure defining module config parameters for the FrameQBufMgr module. More...

#include <FrameQBufMgr.h>

Data Fields

UInt32 eventNo
Bool maxInstances
UInt32 usedefaultgate

Detailed Description

Structure defining module config parameters for the FrameQBufMgr module.

Field Documentation

UInt32 FrameQBufMgr_Config_Tag::eventNo

Event number used for notification

Bool FrameQBufMgr_Config_Tag::maxInstances

Maximum instances of the module

UInt32 FrameQBufMgr_Config_Tag::usedefaultgate
The documentation for this struct was generated from the following file:
  • FrameQBufMgr.h


SysLink Application Programming Interface (API): FrameQBufMgr_CreateParams_Tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQBufMgr_CreateParams_Tag Struct Reference

Common parameters required to create FrameQBufMgr instance of any implementation. More...

#include <FrameQBufMgr.h>

Data Fields

UInt32 size
FrameQBufMgr_Interface ctrlInterfaceType
String name
UInt32 openFlag

Detailed Description

Common parameters required to create FrameQBufMgr instance of any implementation.

This struct must be the first field of the implementation-specific params structure.

Field Documentation

UInt32 FrameQBufMgr_CreateParams_Tag::size

size of param struct

FrameQBufMgr_Interface FrameQBufMgr_CreateParams_Tag::ctrlInterfaceType

Interface type

String FrameQBufMgr_CreateParams_Tag::name

Instance name

UInt32 FrameQBufMgr_CreateParams_Tag::openFlag

Open flag to indicate create or open.

Remarks:
This is an internal flag, the caller should not touch this flag during create
The documentation for this struct was generated from the following file:
  • FrameQBufMgr.h


SysLink Application Programming Interface (API): FrameQBufMgr_FrameBufParams_Tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQBufMgr_FrameBufParams_Tag Struct Reference

Frame buffer param structure. More...

#include <FrameQBufMgr.h>

Data Fields

UInt32 size
UInt32 pixelFormat
UInt32 height
UInt32 width
UInt32 align

Detailed Description

Frame buffer param structure.

Field Documentation

UInt32 FrameQBufMgr_FrameBufParams_Tag::size

size of the Frame buffer. valid if it is not a Tiler buffer

UInt32 FrameQBufMgr_FrameBufParams_Tag::pixelFormat

Pixel format.Valid for Tiler buffers

UInt32 FrameQBufMgr_FrameBufParams_Tag::height

Height of buffer.Valid for Tiler buffers

UInt32 FrameQBufMgr_FrameBufParams_Tag::width

Width of the buffer.Valid for Tiler buffers

UInt32 FrameQBufMgr_FrameBufParams_Tag::align

Alignment of the buffer.Currently not used.

The documentation for this struct was generated from the following file:
  • FrameQBufMgr.h


SysLink Application Programming Interface (API): FrameQBufMgr_NotifyParams_Tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQBufMgr_NotifyParams_Tag Struct Reference

Structure defining notification parameter structure. More...

#include <FrameQBufMgr.h>

Data Fields

SysLink_NotifyType notifyType
UInt32 watermark
FrameQBufMgr_NotifyFunc cbFxnPtr
Ptr cbContext
Ptr cbClientHandle

Detailed Description

Structure defining notification parameter structure.

Field Documentation

SysLink_NotifyType FrameQBufMgr_NotifyParams_Tag::notifyType

Notification type.See SysLink_NotifyType

UInt32 FrameQBufMgr_NotifyParams_Tag::watermark

Minumum number of free frames required to generate notification Same water mark for all the individual freeFramePools in the set.

FrameQBufMgr_NotifyFunc FrameQBufMgr_NotifyParams_Tag::cbFxnPtr

Callback function

Ptr FrameQBufMgr_NotifyParams_Tag::cbContext

Context pointer that needs to be passed to call back function.

Ptr FrameQBufMgr_NotifyParams_Tag::cbClientHandle

Handle that needs to be passed as first arg to call back. Ideally this should be callers client handle.

The documentation for this struct was generated from the following file:
  • FrameQBufMgr.h


SysLink Application Programming Interface (API): FrameQBufMgr_Params Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQBufMgr_Params Struct Reference

Common parameters required to create FrameQBufMgr instance of any implementation. More...

#include <FrameQBufMgr.h>

Collaboration diagram for FrameQBufMgr_Params:
[legend]

Data Fields

FrameQBufMgr_CreateParams commonCreateParams
Ptr impParams
UInt32 impParamsSize

Detailed Description

Common parameters required to create FrameQBufMgr instance of any implementation.

This struct must be the first element of the implementation-specific create params structure.

Field Documentation

FrameQBufMgr_CreateParams FrameQBufMgr_Params::commonCreateParams
Ptr FrameQBufMgr_Params::impParams

Pointer to implementation-specific struct

UInt32 FrameQBufMgr_Params::impParamsSize

Size of the implementation-specific impParams struct.

The documentation for this struct was generated from the following file:
  • FrameQBufMgr.h


SysLink Application Programming Interface (API): FrameQBufMgr_ShMem_OpenParams_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQBufMgr_ShMem_OpenParams_tag Struct Reference

Structure defining open parameters for the FrameQ instance on ShMem (shared memory interface). More...

#include <FrameQBufMgr_ShMem.h>

Collaboration diagram for FrameQBufMgr_ShMem_OpenParams_tag:
[legend]

Data Fields

FrameQBufMgr_CommonOpenParams commonOpenParams

Detailed Description

Structure defining open parameters for the FrameQ instance on ShMem (shared memory interface).

Field Documentation

FrameQBufMgr_CommonOpenParams FrameQBufMgr_ShMem_OpenParams_tag::commonOpenParams

open params common to all the implementations

The documentation for this struct was generated from the following file:
  • FrameQBufMgr_ShMem.h


SysLink Application Programming Interface (API): FrameQBufMgr_ShMem_Params_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

FrameQBufMgr_ShMem_Params_tag Struct Reference

Structure defining parameters for the FrameQ module. More...

#include <FrameQBufMgr_ShMem.h>

Collaboration diagram for FrameQBufMgr_ShMem_Params_tag:
[legend]

Data Fields

FrameQBufMgr_CreateParams commonCreateParams
GateMP_Handle gate
GateMP_LocalProtect localProtect
GateMP_RemoteProtect remoteProtect
Ptr sharedAddr
UInt32 sharedAddrSize
UInt32 regionId
UInt32 headerInterfaceType
UInt32 bufInterfaceType
Ptr sharedAddrHdrBuf
UInt32 sharedAddrHdrBufSize
UInt32 hdrBuf_regionId
Ptr sharedAddrFrmBuf
UInt32 sharedAddrFrmBufSize
UInt32 frmBuf_regionId
UInt32 numFreeFramePools
UInt32 | numFreeFramesInPool [FrameQBufMgr_MAX_POOLS]
UInt32 | numFreeHeaderBufsInPool [FrameQBufMgr_MAX_POOLS]
UInt32 | frameHeaderBufSize [FrameQBufMgr_MAX_POOLS]
UInt32 | numFrameBufsInFrame [FrameQBufMgr_MAX_POOLS]
FrameQBufMgr_FrameBufParams * | frameBufParams [FrameQBufMgr_MAX_POOLS]
UInt32 cpuAccessFlags
UInt32 numNotifyEntries

Detailed Description

Structure defining parameters for the FrameQ module.

Field Documentation

FrameQBufMgr_CreateParams FrameQBufMgr_ShMem_Params_tag::commonCreateParams

Common create parameters. Same for all the implementations.

GateMP_Handle FrameQBufMgr_ShMem_Params_tag::gate

Gate used for critical region management of the shared memory.

If it is NULL, FrameQBufMgr decides the gate based on the following: 1. If module's usedefaultgate is set to FALSE, It creates a gate internally based on the localProtect and remoteProtect flags provided in this params. 2. If module's usedefaultgate is set to TRUE, it uses the module's global gate for the instance. If module's global gate does not exist, FrameQBufMgr uses the GateMP's default gate for the instance.

GateMP_LocalProtect FrameQBufMgr_ShMem_Params_tag::localProtect

Local protection level for the module instance.

GateMP_RemoteProtect FrameQBufMgr_ShMem_Params_tag::remoteProtect

Default multiprocessor protection for the module instances.

Ptr FrameQBufMgr_ShMem_Params_tag::sharedAddr

Virtual Address of the shared memory.Must be mapped on other processors if instance needs to be accessible from other processors.

The creator must supply the shared memory that this will use for maintain shared state information. Required parameter.

UInt32 FrameQBufMgr_ShMem_Params_tag::sharedAddrSize

Size of shareAddr

Can use FrameQBufMgr_ShMem_sharedMemReq() call to determine the required size.

Required parameter.

UInt32 FrameQBufMgr_ShMem_Params_tag::regionId

Shared region ID

The ID corresponding to the shared region in which this shared instance is to be placed.

UInt32 FrameQBufMgr_ShMem_Params_tag::headerInterfaceType

Type of the interface used for frame headers.

Required parameter.

UInt32 FrameQBufMgr_ShMem_Params_tag::bufInterfaceType

Type of the interface used for frame buffers.

Required parameter.

Ptr FrameQBufMgr_ShMem_Params_tag::sharedAddrHdrBuf

Virtual Address of the shared memory for frame header buffers.Must be mapped on other processors if the buffers managed by this instance needs to be accessible from other processors.

The creator can supply the shared memory that this will use for maintaining the data buffers. Applications can create instances without passing this address.In this case applications need to add buffers to the instance at runtime.

UInt32 FrameQBufMgr_ShMem_Params_tag::sharedAddrHdrBufSize

Size of sharedAddrHdrBuf

UInt32 FrameQBufMgr_ShMem_Params_tag::hdrBuf_regionId
Ptr FrameQBufMgr_ShMem_Params_tag::sharedAddrFrmBuf

Shared region ID for Header buffers.

The ID corresponding to the shared region in From which Header buffers will be allocated if sharedAddrHdrBuf is not provided. Virtual shared Region Address of chunk for frame buffers.

UInt32 FrameQBufMgr_ShMem_Params_tag::sharedAddrFrmBufSize

Size of the sharedAddrFrmBuf

UInt32 FrameQBufMgr_ShMem_Params_tag::frmBuf_regionId

Shared region ID for Frame buffers.

The ID corresponding to the shared region in From which Frame buffers will be allocated if sharedAddrFrmBuf is not provided.

UInt32 FrameQBufMgr_ShMem_Params_tag::numFreeFramePools

Number of buffer pools

UInt32 FrameQBufMgr_ShMem_Params_tag::numFreeFramesInPool[FrameQBufMgr_MAX_POOLS]

Number of free frames in each pool

UInt32 FrameQBufMgr_ShMem_Params_tag::numFreeHeaderBufsInPool[FrameQBufMgr_MAX_POOLS]

Number of free header buffers in each pool

UInt32 FrameQBufMgr_ShMem_Params_tag::frameHeaderBufSize[FrameQBufMgr_MAX_POOLS]

Array of frame header buffer sizes for all the pools

UInt32 FrameQBufMgr_ShMem_Params_tag::numFrameBufsInFrame[FrameQBufMgr_MAX_POOLS]

Number of frame buffers in a frame. For each pool, Apps can specify the number of buffers in frames

FrameQBufMgr_FrameBufParams* FrameQBufMgr_ShMem_Params_tag::frameBufParams[FrameQBufMgr_MAX_POOLS]

frame buffer size of framebuffers in pool

UInt32 FrameQBufMgr_ShMem_Params_tag::cpuAccessFlags

cpuAccessFlags flags denoting whether frame buffers are accessed through CPU or not. All the conrol structure and header buffers cache flags will be derived internally based on shared region settings.

UInt32 FrameQBufMgr_ShMem_Params_tag::numNotifyEntries

Number of clients that have registered callback functions with the instance.

The documentation for this struct was generated from the following file:
  • FrameQBufMgr_ShMem.h


SysLink Application Programming Interface (API): GateMP_Params Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

GateMP_Params Struct Reference

Structure defining parameters for the GateMP module. More...

#include <GateMP.h>

Data Fields

String name
UInt16 regionId
GateMP_LocalProtect localProtect
GateMP_RemoteProtect remoteProtect

Detailed Description

Structure defining parameters for the GateMP module.

Field Documentation

String GateMP_Params::name

Name of this instance.

The name (if not NULL) must be unique among all GateMP instances in the entire system. The name does not have to be in persistent memory. The supplied string is copied into persistent memory. If no name is supplied, the instance cannot be opened calling GateMP_open. The max length of the name is defined by the maxNameLen of the NameServer instance.

UInt16 GateMP_Params::regionId

Shared region ID

The index corresponding to the shared region from which shared memory is allocated for the instance. If not specified, the default of '0' is used, otherwise the specified SharedRegion is used. The amount of shared memory allocated can be determined by calling GateMP_sharedMemReq.

GateMP_LocalProtect GateMP_Params::localProtect

Local protection level

The default value is GateMP_LocalProtect_THREAD

GateMP_RemoteProtect GateMP_Params::remoteProtect

Remote protection level

The default value is GateMP_RemoteProtect_SYSTEM

The documentation for this struct was generated from the following file:
  • GateMP.h


SysLink Application Programming Interface (API): GateProcess_Params Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

GateProcess_Params Struct Reference

Create parameter structure. More...

#include <GateProcess.h>

Data Fields

UInt reserved

Detailed Description

Create parameter structure.

Field Documentation

UInt GateProcess_Params::reserved
The documentation for this struct was generated from the following file:
  • GateProcess.h


SysLink Application Programming Interface (API): GateProcess_ShMem Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

GateProcess_ShMem Struct Reference

Shared memory structure used by instance. More...

#include <GateProcess.h>

Data Fields

Char _f1 [16]

Detailed Description

Shared memory structure used by instance.

Field Documentation

Char GateProcess_ShMem::_f1[16]
The documentation for this struct was generated from the following file:
  • GateProcess.h


SysLink Application Programming Interface (API): HeapBufMP_ExtendedStats Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

HeapBufMP_ExtendedStats Struct Reference

Stats structure for the HeapBufMP_getExtendedStats API. More...

#include <HeapBufMP.h>

Data Fields

UInt maxAllocatedBlocks
UInt numAllocatedBlocks

Detailed Description

Stats structure for the HeapBufMP_getExtendedStats API.

Field Documentation

UInt HeapBufMP_ExtendedStats::maxAllocatedBlocks

The maximum number of blocks allocated from this heap at any point in time during the lifetime of this HeapBufMP instance.

UInt HeapBufMP_ExtendedStats::numAllocatedBlocks

The total number of blocks currently allocated in this HeapBufMP instance.

The documentation for this struct was generated from the following file:
  • HeapBufMP.h


SysLink Application Programming Interface (API): HeapBufMP_Params Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

HeapBufMP_Params Struct Reference

Structure defining parameters for the HeapBufMP module. More...

#include <HeapBufMP.h>

Data Fields

String name
UInt16 regionId
SizeT blockSize
UInt numBlocks
SizeT align
Bool exact
GateMP_Handle gate

Detailed Description

Structure defining parameters for the HeapBufMP module.

Field Documentation

String HeapBufMP_Params::name

Name of this instance.

The name (if not NULL) must be unique among all HeapBufMP instances in the entire system. When creating a new heap, it is necessary to supply an instance name.

The name does not have to be persistent. The supplied string is copied into persistent memory.

UInt16 HeapBufMP_Params::regionId

Shared region ID

The index corresponding to the shared region from which shared memory will be allocated.

SizeT HeapBufMP_Params::blockSize

Size (in MAUs) of each block.

HeapBufMP will round the blockSize up to the nearest multiple of the alignment, so the actual blockSize may be larger. When creating a HeapBufMP dynamically, this needs to be taken into account to determine the proper buffer size to pass in.

Required parameter.

The default size of the blocks is 0 MAUs.

UInt HeapBufMP_Params::numBlocks

Number of fixed-size blocks.

This is a required parameter for all new HeapBufMP instances.

SizeT HeapBufMP_Params::align

Alignment (in MAUs) of each block.

The alignment must be a power of 2. If the value 0 is specified, the value will be changed to meet minimum structure alignment requirements and the cache alignment size of the region in which the heap will be placed. Therefore, the actual alignment may be larger.

The default alignment is 0.

Bool HeapBufMP_Params::exact

Use exact matching

Setting this flag will allow allocation only if the requested size is equal to (rather than less than or equal to) the buffer's block size.

GateMP_Handle HeapBufMP_Params::gate

GateMP used for critical region management of the shared memory

Using the default value of NULL will result in use of the GateMP system gate for context protection.

The documentation for this struct was generated from the following file:
  • HeapBufMP.h


SysLink Application Programming Interface (API): HeapMemMP_ExtendedStats Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

HeapMemMP_ExtendedStats Struct Reference

Stats structure for the HeapMemMP_getExtendedStats API. More...

#include <HeapMemMP.h>

Data Fields

Ptr buf
SizeT size

Detailed Description

Stats structure for the HeapMemMP_getExtendedStats API.

Field Documentation

Ptr HeapMemMP_ExtendedStats::buf

Local address of the shared buffer

SizeT HeapMemMP_ExtendedStats::size

Size of the shared buffer

The documentation for this struct was generated from the following file:
  • HeapMemMP.h


SysLink Application Programming Interface (API): HeapMemMP_Params Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

HeapMemMP_Params Struct Reference

Structure defining parameters for the HeapMemMP module. More...

#include <HeapMemMP.h>

Data Fields

String name
UInt16 regionId
SizeT sharedBufSize
GateMP_Handle gate

Detailed Description

Structure defining parameters for the HeapMemMP module.

Field Documentation

String HeapMemMP_Params::name

Name of this instance.

The name (if not NULL) must be unique among all HeapMemMP instances in the entire system. When creating a new heap, it is necessary to supply an instance name.

The name does not have to be persistent. The supplied string is copied into persistent memory.

UInt16 HeapMemMP_Params::regionId

Shared region ID

The index corresponding to the shared region from which shared memory will be allocated.

SizeT HeapMemMP_Params::sharedBufSize

Size of shared buffer

This is the size of the buffer to be used in the HeapMemMP instance. The actual buffer size in the created instance might actually be less than the value supplied in 'sharedBufSize' because of alignment constraints.

It is important to note that the total amount of shared memory required for a HeapMemMP instance will be greater than the size supplied here. Additional space will be consumed by shared instance attributes and alignment-related padding.

GateMP_Handle HeapMemMP_Params::gate

GateMP used for critical region management of the shared memory

Using the default value of NULL will result in use of the GateMP system gate for context protection.

The documentation for this struct was generated from the following file:
  • HeapMemMP.h


SysLink Application Programming Interface (API): HeapMultiBufMP_Bucket Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

HeapMultiBufMP_Bucket Struct Reference

Structure for bucket configuration. More...

#include <HeapMultiBufMP.h>

Data Fields

SizeT blockSize
UInt numBlocks
SizeT align

Detailed Description

Structure for bucket configuration.

An array of buckets is a required parameter to create any HeapMultiBufMP instance. The fields of each bucket correspond to the attributes of each buffer in the HeapMultiBufMP. The actual block sizes and alignments may be adjusted per the process described at HeapMultiBufMP_Params::bucketEntries.

Field Documentation

SizeT HeapMultiBufMP_Bucket::blockSize

Size of each block in this bucket (in MADUs)

UInt HeapMultiBufMP_Bucket::numBlocks

Number of blocks of this size

SizeT HeapMultiBufMP_Bucket::align

Alignment of each block (in MADUs)

The documentation for this struct was generated from the following file:
  • HeapMultiBufMP.h


SysLink Application Programming Interface (API): HeapMultiBufMP_ExtendedStats Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

HeapMultiBufMP_ExtendedStats Struct Reference

Stats structure for the HeapMultiBufMP_getExtendedStats API. More...

#include <HeapMultiBufMP.h>

Data Fields

UInt numBuckets
UInt | numBlocks [((UInt) 8)]
UInt | blockSize [((UInt) 8)]
UInt | align [((UInt) 8)]
UInt | maxAllocatedBlocks [((UInt) 8)]
UInt | numAllocatedBlocks [((UInt) 8)]

Detailed Description

Stats structure for the HeapMultiBufMP_getExtendedStats API.

Field Documentation

UInt HeapMultiBufMP_ExtendedStats::numBuckets

Number of buffers after optimization

UInt HeapMultiBufMP_ExtendedStats::numBlocks[((UInt) 8)]

Number of blocks in each buffer

UInt HeapMultiBufMP_ExtendedStats::blockSize[((UInt) 8)]

Block size of each buffer

UInt HeapMultiBufMP_ExtendedStats::align[((UInt) 8)]

Alignment of each buffer

UInt HeapMultiBufMP_ExtendedStats::maxAllocatedBlocks[((UInt) 8)]

The maximum number of blocks allocated from this heap at any single point in time during the lifetime of this HeapMultiBufMP instance

UInt HeapMultiBufMP_ExtendedStats::numAllocatedBlocks[((UInt) 8)]

The total number of blocks currently allocated in this HeapMultiBufMP instance

The documentation for this struct was generated from the following file:
  • HeapMultiBufMP.h


SysLink Application Programming Interface (API): HeapMultiBufMP_Params Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

HeapMultiBufMP_Params Struct Reference

Structure defining parameters for the HeapMultiBufMP module. More...

#include <HeapMultiBufMP.h>

Collaboration diagram for HeapMultiBufMP_Params:
[legend]

Data Fields

GateMP_Handle gate
Bool exact
String name
Int numBuckets
HeapMultiBufMP_Bucket * bucketEntries
UInt16 regionId

Detailed Description

Structure defining parameters for the HeapMultiBufMP module.

Field Documentation

GateMP_Handle HeapMultiBufMP_Params::gate

GateMP used for critical region management of the shared memory

Using the default value of NULL will result in use of the GateMP system gate for context protection.

Bool HeapMultiBufMP_Params::exact

Use exact matching

Setting this flag will allow allocation only if the requested size is equal to (rather than less than or equal to) a buffer's block size.

String HeapMultiBufMP_Params::name

Name of this instance.

The name (if not NULL) must be unique among all HeapMultiBufMP instances in the entire system. When creating a new heap, it is necessary to supply an instance name.

The name does not have to be persistent. The supplied string is copied into persistent memory.

Int HeapMultiBufMP_Params::numBuckets

Number of buckets in HeapMultiBufMP_Params::bucketEntries

This parameter is required to create any instance.

HeapMultiBufMP_Bucket* HeapMultiBufMP_Params::bucketEntries

Bucket Entries

The bucket entries are an array of HeapMultiBufMP_Bucket whose values correspond to the desired alignment, block size and length for each buffer. It is important to note that the alignments and sizes for each buffer may be adjusted due to cache and alignment related constraints. Buffer sizes are rounded up by their corresponding alignments. Buffer alignments themselves will assume the value of region cache alignment size when the cache size is greater than the requested buffer alignment.

For example, specifying a bucket with {blockSize: 192, align: 256} will result in a buffer of blockSize = 256 and alignment = 256. If cache alignment is required, then a bucket of {blockSize: 96, align: 64} will result in a buffer of blockSize = 128 and alignment = 128 (assuming cacheSize = 128).

UInt16 HeapMultiBufMP_Params::regionId

Shared region ID

The index corresponding to the shared region from which shared memory will be allocated.

The documentation for this struct was generated from the following file:
  • HeapMultiBufMP.h


SysLink Application Programming Interface (API): HeapQueueMgr_Params Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

HeapQueueMgr_Params Struct Reference

Structure defining parameters for the HeapQueueMgr module. More...

#include <HeapQueueMgr.h>

Data Fields

String name
UInt16 regionId
SizeT blockSize
UInt numBlocks

Detailed Description

Structure defining parameters for the HeapQueueMgr module.

Field Documentation

String HeapQueueMgr_Params::name

Name of this instance.

The name (if not NULL) must be unique among all HeapQueueMgr instances in the entire system. When creating a new heap, it is necessary to supply an instance name.

The name does not have to be persistent. The supplied string is copied into persistent memory.

UInt16 HeapQueueMgr_Params::regionId

Shared region ID

The index corresponding to the shared region from which shared memory will be allocated.

SizeT HeapQueueMgr_Params::blockSize

Size (in MAUs) of each block.

HeapQueueMgr will round the blockSize up to the nearest multiple of the alignment, so the actual blockSize may be larger. When creating a HeapQueueMgr dynamically, this needs to be taken into account to determine the proper buffer size to pass in.

Required parameter.

The default size of the blocks is 0 MAUs.

UInt HeapQueueMgr_Params::numBlocks

Number of fixed-size blocks.

This is a required parameter for all new HeapQueueMgr instances.

The documentation for this struct was generated from the following file:
  • HeapQueueMgr.h


SysLink Application Programming Interface (API): IGateProvider_Object Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

IGateProvider_Object Struct Reference

#include <IGateProvider.h>

Data Fields

IGateProvider_ENTER enter
IGateProvider_LEAVE leave

Detailed Description

Structure for generic gate instance

Field Documentation

IGateProvider_ENTER IGateProvider_Object::enter
IGateProvider_LEAVE IGateProvider_Object::leave
The documentation for this struct was generated from the following file:
  • IGateProvider.h


SysLink Application Programming Interface (API): IHeap_Object_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

IHeap_Object_tag Struct Reference

Structure for the Handle for the Heap. More...

#include <IHeap.h>

Data Fields

IHeap_allocFxn alloc
IHeap_freeFxn free
IHeap_getStatsFxn getStats
IHeap_isBlockingFxn isBlocking
IHeap_getKnlHandleFxn getKnlHandle
Ptr obj

Detailed Description

Structure for the Handle for the Heap.

Field Documentation

IHeap_allocFxn IHeap_Object_tag::alloc

Allocate a block

IHeap_freeFxn IHeap_Object_tag::free

Free a block

IHeap_getStatsFxn IHeap_Object_tag::getStats

Get statistics

IHeap_isBlockingFxn IHeap_Object_tag::isBlocking

Does the Heap block during alloc/free?

IHeap_getKnlHandleFxn IHeap_Object_tag::getKnlHandle

Get kernel object handle

Ptr IHeap_Object_tag::obj

Actual Heap Handle

The documentation for this struct was generated from the following file:
  • IHeap.h


SysLink Application Programming Interface (API): IpcMemMgr_Config_t Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

IpcMemMgr_Config_t Struct Reference

Structure defining config parameters for overall System. More...

#include <IpcMemMgr.h>

Data Fields

UInt32 size
UInt32 minAlign
UInt32 gateOffset

Detailed Description

Structure defining config parameters for overall System.

Field Documentation

UInt32 IpcMemMgr_Config_t::size

Size of the shared memory to create

UInt32 IpcMemMgr_Config_t::minAlign
UInt32 IpcMemMgr_Config_t::gateOffset
The documentation for this struct was generated from the following file:
  • IpcMemMgr.h


SysLink Application Programming Interface (API): List_Elem_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

List_Elem_tag Struct Reference

Structure defining object for the list element. More...

#include <List.h>

Collaboration diagram for List_Elem_tag:
[legend]

Data Fields

struct List_Elem_tag * | next
struct List_Elem_tag * | prev

Detailed Description

Structure defining object for the list element.

Field Documentation

struct List_Elem_tag* List_Elem_tag::next

Pointer to the next element

struct List_Elem_tag* List_Elem_tag::prev

Pointer to the previous element

The documentation for this struct was generated from the following file:
  • List.h


SysLink Application Programming Interface (API): List_Object_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

List_Object_tag Struct Reference

Structure defining object for the list. More...

#include <List.h>

Collaboration diagram for List_Object_tag:
[legend]

Data Fields

List_Elem elem

Detailed Description

Structure defining object for the list.

Field Documentation

List_Elem List_Object_tag::elem

Head pointing to next element

The documentation for this struct was generated from the following file:
  • List.h


SysLink Application Programming Interface (API): List_Params_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

List_Params_tag Struct Reference

Structure defining params for the list. More...

#include <List.h>

Data Fields

UInt32 temp

Detailed Description

Structure defining params for the list.

Field Documentation

UInt32 List_Params_tag::temp
The documentation for this struct was generated from the following file:
  • List.h


SysLink Application Programming Interface (API): ListMP_Elem Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

ListMP_Elem Struct Reference

Structure defining a ListMP element. More...

#include <ListMP.h>

Data Fields

volatile SharedRegion_SRPtr | next
volatile SharedRegion_SRPtr | prev

Detailed Description

Structure defining a ListMP element.

Field Documentation

volatile SharedRegion_SRPtr ListMP_Elem::next

SharedRegion pointer to next element

volatile SharedRegion_SRPtr ListMP_Elem::prev

SharedRegion pointer to previous element

The documentation for this struct was generated from the following file:
  • ListMP.h


SysLink Application Programming Interface (API): ListMP_Params Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

ListMP_Params Struct Reference

Structure defining parameter structure for ListMP_create(). More...

#include <ListMP.h>

Data Fields

GateMP_Handle gate
String name
UInt16 regionId

Detailed Description

Structure defining parameter structure for ListMP_create().

Field Documentation

GateMP_Handle ListMP_Params::gate

GateMP instance for critical region management of shared memory

Using the default value of NULL will result in use of the GateMP system gate for context protection.

String ListMP_Params::name

Name of the instance

The name (if not NULL) must be unique among all ListMP instances in the entire system. When creating a new heap, it is necessary to supply an instance name.

The name does not have to be persistent. The supplied string is copied into persistent memory.

UInt16 ListMP_Params::regionId

SharedRegion ID.

The ID corresponding to the index of the shared region in which this shared instance is to be placed. This is used in create() only when name is not null.

The documentation for this struct was generated from the following file:
  • ListMP.h


SysLink Application Programming Interface (API): Memory_Stats_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

Memory_Stats_tag Struct Reference

Structure defining memory related statistics. More...

#include <MemoryDefs.h>

Data Fields

UInt32 totalSize
UInt32 totalFreeSize
UInt32 largestFreeSize

Detailed Description

Structure defining memory related statistics.

Field Documentation

UInt32 Memory_Stats_tag::totalSize

Total memory size

UInt32 Memory_Stats_tag::totalFreeSize

Total free memory size

UInt32 Memory_Stats_tag::largestFreeSize

Largest free memory size

The documentation for this struct was generated from the following file:
  • MemoryDefs.h


SysLink Application Programming Interface (API): MemoryOS_MapInfo_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

MemoryOS_MapInfo_tag Struct Reference

Structure containing information required for mapping a memory region. More...

#include <_MemoryDefs.h>

Data Fields

UInt32 src
UInt32 size
UInt32 dst
Bool isCached
Ptr drvHandle

Detailed Description

Structure containing information required for mapping a memory region.

Field Documentation

UInt32 MemoryOS_MapInfo_tag::src

Address to be mapped.

UInt32 MemoryOS_MapInfo_tag::size

Size of memory region to be mapped.

UInt32 MemoryOS_MapInfo_tag::dst

Mapped address.

Bool MemoryOS_MapInfo_tag::isCached

Whether the mapping is to a cached area or uncached area.

Ptr MemoryOS_MapInfo_tag::drvHandle

Handle to the driver that is implementing the mmap call. Ignored for Kernel-side version.

The documentation for this struct was generated from the following file:
  • _MemoryDefs.h


SysLink Application Programming Interface (API): MemoryOS_SGList Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

MemoryOS_SGList Struct Reference

Structure for scatter-gathered list. More...

#include <_MemoryDefs.h>

Data Fields

UInt32 paddr
UInt32 offset
UInt32 size
Bool isCached

Detailed Description

Structure for scatter-gathered list.

Field Documentation

UInt32 MemoryOS_SGList::paddr

Page address.

UInt32 MemoryOS_SGList::offset

Offset of memory segment in the page.

UInt32 MemoryOS_SGList::size

Size of memory segment in the page.

Bool MemoryOS_SGList::isCached

Whether the mapping is to a cached area or uncached area.

The documentation for this struct was generated from the following file:
  • _MemoryDefs.h


SysLink Application Programming Interface (API): MemoryOS_UnmapInfo_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

MemoryOS_UnmapInfo_tag Struct Reference

Structure containing information required for unmapping a memory region. More...

#include <_MemoryDefs.h>

Data Fields

UInt32 addr
UInt32 size
Bool isCached

Detailed Description

Structure containing information required for unmapping a memory region.

Field Documentation

UInt32 MemoryOS_UnmapInfo_tag::addr

Address to be unmapped.

UInt32 MemoryOS_UnmapInfo_tag::size

Size of memory region to be unmapped.

Bool MemoryOS_UnmapInfo_tag::isCached

Whether the mapping is to a cached area or uncached area.

The documentation for this struct was generated from the following file:
  • _MemoryDefs.h


SysLink Application Programming Interface (API): MessageQ_MsgHeader Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

MessageQ_MsgHeader Struct Reference

Required first field in every message. More...

#include <MessageQ.h>

Data Fields

Bits32 reserved0
Bits32 reserved1
Bits32 msgSize
Bits16 flags
Bits16 msgId
Bits16 dstId
Bits16 dstProc
Bits16 replyId
Bits16 replyProc
Bits16 srcProc
Bits16 heapId
Bits16 seqNum
Bits16 reserved

Detailed Description

Required first field in every message.

Field Documentation

Bits32 MessageQ_MsgHeader::reserved0

reserved for List.elem->next

Bits32 MessageQ_MsgHeader::reserved1

reserved for List.elem->prev

Bits32 MessageQ_MsgHeader::msgSize

message size

Bits16 MessageQ_MsgHeader::flags

bitmask of different flags

Bits16 MessageQ_MsgHeader::msgId

message id

Bits16 MessageQ_MsgHeader::dstId

destination queue id

Bits16 MessageQ_MsgHeader::dstProc

destination processor id

Bits16 MessageQ_MsgHeader::replyId

reply id

Bits16 MessageQ_MsgHeader::replyProc

reply processor

Bits16 MessageQ_MsgHeader::srcProc

source processor

Bits16 MessageQ_MsgHeader::heapId

heap id

Bits16 MessageQ_MsgHeader::seqNum

sequence number

Bits16 MessageQ_MsgHeader::reserved

reserved

The documentation for this struct was generated from the following file:
  • MessageQ.h


SysLink Application Programming Interface (API): MessageQ_Params Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

MessageQ_Params Struct Reference

Structure defining parameters for the MessageQ module. More...

#include <MessageQ.h>

Data Fields

Void * synchronizer

Detailed Description

Structure defining parameters for the MessageQ module.

Field Documentation

Void* MessageQ_Params::synchronizer

Synchronizer instance used to signal IO completion

The synchronizer is used in the MessageQ_put and MessageQ_get calls. The synchronizer signal is called as part of the MessageQ_put call. The synchronizer waits in the MessageQ_get if there are no messages present.

The documentation for this struct was generated from the following file:
  • MessageQ.h


SysLink Application Programming Interface (API): NameServer_Params Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

NameServer_Params Struct Reference

NameServer_Handle type. More...

#include <NameServer.h>

Data Fields

UInt maxRuntimeEntries
Ptr tableHeap
Bool checkExisting
UInt maxValueLen
UInt maxNameLen

Detailed Description

NameServer_Handle type.

Field Documentation

UInt NameServer_Params::maxRuntimeEntries

Maximum number of name/value pairs that can be dynamically created.

This parameter allows NameServer to pre-allocate memory. When NameServer_add() or NameServer_addUInt32() is called, no memory allocation occurs.

If the number of pairs is not known at configuration time, set this value to NameServer_ALLOWGROWTH. This instructs NameServer to grow the table as needed. NameServer will allocate memory from the NameServer_Params::tableHeap when a name/value pair is added.

The default is NameServer_ALLOWGROWTH.

Ptr NameServer_Params::tableHeap

Name/value table is allocated from this heap.

The instance table and related buffers are allocated out of this heap during the dynamic create. This heap is also used to allocate new name/value pairs when NameServer_ALLOWGROWTH for NameServer_Params::maxRuntimeEntries

The default is to use the same heap that instances are allocated from which can be configured via the NameServer.common$.instanceHeap configuration parameter.

Bool NameServer_Params::checkExisting

Check if a name already exists in the name/value table.

When a name/value pair is added during runtime, if this boolean is true, the table is searched to see if the name already exists. If it does, the name is not added and the NameServer_E_ALREADYEXISTS error is returned.

If this flag is false, the table will not be checked to see if the name already exists. It will simply be added. This mode has better performance at the expense of potentially having non-unique names in the table.

This flag is used for runtime adds only. Adding non-unique names during configuration results in a build error.

UInt NameServer_Params::maxValueLen

Length, in MAUs, of the value field in the table.

Any value less than sizeof(UInt32) will be rounded up to sizeof(UInt32)

UInt NameServer_Params::maxNameLen

Length, in MAUs, of the name field in the table.

The maximum length of the name portion of the name/value pair. The length includes the null terminator ('\0').

The documentation for this struct was generated from the following file:
  • NameServer.h


SysLink Application Programming Interface (API): ProcMgr_AddrInfo_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

ProcMgr_AddrInfo_tag Struct Reference

This structure defines information about memory regions mapped by the ProcMgr module. More...

#include <ProcMgr.h>

Data Fields

UInt32 addr [ProcMgr_AddrType_EndValue]
UInt32 size
Bool isCached
Bool isMapped
ProcMgr_MapMask mapMask
UInt16 refCount

Detailed Description

This structure defines information about memory regions mapped by the ProcMgr module.

Field Documentation

UInt32 ProcMgr_AddrInfo_tag::addr[ProcMgr_AddrType_EndValue]

Addresses for each type of address space

UInt32 ProcMgr_AddrInfo_tag::size

Size of the memory region in bytes

Bool ProcMgr_AddrInfo_tag::isCached

Region cached?

Bool ProcMgr_AddrInfo_tag::isMapped

tells whether the entry is mapped

ProcMgr_MapMask ProcMgr_AddrInfo_tag::mapMask

map type needed for default entries in translation table

UInt16 ProcMgr_AddrInfo_tag::refCount

To ensure entry is added/removed only in appropriate map/unmap

The documentation for this struct was generated from the following file:
  • ProcMgr.h


SysLink Application Programming Interface (API): ProcMgr_AttachParams_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

ProcMgr_AttachParams_tag Struct Reference

Configuration parameters specific to the slave ProcMgr instance. More...

#include <ProcMgr.h>

Data Fields

ProcMgr_BootMode bootMode
Ptr bootParams

Detailed Description

Configuration parameters specific to the slave ProcMgr instance.

Field Documentation

ProcMgr_BootMode ProcMgr_AttachParams_tag::bootMode

Boot mode for the slave processor.

Ptr ProcMgr_AttachParams_tag::bootParams

Params for dependent processors like IVHD for netra.

The documentation for this struct was generated from the following file:
  • ProcMgr.h


SysLink Application Programming Interface (API): ProcMgr_MappedMemEntry Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

ProcMgr_MappedMemEntry Struct Reference

Structure containing information of mapped memory regions. More...

#include <ProcMgr.h>

Collaboration diagram for ProcMgr_MappedMemEntry:
[legend]

Data Fields

ProcMgr_AddrInfo info
ProcMgr_AddrType srcAddrType
ProcMgr_MapMask mapMask
Bool inUse

Detailed Description

Structure containing information of mapped memory regions.

Field Documentation

ProcMgr_AddrInfo ProcMgr_MappedMemEntry::info

Address information

ProcMgr_AddrType ProcMgr_MappedMemEntry::srcAddrType

Source address type used for mapping

ProcMgr_MapMask ProcMgr_MappedMemEntry::mapMask

Mapping type

Bool ProcMgr_MappedMemEntry::inUse

Entry index is in use?

The documentation for this struct was generated from the following file:
  • ProcMgr.h


SysLink Application Programming Interface (API): ProcMgr_ProcInfo_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

ProcMgr_ProcInfo_tag Struct Reference

Characteristics of the slave processor. More...

#include <ProcMgr.h>

Collaboration diagram for ProcMgr_ProcInfo_tag:
[legend]

Data Fields

ProcMgr_BootMode bootMode
UInt16 maxMemoryRegions
UInt16 numMemEntries
ProcMgr_MappedMemEntry memEntries [0]

Detailed Description

Characteristics of the slave processor.

Field Documentation

ProcMgr_BootMode ProcMgr_ProcInfo_tag::bootMode

Boot mode of the processor

UInt16 ProcMgr_ProcInfo_tag::maxMemoryRegions

Value of ProcMgr_Object.maxMemoryRegions

UInt16 ProcMgr_ProcInfo_tag::numMemEntries

Number of valid memory entries

ProcMgr_MappedMemEntry ProcMgr_ProcInfo_tag::memEntries[0]

Configuration of memory regions

The documentation for this struct was generated from the following file:
  • ProcMgr.h


SysLink Application Programming Interface (API): ProcMgr_SectionInfo_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

ProcMgr_SectionInfo_tag Struct Reference

Characteristics of sections in executable. More...

#include <ProcMgr.h>

Data Fields

UInt32 physicalAddress
UInt32 virtualAddress
UInt16 sectId
UInt32 size

Detailed Description

Characteristics of sections in executable.

Field Documentation

UInt32 ProcMgr_SectionInfo_tag::physicalAddress

Requested/returned section's physicalAddress

UInt32 ProcMgr_SectionInfo_tag::virtualAddress

Requested/returned section's vitualAddress

UInt16 ProcMgr_SectionInfo_tag::sectId

Requested/returned section id

UInt32 ProcMgr_SectionInfo_tag::size

Section size

The documentation for this struct was generated from the following file:
  • ProcMgr.h


SysLink Application Programming Interface (API): ProcMgr_StartParams_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

ProcMgr_StartParams_tag Struct Reference

Configuration parameters to be provided while starting the slave processor. More...

#include <ProcMgr.h>

Data Fields

UInt32 reserved

Detailed Description

Configuration parameters to be provided while starting the slave processor.

Field Documentation

UInt32 ProcMgr_StartParams_tag::reserved

Reserved for future params.

The documentation for this struct was generated from the following file:
  • ProcMgr.h


SysLink Application Programming Interface (API): ResTrack_Params Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

ResTrack_Params Struct Reference

Structure defining params for creating an instance. More...

#include <ResTrack.h>

Data Fields

Int temp

Detailed Description

Structure defining params for creating an instance.

Field Documentation

Int ResTrack_Params::temp
The documentation for this struct was generated from the following file:
  • ResTrack.h


SysLink Application Programming Interface (API): RingIO_openParams_Tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

RingIO_openParams_Tag Struct Reference

Structure defining config parameters for opening the RingIO instances. More...

#include <RingIO.h>

Data Fields

UInt32 flags
RingIO_OpenMode openMode

Detailed Description

Structure defining config parameters for opening the RingIO instances.

Field Documentation

UInt32 RingIO_openParams_Tag::flags

Flags to set behavior of RingIO (e.g. cache maintenance, use exact size). See RingIO_Flags

RingIO_OpenMode RingIO_openParams_Tag::openMode

Mode in which client will be opened

The documentation for this struct was generated from the following file:
  • RingIO.h


SysLink Application Programming Interface (API): RingIO_Params_Tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

RingIO_Params_Tag Struct Reference

Common parameters required to create RingIO instance of any implementation. It should be the first element of the actual implementaton params structure . More...

#include <RingIO.h>

Data Fields

String name
RingIO_Type interfaceType

Detailed Description

Common parameters required to create RingIO instance of any implementation. It should be the first element of the actual implementaton params structure .

Field Documentation

String RingIO_Params_Tag::name

Name of the instance

RingIO_Type RingIO_Params_Tag::interfaceType

interface type for ringio transport

The documentation for this struct was generated from the following file:
  • RingIO.h


SysLink Application Programming Interface (API): RingIO_sharedMemReqDetails_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

RingIO_sharedMemReqDetails_tag Struct Reference

Structure defining config parameters for opening the RingIO instances. More...

#include <RingIO.h>

Data Fields

UInt32 ctrlSharedMemReq
UInt32 dataSharedMemReq
UInt32 attrSharedMemReq

Detailed Description

Structure defining config parameters for opening the RingIO instances.

Field Documentation

UInt32 RingIO_sharedMemReqDetails_tag::ctrlSharedMemReq

Instance specific control shared memory requirements

UInt32 RingIO_sharedMemReqDetails_tag::dataSharedMemReq

Data buffer shared memory requirements

UInt32 RingIO_sharedMemReqDetails_tag::attrSharedMemReq

Attribute buffer shared memory requirements

The documentation for this struct was generated from the following file:
  • RingIO.h


SysLink Application Programming Interface (API): RingIOShm_Params_Tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

RingIOShm_Params_Tag Struct Reference

Structure defining parameters for creating the RingIOShm instances. More...

#include <RingIOShm.h>

Collaboration diagram for RingIOShm_Params_Tag:
[legend]

Data Fields

RingIO_Params commonParams
UInt16 ctrlRegionId
UInt16 dataRegionId
UInt16 attrRegionId
Ptr ctrlSharedAddr
Ptr dataSharedAddr
UInt32 dataSharedAddrSize
UInt32 footBufSize
Ptr attrSharedAddr
UInt32 attrSharedAddrSize
GateMP_Handle gateHandle
GateMP_LocalProtect localProtect
GateMP_RemoteProtect remoteProtect
UInt16 remoteProcId

Detailed Description

Structure defining parameters for creating the RingIOShm instances.

Field Documentation

RingIO_Params RingIOShm_Params_Tag::commonParams

Common create parameters .Same for all the implementations of RingIO

UInt16 RingIOShm_Params_Tag::ctrlRegionId

Shared region ID for RingIOShm control structures

The index corresponding to the shared region from which shared memory will be allocated if ctrlSharedAddr is NULL. If a valid ctrlSharedAddr is provided, this field is ignored.

UInt16 RingIOShm_Params_Tag::dataRegionId

Shared region ID for RingIOShm data buffer

The index corresponding to the shared region from which shared memory will be allocated if dataSharedAddr is NULL. If a valid dataSharedAddr is provided, this field is ignored.

UInt16 RingIOShm_Params_Tag::attrRegionId

Shared region ID for RingIOShm attr buffer

The index corresponding to the shared region from which shared memory will be allocated if attrSharedAddr is NULL. If a valid attrSharedAddr is provided, this field is ignored.

Ptr RingIOShm_Params_Tag::ctrlSharedAddr

Shared region address for control structure. If this field is NULL, memory equal to that required to allocate the RingIOShm instance control structure is allocated from heap associated with ctrlRegionId

Ptr RingIOShm_Params_Tag::dataSharedAddr

Shared Region Address for data buffer If this field is NULL, memory equal to (dataSharedAddrSize + footBufSize) is allocated from heap associated with dataRegionId

UInt32 RingIOShm_Params_Tag::dataSharedAddrSize

Data Buffer size.

UInt32 RingIOShm_Params_Tag::footBufSize

Foot Buffer size.

Ptr RingIOShm_Params_Tag::attrSharedAddr

Shared Region Address for attr buffer If this field is NULL, memory equal to attrSharedAddrSize is allocated from heap associated with attrRegionId

UInt32 RingIOShm_Params_Tag::attrSharedAddrSize

Attr Buffer size.

GateMP_Handle RingIOShm_Params_Tag::gateHandle

Gate for protection. If gateHandle is NULL, the default GateMP instance provided by the GateMP module is used.

GateMP_LocalProtect RingIOShm_Params_Tag::localProtect

Local protection level for the module instance.(not used currently)

GateMP_RemoteProtect RingIOShm_Params_Tag::remoteProtect

Remote protection level for the module instance.(not used currently)

UInt16 RingIOShm_Params_Tag::remoteProcId

Remote processor id with which the RingIOShm communicates

The documentation for this struct was generated from the following file:
  • RingIOShm.h


SysLink Application Programming Interface (API): SharedRegion_Entry Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

SharedRegion_Entry Struct Reference

Structure defining a region. More...

#include <SharedRegion.h>

Data Fields

Ptr base
SizeT len
UInt16 ownerProcId
Bool isValid
Bool cacheEnable
SizeT cacheLineSize
Bool createHeap
String name

Detailed Description

Structure defining a region.

Field Documentation

Ptr SharedRegion_Entry::base

The base address of the region

SizeT SharedRegion_Entry::len

The length of the region

Ths length of a region must be the same across all processors in the system.

UInt16 SharedRegion_Entry::ownerProcId

The MultiProc id of the owner of the region

The owner id for a shared region must be the same across all processors in the system.

Bool SharedRegion_Entry::isValid

Whether the region is valid

Bool SharedRegion_Entry::cacheEnable

Whether to perform cache operations for the region

If 'TRUE', a cache invalidate is performed before any read and a cache write back invalidate is performed after any write for the shared region. The cache operations are done for all caches. If 'FALSE', no cache operations are performed.

SizeT SharedRegion_Entry::cacheLineSize

The cache line size of the region

The cache line size for a region must be the same across all processors in the system. It is used for structure alignment and padding.

Bool SharedRegion_Entry::createHeap

Whether a heap is created for the region

If 'TRUE', a HeapMemMP instance is created with the size spanning the length of the shared region minus any memory that is reserved in the region. If 'FALSE', no heap is created in the shared region.

String SharedRegion_Entry::name

The name of the region.

The name must be in persistent memory. It is used for displaying in ROV.

The documentation for this struct was generated from the following file:
  • SharedRegion.h


SysLink Application Programming Interface (API): SyslinkMemMgr_AllocBlock_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

SyslinkMemMgr_AllocBlock_tag Struct Reference

#include <SyslinkMemMgr.h>

Data Fields

UInt16 pixelFormat
union {
struct {
UInt16 width
UInt16 height
} area
UInt16 len
} dim
UInt32 stride

Field Documentation

UInt16 SyslinkMemMgr_AllocBlock_tag::pixelFormat
UInt16 SyslinkMemMgr_AllocBlock_tag::width
UInt16 SyslinkMemMgr_AllocBlock_tag::height
struct { ... } SyslinkMemMgr_AllocBlock_tag::area
UInt16 SyslinkMemMgr_AllocBlock_tag::len
union { ... } SyslinkMemMgr_AllocBlock_tag::dim
UInt32 SyslinkMemMgr_AllocBlock_tag::stride
The documentation for this struct was generated from the following file:
  • SyslinkMemMgr.h


SysLink Application Programming Interface (API): SyslinkMemMgr_AllocParams_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

SyslinkMemMgr_AllocParams_tag Struct Reference

Alloc params. More...

#include <SyslinkMemMgr.h>

Collaboration diagram for SyslinkMemMgr_AllocParams_tag:
[legend]

Data Fields

UInt32 size
UInt32 align
SyslinkMemMgr_AllocBlock block [10u]
UInt32 tilerBlocks

Detailed Description

Alloc params.

Field Documentation

UInt32 SyslinkMemMgr_AllocParams_tag::size
UInt32 SyslinkMemMgr_AllocParams_tag::align
SyslinkMemMgr_AllocBlock SyslinkMemMgr_AllocParams_tag::block[10u]
UInt32 SyslinkMemMgr_AllocParams_tag::tilerBlocks
The documentation for this struct was generated from the following file:
  • SyslinkMemMgr.h


SysLink Application Programming Interface (API): SyslinkMemMgr_CreateParams_tag Struct Reference

  • Data Structures
  • Data Structure Index
  • Data Fields
Data Fields

SyslinkMemMgr_CreateParams_tag Struct Reference

Structure defining common create parameters for the Memory manager module.Should be the first element in implementation specific create params. More...

#include <SyslinkMemMgr.h>

Data Fields

UInt32 size
SyslinkMemMgr_Type memMgrType
UInt8 name [32u]

Detailed Description

Structure defining common create parameters for the Memory manager module.Should be the first element in implementation specific create params.

Field Documentation

UInt32 SyslinkMemMgr_CreateParams_tag::size

Size of the param structure

SyslinkMemMgr_Type SyslinkMemMgr_CreateParams_tag::memMgrType

type of implementation.

UInt8 SyslinkMemMgr_CreateParams_tag::name[32u]

Name of the instance

The documentation for this struct was generated from the following file:
  • SyslinkMemMgr.h


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- _ -

  • _f1 : GateProcess_ShMem


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- l -

  • largestFreeSize : Memory_Stats_tag
  • leave : IGateProvider_Object
  • len : SyslinkMemMgr_AllocBlock_tag , SharedRegion_Entry
  • localProtect : FrameQ_ShMem_Params_tag , GateMP_Params , FrameQBufMgr_ShMem_Params_tag , RingIOShm_Params_Tag


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- m -

  • mapMask : ProcMgr_AddrInfo_tag , ProcMgr_MappedMemEntry
  • maxAllocatedBlocks : HeapMultiBufMP_ExtendedStats , HeapBufMP_ExtendedStats
  • maxInstances : FrameQ_Config_Tag , FrameQBufMgr_Config_Tag
  • maxMemoryRegions : ProcMgr_ProcInfo_tag
  • maxNameLen : NameServer_Params
  • maxRuntimeEntries : NameServer_Params
  • maxValueLen : NameServer_Params
  • memEntries : ProcMgr_ProcInfo_tag
  • memMgrType : SyslinkMemMgr_CreateParams_tag
  • minAlign : IpcMemMgr_Config_t
  • msgId : MessageQ_MsgHeader
  • msgSize : MessageQ_MsgHeader


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- n -

  • name : FrameQ_CreateParams_Tag , FrameQ_CommonOpenParams_Tag , FrameQBufMgr_CommonOpenParams_Tag , HeapMemMP_Params , HeapMultiBufMP_Params , RingIO_Params_Tag , HeapQueueMgr_Params , ListMP_Params , FrameQBufMgr_CreateParams_Tag , GateMP_Params , SharedRegion_Entry , SyslinkMemMgr_CreateParams_tag , HeapBufMP_Params
  • next : List_Elem_tag , ListMP_Elem
  • notifyType : FrameQ_NotifyParams_Tag , FrameQBufMgr_NotifyParams_Tag
  • numAllocatedBlocks : HeapBufMP_ExtendedStats , HeapMultiBufMP_ExtendedStats
  • numBlocks : HeapBufMP_Params , HeapMultiBufMP_Bucket , HeapMultiBufMP_ExtendedStats , HeapQueueMgr_Params
  • numBuckets : HeapMultiBufMP_ExtendedStats , HeapMultiBufMP_Params
  • numFrameBuffers : Frame_FrameHeader_Tag
  • numFrameBufsInFrame : FrameQBufMgr_ShMem_Params_tag
  • numFreeFramePools : FrameQBufMgr_ShMem_Params_tag
  • numFreeFramesInPool : FrameQBufMgr_ShMem_Params_tag
  • numFreeHeaderBufsInPool : FrameQBufMgr_ShMem_Params_tag
  • numMemEntries : ProcMgr_ProcInfo_tag
  • numNotifyEntries : FrameQBufMgr_ShMem_Params_tag
  • numQueues : FrameQ_ShMem_Params_tag
  • numReaders : FrameQ_ShMem_Params_tag


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- o -

  • obj : IHeap_Object_tag
  • offset : MemoryOS_SGList
  • openFlag : FrameQBufMgr_CreateParams_Tag , FrameQ_CreateParams_Tag
  • openMode : RingIO_openParams_Tag , FrameQ_CommonOpenParams_Tag
  • ownerProcId : SharedRegion_Entry


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- a -

  • addr : ProcMgr_AddrInfo_tag , MemoryOS_UnmapInfo_tag
  • align : HeapBufMP_Params , HeapMultiBufMP_Bucket , FrameQBufMgr_FrameBufParams_Tag , HeapMultiBufMP_ExtendedStats , SyslinkMemMgr_AllocParams_tag
  • alloc : IHeap_Object_tag
  • area : SyslinkMemMgr_AllocBlock_tag
  • attrRegionId : RingIOShm_Params_Tag
  • attrSharedAddr : RingIOShm_Params_Tag
  • attrSharedAddrSize : RingIOShm_Params_Tag
  • attrSharedMemReq : RingIO_sharedMemReqDetails_tag


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- b -

  • base : SharedRegion_Entry
  • baseHeaderSize : Frame_FrameHeader_Tag
  • block : SyslinkMemMgr_AllocParams_tag
  • blockSize : HeapBufMP_Params , HeapMultiBufMP_Bucket , HeapMultiBufMP_ExtendedStats , HeapQueueMgr_Params
  • bootMode : ProcMgr_AttachParams_tag , ProcMgr_ProcInfo_tag
  • bootParams : ProcMgr_AttachParams_tag
  • bucketEntries : HeapMultiBufMP_Params
  • buf : HeapMemMP_ExtendedStats
  • bufInterfaceType : FrameQBufMgr_ShMem_Params_tag
  • bufPtr : Frame_FrameBufInfo_tag
  • bufSize : Frame_FrameBufInfo_tag


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- c -

  • cacheEnable : SharedRegion_Entry
  • cacheLineSize : SharedRegion_Entry
  • cbClientHandle : FrameQBufMgr_NotifyParams_Tag , FrameQ_NotifyParams_Tag
  • cbContext : FrameQ_NotifyParams_Tag , FrameQBufMgr_NotifyParams_Tag
  • cbFxnPtr : FrameQBufMgr_NotifyParams_Tag , FrameQ_NotifyParams_Tag
  • checkExisting : NameServer_Params
  • cinfo : Cache_ModuleObject
  • commonCreateParams : FrameQ_Params , FrameQ_ShMem_Params_tag , FrameQBufMgr_Params , FrameQBufMgr_ShMem_Params_tag
  • commonOpenParams : FrameQBufMgr_ShMem_OpenParams_tag , FrameQ_ShMem_OpenParams_tag
  • commonParams : RingIOShm_Params_Tag
  • cpuAccessFlags : FrameQ_CommonOpenParams_Tag , FrameQ_ShMem_Params_tag , FrameQBufMgr_CommonOpenParams_Tag , FrameQBufMgr_ShMem_Params_tag
  • createHeap : SharedRegion_Entry
  • ctrlInterfaceType : FrameQ_CreateParams_Tag , FrameQBufMgr_CreateParams_Tag
  • ctrlRegionId : RingIOShm_Params_Tag
  • ctrlSharedAddr : RingIOShm_Params_Tag
  • ctrlSharedMemReq : RingIO_sharedMemReqDetails_tag


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- d -

  • dataRegionId : RingIOShm_Params_Tag
  • dataSharedAddr : RingIOShm_Params_Tag
  • dataSharedAddrSize : RingIOShm_Params_Tag
  • dataSharedMemReq : RingIO_sharedMemReqDetails_tag
  • dim : SyslinkMemMgr_AllocBlock_tag
  • drvHandle : MemoryOS_MapInfo_tag
  • dst : MemoryOS_MapInfo_tag
  • dstId : MessageQ_MsgHeader
  • dstProc : MessageQ_MsgHeader


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- e -

  • elem : List_Object_tag
  • enter : IGateProvider_Object
  • eventNo : FrameQBufMgr_Config_Tag , FrameQ_Config_Tag
  • exact : HeapMultiBufMP_Params , HeapBufMP_Params


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- f -

  • flags : RingIO_openParams_Tag , MessageQ_MsgHeader
  • footBufSize : RingIOShm_Params_Tag
  • frameBufInfo : Frame_FrameHeader_Tag
  • frameBufParams : FrameQBufMgr_ShMem_Params_tag
  • frameBufType : Frame_FrameHeader_Tag
  • frameHeaderBufSize : FrameQBufMgr_ShMem_Params_tag
  • frameQBufMgrName : FrameQ_ShMem_Params_tag
  • frameQBufMgrSharedAddr : FrameQ_ShMem_Params_tag
  • free : IHeap_Object_tag
  • freeFrmQueueNo : Frame_FrameHeader_Tag
  • frmAllocaterId : Frame_FrameHeader_Tag
  • frmBuf_regionId : FrameQBufMgr_ShMem_Params_tag


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- g -

  • gate : FrameQ_ShMem_Params_tag , FrameQBufMgr_ShMem_Params_tag , HeapMemMP_Params , HeapMultiBufMP_Params , HeapBufMP_Params , ListMP_Params
  • gateHandle : RingIOShm_Params_Tag
  • gateOffset : IpcMemMgr_Config_t
  • getKnlHandle : IHeap_Object_tag
  • getStats : IHeap_Object_tag


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- h -

  • hdrBuf_regionId : FrameQBufMgr_ShMem_Params_tag
  • headerInterfaceType : FrameQBufMgr_ShMem_Params_tag
  • headerSize : Frame_FrameHeader_Tag
  • heapId : MessageQ_MsgHeader
  • height : SyslinkMemMgr_AllocBlock_tag , Frame_FrameBufInfo_tag , FrameQBufMgr_FrameBufParams_Tag


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- i -

  • impParams : FrameQ_Params , FrameQBufMgr_Params
  • impParamsSize : FrameQBufMgr_Params , FrameQ_Params
  • info : ProcMgr_MappedMemEntry
  • interfaceType : RingIO_Params_Tag
  • inUse : ProcMgr_MappedMemEntry
  • isBlocking : IHeap_Object_tag
  • isCached : MemoryOS_UnmapInfo_tag , MemoryOS_SGList , MemoryOS_MapInfo_tag , ProcMgr_AddrInfo_tag
  • isMapped : ProcMgr_AddrInfo_tag
  • isValid : SharedRegion_Entry


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- p -

  • paddr : MemoryOS_SGList
  • physicalAddress : ProcMgr_SectionInfo_tag
  • pixelFormat : Frame_FrameBufInfo_tag , SyslinkMemMgr_AllocBlock_tag , FrameQBufMgr_FrameBufParams_Tag
  • prev : ListMP_Elem , List_Elem_tag


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- r -

  • refCount : ProcMgr_AddrInfo_tag , Cache_ModuleObject
  • regionId : FrameQBufMgr_ShMem_Params_tag , HeapMultiBufMP_Params , HeapQueueMgr_Params , GateMP_Params , ListMP_Params , FrameQ_ShMem_Params_tag , HeapBufMP_Params , HeapMemMP_Params
  • remoteProcId : RingIOShm_Params_Tag
  • remoteProtect : GateMP_Params , FrameQ_ShMem_Params_tag , FrameQBufMgr_ShMem_Params_tag , RingIOShm_Params_Tag
  • replyId : MessageQ_MsgHeader
  • replyProc : MessageQ_MsgHeader
  • reserved : ProcMgr_StartParams_tag , MessageQ_MsgHeader , GateProcess_Params
  • reserved0 : MessageQ_MsgHeader , Frame_FrameHeader_Tag
  • reserved1 : MessageQ_MsgHeader , Frame_FrameHeader_Tag


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- s -

  • sectId : ProcMgr_SectionInfo_tag
  • seqNum : MessageQ_MsgHeader
  • sharedAddr : FrameQ_ShMem_Params_tag , FrameQBufMgr_CommonOpenParams_Tag , FrameQ_CommonOpenParams_Tag , FrameQBufMgr_ShMem_Params_tag
  • sharedAddrFrmBuf : FrameQBufMgr_ShMem_Params_tag
  • sharedAddrFrmBufSize : FrameQBufMgr_ShMem_Params_tag
  • sharedAddrHdrBuf : FrameQBufMgr_ShMem_Params_tag
  • sharedAddrHdrBufSize : FrameQBufMgr_ShMem_Params_tag
  • sharedAddrSize : FrameQ_ShMem_Params_tag , FrameQBufMgr_ShMem_Params_tag
  • sharedBufSize : HeapMemMP_Params
  • size : IpcMemMgr_Config_t , MemoryOS_MapInfo_tag , FrameQBufMgr_FrameBufParams_Tag , ProcMgr_AddrInfo_tag , ProcMgr_SectionInfo_tag , FrameQBufMgr_CreateParams_Tag , MemoryOS_UnmapInfo_tag , MemoryOS_SGList , SyslinkMemMgr_AllocParams_tag , HeapMemMP_ExtendedStats , SyslinkMemMgr_CreateParams_tag , FrameQ_CreateParams_Tag
  • src : MemoryOS_MapInfo_tag
  • srcAddrType : ProcMgr_MappedMemEntry
  • srcProc : MessageQ_MsgHeader
  • startOffset : Frame_FrameBufInfo_tag
  • stride : SyslinkMemMgr_AllocBlock_tag , Frame_FrameBufInfo_tag
  • synchronizer : MessageQ_Params


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- t -

  • tableHeap : NameServer_Params
  • temp : List_Params_tag , ResTrack_Params
  • tilerBlocks : SyslinkMemMgr_AllocParams_tag
  • totalFreeSize : Memory_Stats_tag
  • totalSize : Memory_Stats_tag


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- u -

  • usedefaultgate : FrameQ_Config_Tag , FrameQBufMgr_Config_Tag


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- v -

  • validSize : Frame_FrameBufInfo_tag
  • virtualAddress : ProcMgr_SectionInfo_tag


SysLink Application Programming Interface (API): Data Fields

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- w -

  • watermark : FrameQ_NotifyParams_Tag , FrameQBufMgr_NotifyParams_Tag
  • width : Frame_FrameBufInfo_tag , FrameQBufMgr_FrameBufParams_Tag , SyslinkMemMgr_AllocBlock_tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- _ -

  • _f1 : GateProcess_ShMem


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- l -

  • largestFreeSize : Memory_Stats_tag
  • leave : IGateProvider_Object
  • len : SyslinkMemMgr_AllocBlock_tag , SharedRegion_Entry
  • localProtect : FrameQ_ShMem_Params_tag , GateMP_Params , FrameQBufMgr_ShMem_Params_tag , RingIOShm_Params_Tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- m -

  • mapMask : ProcMgr_AddrInfo_tag , ProcMgr_MappedMemEntry
  • maxAllocatedBlocks : HeapMultiBufMP_ExtendedStats , HeapBufMP_ExtendedStats
  • maxInstances : FrameQ_Config_Tag , FrameQBufMgr_Config_Tag
  • maxMemoryRegions : ProcMgr_ProcInfo_tag
  • maxNameLen : NameServer_Params
  • maxRuntimeEntries : NameServer_Params
  • maxValueLen : NameServer_Params
  • memEntries : ProcMgr_ProcInfo_tag
  • memMgrType : SyslinkMemMgr_CreateParams_tag
  • minAlign : IpcMemMgr_Config_t
  • msgId : MessageQ_MsgHeader
  • msgSize : MessageQ_MsgHeader


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- n -

  • name : FrameQ_CreateParams_Tag , FrameQ_CommonOpenParams_Tag , FrameQBufMgr_CommonOpenParams_Tag , HeapMemMP_Params , HeapMultiBufMP_Params , RingIO_Params_Tag , HeapQueueMgr_Params , ListMP_Params , FrameQBufMgr_CreateParams_Tag , GateMP_Params , SharedRegion_Entry , SyslinkMemMgr_CreateParams_tag , HeapBufMP_Params
  • next : List_Elem_tag , ListMP_Elem
  • notifyType : FrameQ_NotifyParams_Tag , FrameQBufMgr_NotifyParams_Tag
  • numAllocatedBlocks : HeapBufMP_ExtendedStats , HeapMultiBufMP_ExtendedStats
  • numBlocks : HeapBufMP_Params , HeapMultiBufMP_Bucket , HeapMultiBufMP_ExtendedStats , HeapQueueMgr_Params
  • numBuckets : HeapMultiBufMP_ExtendedStats , HeapMultiBufMP_Params
  • numFrameBuffers : Frame_FrameHeader_Tag
  • numFrameBufsInFrame : FrameQBufMgr_ShMem_Params_tag
  • numFreeFramePools : FrameQBufMgr_ShMem_Params_tag
  • numFreeFramesInPool : FrameQBufMgr_ShMem_Params_tag
  • numFreeHeaderBufsInPool : FrameQBufMgr_ShMem_Params_tag
  • numMemEntries : ProcMgr_ProcInfo_tag
  • numNotifyEntries : FrameQBufMgr_ShMem_Params_tag
  • numQueues : FrameQ_ShMem_Params_tag
  • numReaders : FrameQ_ShMem_Params_tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- o -

  • obj : IHeap_Object_tag
  • offset : MemoryOS_SGList
  • openFlag : FrameQBufMgr_CreateParams_Tag , FrameQ_CreateParams_Tag
  • openMode : RingIO_openParams_Tag , FrameQ_CommonOpenParams_Tag
  • ownerProcId : SharedRegion_Entry


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- a -

  • addr : ProcMgr_AddrInfo_tag , MemoryOS_UnmapInfo_tag
  • align : HeapBufMP_Params , HeapMultiBufMP_Bucket , FrameQBufMgr_FrameBufParams_Tag , HeapMultiBufMP_ExtendedStats , SyslinkMemMgr_AllocParams_tag
  • alloc : IHeap_Object_tag
  • area : SyslinkMemMgr_AllocBlock_tag
  • attrRegionId : RingIOShm_Params_Tag
  • attrSharedAddr : RingIOShm_Params_Tag
  • attrSharedAddrSize : RingIOShm_Params_Tag
  • attrSharedMemReq : RingIO_sharedMemReqDetails_tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- b -

  • base : SharedRegion_Entry
  • baseHeaderSize : Frame_FrameHeader_Tag
  • block : SyslinkMemMgr_AllocParams_tag
  • blockSize : HeapBufMP_Params , HeapMultiBufMP_Bucket , HeapMultiBufMP_ExtendedStats , HeapQueueMgr_Params
  • bootMode : ProcMgr_AttachParams_tag , ProcMgr_ProcInfo_tag
  • bootParams : ProcMgr_AttachParams_tag
  • bucketEntries : HeapMultiBufMP_Params
  • buf : HeapMemMP_ExtendedStats
  • bufInterfaceType : FrameQBufMgr_ShMem_Params_tag
  • bufPtr : Frame_FrameBufInfo_tag
  • bufSize : Frame_FrameBufInfo_tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- c -

  • cacheEnable : SharedRegion_Entry
  • cacheLineSize : SharedRegion_Entry
  • cbClientHandle : FrameQBufMgr_NotifyParams_Tag , FrameQ_NotifyParams_Tag
  • cbContext : FrameQ_NotifyParams_Tag , FrameQBufMgr_NotifyParams_Tag
  • cbFxnPtr : FrameQBufMgr_NotifyParams_Tag , FrameQ_NotifyParams_Tag
  • checkExisting : NameServer_Params
  • cinfo : Cache_ModuleObject
  • commonCreateParams : FrameQ_Params , FrameQ_ShMem_Params_tag , FrameQBufMgr_Params , FrameQBufMgr_ShMem_Params_tag
  • commonOpenParams : FrameQBufMgr_ShMem_OpenParams_tag , FrameQ_ShMem_OpenParams_tag
  • commonParams : RingIOShm_Params_Tag
  • cpuAccessFlags : FrameQ_CommonOpenParams_Tag , FrameQ_ShMem_Params_tag , FrameQBufMgr_CommonOpenParams_Tag , FrameQBufMgr_ShMem_Params_tag
  • createHeap : SharedRegion_Entry
  • ctrlInterfaceType : FrameQ_CreateParams_Tag , FrameQBufMgr_CreateParams_Tag
  • ctrlRegionId : RingIOShm_Params_Tag
  • ctrlSharedAddr : RingIOShm_Params_Tag
  • ctrlSharedMemReq : RingIO_sharedMemReqDetails_tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- d -

  • dataRegionId : RingIOShm_Params_Tag
  • dataSharedAddr : RingIOShm_Params_Tag
  • dataSharedAddrSize : RingIOShm_Params_Tag
  • dataSharedMemReq : RingIO_sharedMemReqDetails_tag
  • dim : SyslinkMemMgr_AllocBlock_tag
  • drvHandle : MemoryOS_MapInfo_tag
  • dst : MemoryOS_MapInfo_tag
  • dstId : MessageQ_MsgHeader
  • dstProc : MessageQ_MsgHeader


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- e -

  • elem : List_Object_tag
  • enter : IGateProvider_Object
  • eventNo : FrameQBufMgr_Config_Tag , FrameQ_Config_Tag
  • exact : HeapMultiBufMP_Params , HeapBufMP_Params


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- f -

  • flags : RingIO_openParams_Tag , MessageQ_MsgHeader
  • footBufSize : RingIOShm_Params_Tag
  • frameBufInfo : Frame_FrameHeader_Tag
  • frameBufParams : FrameQBufMgr_ShMem_Params_tag
  • frameBufType : Frame_FrameHeader_Tag
  • frameHeaderBufSize : FrameQBufMgr_ShMem_Params_tag
  • frameQBufMgrName : FrameQ_ShMem_Params_tag
  • frameQBufMgrSharedAddr : FrameQ_ShMem_Params_tag
  • free : IHeap_Object_tag
  • freeFrmQueueNo : Frame_FrameHeader_Tag
  • frmAllocaterId : Frame_FrameHeader_Tag
  • frmBuf_regionId : FrameQBufMgr_ShMem_Params_tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- g -

  • gate : FrameQ_ShMem_Params_tag , FrameQBufMgr_ShMem_Params_tag , HeapMemMP_Params , HeapMultiBufMP_Params , HeapBufMP_Params , ListMP_Params
  • gateHandle : RingIOShm_Params_Tag
  • gateOffset : IpcMemMgr_Config_t
  • getKnlHandle : IHeap_Object_tag
  • getStats : IHeap_Object_tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- h -

  • hdrBuf_regionId : FrameQBufMgr_ShMem_Params_tag
  • headerInterfaceType : FrameQBufMgr_ShMem_Params_tag
  • headerSize : Frame_FrameHeader_Tag
  • heapId : MessageQ_MsgHeader
  • height : SyslinkMemMgr_AllocBlock_tag , Frame_FrameBufInfo_tag , FrameQBufMgr_FrameBufParams_Tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- i -

  • impParams : FrameQ_Params , FrameQBufMgr_Params
  • impParamsSize : FrameQBufMgr_Params , FrameQ_Params
  • info : ProcMgr_MappedMemEntry
  • interfaceType : RingIO_Params_Tag
  • inUse : ProcMgr_MappedMemEntry
  • isBlocking : IHeap_Object_tag
  • isCached : MemoryOS_UnmapInfo_tag , MemoryOS_SGList , MemoryOS_MapInfo_tag , ProcMgr_AddrInfo_tag
  • isMapped : ProcMgr_AddrInfo_tag
  • isValid : SharedRegion_Entry


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- p -

  • paddr : MemoryOS_SGList
  • physicalAddress : ProcMgr_SectionInfo_tag
  • pixelFormat : Frame_FrameBufInfo_tag , SyslinkMemMgr_AllocBlock_tag , FrameQBufMgr_FrameBufParams_Tag
  • prev : ListMP_Elem , List_Elem_tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- r -

  • refCount : ProcMgr_AddrInfo_tag , Cache_ModuleObject
  • regionId : FrameQBufMgr_ShMem_Params_tag , HeapMultiBufMP_Params , HeapQueueMgr_Params , GateMP_Params , ListMP_Params , FrameQ_ShMem_Params_tag , HeapBufMP_Params , HeapMemMP_Params
  • remoteProcId : RingIOShm_Params_Tag
  • remoteProtect : GateMP_Params , FrameQ_ShMem_Params_tag , FrameQBufMgr_ShMem_Params_tag , RingIOShm_Params_Tag
  • replyId : MessageQ_MsgHeader
  • replyProc : MessageQ_MsgHeader
  • reserved : ProcMgr_StartParams_tag , MessageQ_MsgHeader , GateProcess_Params
  • reserved0 : MessageQ_MsgHeader , Frame_FrameHeader_Tag
  • reserved1 : MessageQ_MsgHeader , Frame_FrameHeader_Tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- s -

  • sectId : ProcMgr_SectionInfo_tag
  • seqNum : MessageQ_MsgHeader
  • sharedAddr : FrameQ_ShMem_Params_tag , FrameQBufMgr_CommonOpenParams_Tag , FrameQ_CommonOpenParams_Tag , FrameQBufMgr_ShMem_Params_tag
  • sharedAddrFrmBuf : FrameQBufMgr_ShMem_Params_tag
  • sharedAddrFrmBufSize : FrameQBufMgr_ShMem_Params_tag
  • sharedAddrHdrBuf : FrameQBufMgr_ShMem_Params_tag
  • sharedAddrHdrBufSize : FrameQBufMgr_ShMem_Params_tag
  • sharedAddrSize : FrameQ_ShMem_Params_tag , FrameQBufMgr_ShMem_Params_tag
  • sharedBufSize : HeapMemMP_Params
  • size : IpcMemMgr_Config_t , MemoryOS_MapInfo_tag , FrameQBufMgr_FrameBufParams_Tag , ProcMgr_AddrInfo_tag , ProcMgr_SectionInfo_tag , FrameQBufMgr_CreateParams_Tag , MemoryOS_UnmapInfo_tag , MemoryOS_SGList , SyslinkMemMgr_AllocParams_tag , HeapMemMP_ExtendedStats , SyslinkMemMgr_CreateParams_tag , FrameQ_CreateParams_Tag
  • src : MemoryOS_MapInfo_tag
  • srcAddrType : ProcMgr_MappedMemEntry
  • srcProc : MessageQ_MsgHeader
  • startOffset : Frame_FrameBufInfo_tag
  • stride : SyslinkMemMgr_AllocBlock_tag , Frame_FrameBufInfo_tag
  • synchronizer : MessageQ_Params


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- t -

  • tableHeap : NameServer_Params
  • temp : List_Params_tag , ResTrack_Params
  • tilerBlocks : SyslinkMemMgr_AllocParams_tag
  • totalFreeSize : Memory_Stats_tag
  • totalSize : Memory_Stats_tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- u -

  • usedefaultgate : FrameQ_Config_Tag , FrameQBufMgr_Config_Tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- v -

  • validSize : Frame_FrameBufInfo_tag
  • virtualAddress : ProcMgr_SectionInfo_tag


SysLink Application Programming Interface (API): Data Fields - Variables

  • Data Structures
  • Data Structure Index
  • Data Fields
  • All
  • Variables
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- w -

  • watermark : FrameQ_NotifyParams_Tag , FrameQBufMgr_NotifyParams_Tag
  • width : Frame_FrameBufInfo_tag , FrameQBufMgr_FrameBufParams_Tag , SyslinkMemMgr_AllocBlock_tag


SysLink Application Programming Interface (API): File Index

  • File List
  • Globals

File List

Here is a list of all files with brief descriptions:
_Cache_qnx.h [code] | Cache interface definitions for QNX
_Memory.h [code] | Memory manager interface definitions
_MemoryDefs.h [code] | Definitions for Memory module
_MemoryOS.h [code] | Memory abstraction APIs for local memory allocation
Cache.h [code] | Defines Cache API interface
Cfg.h [code] | Configuration Helper Utilities
FrameQ.h [code] | Defines for interfaces for FrameQ module. (Deprecated)
FrameQ_ShMem.h [code] | Header file for FrameQ on SharedMemory interface. (Deprecated)
FrameQBufMgr.h [code] | Defines for interfaces for FrameQBufMgr module. (Deprecated)
FrameQBufMgr_ShMem.h [code] | Header file for FrameQBufMgr ShMem. (Deprecated)
FrameQBufMgrDefs.h [code] | Defines configurable elements for FrameQBufMgr module
FrameQDefs.h [code] | Defines configurable elements for FrameQ module. (Deprecated)
Gate.h [code] | Critical section support
GateMonitor.h [code] | Header file for Gate based on Monitor
GateMP.h [code] | Multiple processor gate that provides local and remote context protection
GateMutex.h [code] | Gate based on Mutex
GateProcess.h [code] | Process level gate
GateSem.h [code] | Header file for Gate based on Semaphore
GateSpinlock.h [code] | Gate based on Spinlock
HeapBufMP.h [code] | Multi-processor fixed-size buffer heap implementation
HeapMemMP.h [code] | Multi-processor variable size buffer heap implementation
HeapMultiBufMP.h [code] | Multiple fixed size buffer heap implementation
HeapQueueMgr.h [code] | Multi-processor fixed-size buffer heap using hardware queues
IGateProvider.h [code] | Interface implemented by all gate providers
IHeap.h [code] | Defines Heap based memory allocator
Ipc.h [code] | Ipc Manager
IpcHost.h [code] | This file contains APIs and defines that are used by applications only on the host-side of the device
IpcMemMgr.h [code] | IPC Memory Manager
List.h [code] | Creates a doubly linked list. It works as utils for other modules
ListMP.h [code] | Multiple processor shared memory list
Memory.h [code] | Memory manager interface definitions
MemoryDefs.h [code] | Definitions for Memory module
MemoryOS.h [code] | Memory abstraction APIs for local memory allocation
MessageQ.h [code] | MessageQ Manager
MultiProc.h [code] | Processor ID Manager
NameServer.h [code] | NameServer Manager
Notify.h [code] | Notification manager for IPC
OsalPrint.h [code] | Kernel utils Print interface definitions
OsalSemaphore.h [code] | Kernel utils Semaphore interface definitions
ProcMgr.h [code] | The Processor Manager on a master processor provides control functionality for a slave device
ResTrack.h [code] | Resource Tracker utility module
RingIO.h [code] | RingIO module
RingIOShm.h [code] | RingIOShm shared memory based physical transport for communication with another client
SharedRegion.h [code] | Shared memory manager and address translator
Std.h [code] | This will have definitions of standard data types for platform abstraction
String.h [code] | Defines for String manipulation library
SysLink.h [code] | This module contains common definitions, types, structures and functions used by SysLink
SyslinkMemMgr.h [code] | Header file implementing Memory manager. It is a wrapper implementation to support Shared memory allocation using heap address translations using shared region or Tiler buffer allocation using tiler buffer manager and address translations
Trace.h [code] | Kernel Trace enabling/disabling/application interface


SysLink Application Programming Interface (API): _Cache_qnx.h File Reference

Data Structures | Typedefs | Functions

_Cache_qnx.h File Reference

Detailed Description

Cache interface definitions for QNX.

#include <sys/cache.h>
#include <ti/syslink/inc/Bitops.h>
#include <ti/syslink/utils/Cache.h>
Include dependency graph for _Cache_qnx.h:

Go to the source code of this file.

Data Structures

struct | Cache_ModuleObject
Structure defining state object of cache module. More...

Typedefs

typedef struct Cache_ModuleObject | Cache_ModuleObject
Structure defining state object of cache module.

Functions

Int32 | Cache_setup (void)
Int32 | Cache_destroy (void)

Typedef Documentation

typedef struct Cache_ModuleObject Cache_ModuleObject

Structure defining state object of cache module.

Function Documentation

Int32 Cache_setup ( void )
Int32 Cache_destroy ( void )


SysLink Application Programming Interface (API): _Cache_qnx.h Source File

_Cache_qnx.h

Go to the documentation of this file.
00001
00008 /*
00009  *  ============================================================================
00010  *
00011  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00012  *
00013  *  Redistribution and use in source and binary forms, with or without
00014  *  modification, are permitted provided that the following conditions
00015  *  are met:
00016  *
00017  *  *  Redistributions of source code must retain the above copyright
00018  *     notice, this list of conditions and the following disclaimer.
00019  *
00020  *  *  Redistributions in binary form must reproduce the above copyright
00021  *     notice, this list of conditions and the following disclaimer in the
00022  *     documentation and/or other materials provided with the distribution.
00023  *
00024  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00025  *     its contributors may be used to endorse or promote products derived
00026  *     from this software without specific prior written permission.
00027  *
00028  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00029  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00030  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00031  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00032  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00033  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00034  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00035  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00036  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00037  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00038  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  *  Contact information for paper mail:
00040  *  Texas Instruments
00041  *  Post Office Box 655303
00042  *  Dallas, Texas 75265
00043  *  Contact information:
00044  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00045  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00046  *  ============================================================================
00047  *
00048  */
00049
00050
00051
00052 #ifndef _CACHE_QNX_H
00053 #define _CACHE_QNX_H
00054
00055 #include <sys/cache.h>
00056 #include <ti/syslink/inc/Bitops.h>
00057
00058 /*-------------------------   OSAL and utils   -----------------------------  */
00059 #include <ti/syslink/utils/Cache.h>
00060
00061 #if defined (__cplusplus)
00062 extern "C" {
00063 #endif
00064
00065
00066 /* =============================================================================
00067  *  APIs that are added for Cache
00068  * =============================================================================
00069  */
00070
00071
00075 typedef struct Cache_ModuleObject {
00076     Atomic      refCount;
00078     struct cache_ctrl cinfo;
00080 } Cache_ModuleObject;
00081
00082 /* Initialize the cache module. */
00083 Int32 Cache_setup (void);
00084
00085 /* Finalize the cache module. */
00086 Int32 Cache_destroy (void);
00087
00088
00089 #if defined (__cplusplus)
00090 }
00091 #endif /* defined (__cplusplus) */
00092
00093 #endif /* ifndef _CACHE_QNX_H */


SysLink Application Programming Interface (API): _Memory.h File Reference

Defines | Functions

_Memory.h File Reference

Detailed Description

Memory manager interface definitions.

This abstracts the Memory management interface to be used with SysLink code. Allocation, Freeing-up, copy and address translate are supported for the memory management.

#include <ti/syslink/utils/_MemoryDefs.h>
#include <ti/syslink/utils/_MemoryOS.h>
Include dependency graph for _Memory.h:

Go to the source code of this file.

Defines

#define | Memory_map MemoryOS_map
Maps a memory area into virtual space.
#define | Memory_unmap MemoryOS_unmap
Unmaps a memory area into virtual space.

Functions

Ptr | Memory_translate (Ptr srcAddr, Memory_XltFlags flags)
Function to translate an address.

Define Documentation

#define Memory_map MemoryOS_map

Maps a memory area into virtual space.

See also:
Memory_unmap
#define Memory_unmap MemoryOS_unmap

Unmaps a memory area into virtual space.

See also:
Memory_unmap

Function Documentation

Ptr Memory_translate | ( | Ptr | srcAddr,
 |  | Memory_XltFlags | flags
 | ) |  |

Function to translate an address.

Parameters:
srcAddr | source address.
flags | Tranlation flags.
Return values:
Pointer | Success: Pointer to translated buffer
NULL | Failed to translate


SysLink Application Programming Interface (API): _Memory.h Source File

_Memory.h

Go to the documentation of this file.
00001
00012 /*
00013  *  ============================================================================
00014  *
00015  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00016  *
00017  *  Redistribution and use in source and binary forms, with or without
00018  *  modification, are permitted provided that the following conditions
00019  *  are met:
00020  *
00021  *  *  Redistributions of source code must retain the above copyright
00022  *     notice, this list of conditions and the following disclaimer.
00023  *
00024  *  *  Redistributions in binary form must reproduce the above copyright
00025  *     notice, this list of conditions and the following disclaimer in the
00026  *     documentation and/or other materials provided with the distribution.
00027  *
00028  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00029  *     its contributors may be used to endorse or promote products derived
00030  *     from this software without specific prior written permission.
00031  *
00032  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00033  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00034  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00035  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00036  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00037  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00038  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00039  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00040  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00041  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00042  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00043  *  Contact information for paper mail:
00044  *  Texas Instruments
00045  *  Post Office Box 655303
00046  *  Dallas, Texas 75265
00047  *  Contact information:
00048  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00049  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00050  *  ============================================================================
00051  *
00052  */
00053
00054
00055
00056 #ifndef _MEMORY_H_0xC97E
00057 #define _MEMORY_H_0xC97E
00058
00059
00060 /*-------------------------   OSAL and utils   -----------------------------  */
00061 #include <ti/syslink/utils/_MemoryDefs.h>
00062 #include <ti/syslink/utils/_MemoryOS.h>
00063
00064 #if defined (__cplusplus)
00065 extern "C" {
00066 #endif
00067
00068
00069 /* =============================================================================
00070  *  APIs that are added for MemoryOS
00071  * =============================================================================
00072  */
00073
00074
00079 #define Memory_map           MemoryOS_map
00080
00085 #define Memory_unmap         MemoryOS_unmap
00086
00096 Ptr Memory_translate (Ptr srcAddr, Memory_XltFlags flags);
00097
00098
00099 #if defined (__cplusplus)
00100 }
00101 #endif /* defined (__cplusplus) */
00102
00103 #endif /* ifndef _MEMORY_H_0xC97E */


SysLink Application Programming Interface (API): _MemoryDefs.h File Reference

Data Structures | Defines | Typedefs | Enumerations

_MemoryDefs.h File Reference

Detailed Description

Definitions for Memory module.

This provides macros and type definitions for the Memory module.

Go to the source code of this file.

Data Structures

struct | MemoryOS_MapInfo_tag
Structure containing information required for mapping a memory region. More...
struct | MemoryOS_UnmapInfo_tag
Structure containing information required for unmapping a memory region. More...
struct | MemoryOS_SGList
Structure for scatter-gathered list. More...

Defines

#define | Memory_MapInfo MemoryOS_MapInfo
Structure containing information required for mapping a memory region.
#define | Memory_UnmapInfo MemoryOS_UnmapInfo
Structure containing information required for unmapping a memory region.
#define | Memory_SGList MemoryOS_SGList
Structure for scatter-gathered list.

Typedefs

typedef struct MemoryOS_MapInfo_tag | MemoryOS_MapInfo
Structure containing information required for mapping a memory region.
typedef struct
MemoryOS_UnmapInfo_tag 		MemoryOS_UnmapInfo
Structure containing information required for unmapping a memory region.
typedef struct MemoryOS_SGList | MemoryOS_SGList
Structure for scatter-gathered list.

Enumerations

enum Memory_XltFlags {
Memory_XltFlags_Virt2Phys = 0x00000000,
Memory_XltFlags_Phys2Virt = 0x00000001,
Memory_XltFlags_EndValue = 0x00000002
}

Enumerates the types of translation.

More...

Define Documentation

#define Memory_MapInfo MemoryOS_MapInfo

Structure containing information required for mapping a memory region.

#define Memory_UnmapInfo MemoryOS_UnmapInfo

Structure containing information required for unmapping a memory region.

#define Memory_SGList MemoryOS_SGList

Structure for scatter-gathered list.

Typedef Documentation

typedef struct MemoryOS_MapInfo_tag MemoryOS_MapInfo

Structure containing information required for mapping a memory region.

typedef struct MemoryOS_UnmapInfo_tag MemoryOS_UnmapInfo

Structure containing information required for unmapping a memory region.

typedef struct MemoryOS_SGList MemoryOS_SGList

Structure for scatter-gathered list.

Enumeration Type Documentation

enum Memory_XltFlags

Enumerates the types of translation.

Enumerator:
Memory_XltFlags_Virt2Phys

Virtual to physical

Memory_XltFlags_Phys2Virt

Virtual to physical

Memory_XltFlags_EndValue

End delimiter indicating start of invalid values for this enum


SysLink Application Programming Interface (API): _MemoryDefs.h Source File

_MemoryDefs.h

Go to the documentation of this file.
00001
00010 /*
00011  *  ============================================================================
00012  *
00013  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00014  *
00015  *  Redistribution and use in source and binary forms, with or without
00016  *  modification, are permitted provided that the following conditions
00017  *  are met:
00018  *
00019  *  *  Redistributions of source code must retain the above copyright
00020  *     notice, this list of conditions and the following disclaimer.
00021  *
00022  *  *  Redistributions in binary form must reproduce the above copyright
00023  *     notice, this list of conditions and the following disclaimer in the
00024  *     documentation and/or other materials provided with the distribution.
00025  *
00026  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00027  *     its contributors may be used to endorse or promote products derived
00028  *     from this software without specific prior written permission.
00029  *
00030  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00031  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00032  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00033  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00034  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00035  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00036  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00037  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00038  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00039  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00040  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00041  *  Contact information for paper mail:
00042  *  Texas Instruments
00043  *  Post Office Box 655303
00044  *  Dallas, Texas 75265
00045  *  Contact information:
00046  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00047  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00048  *  ============================================================================
00049  *
00050  */
00051
00052
00053
00054 #ifndef _MEMORYDEFS_H_0x73E4
00055 #define _MEMORYDEFS_H_0x73E4
00056
00057 #if defined (__cplusplus)
00058 extern "C" {
00059 #endif
00060
00061
00065 typedef enum {
00066     Memory_XltFlags_Virt2Phys       = 0x00000000,
00068     Memory_XltFlags_Phys2Virt       = 0x00000001,
00070     Memory_XltFlags_EndValue        = 0x00000002
00072 } Memory_XltFlags;
00073
00078 typedef struct MemoryOS_MapInfo_tag {
00079     UInt32   src;
00081     UInt32   size;
00083     UInt32   dst;
00085     Bool     isCached;
00087     Ptr      drvHandle;
00090 } MemoryOS_MapInfo ;
00091
00096 typedef struct MemoryOS_UnmapInfo_tag {
00097     UInt32  addr;
00099     UInt32  size;
00101     Bool    isCached;
00103 } MemoryOS_UnmapInfo;
00104
00108 typedef struct MemoryOS_SGList {
00109     UInt32  paddr;
00111     UInt32  offset;
00113     UInt32  size;
00115     Bool    isCached;
00117 } MemoryOS_SGList;
00118
00123 #define Memory_MapInfo   MemoryOS_MapInfo
00124
00129 #define Memory_UnmapInfo MemoryOS_UnmapInfo
00130
00134 #define Memory_SGList       MemoryOS_SGList
00135
00136 #if defined (__cplusplus)
00137 }
00138 #endif /* defined (__cplusplus) */
00139
00140 #endif /* ifndef _MEMORYDEFS_H_0x73E4 */


SysLink Application Programming Interface (API): _MemoryOS.h File Reference

Defines | Functions

_MemoryOS.h File Reference

Detailed Description

Memory abstraction APIs for local memory allocation.

This provides a direct access to local memory allocation, which does not require creation of a Heap.

#include <ti/syslink/utils/_MemoryDefs.h>
Include dependency graph for _MemoryOS.h:

Go to the source code of this file.

Defines

#define | MEMORYOS_MODULEID (UInt16) 0x97D2
Module ID for Memory OSAL module.
#define | MEMORYOS_STATUSCODEBASE (MEMORYOS_MODULEID << 12u)
Stauts code base for MEMORY module.
#define | MEMORYOS_MAKE_FAILURE(x)
Convert to failure code.
#define | MEMORYOS_MAKE_SUCCESS(x) (MEMORYOS_STATUSCODEBASE + (x))
Convert to success code.
#define | MEMORYOS_E_MEMORY MEMORYOS_MAKE_FAILURE(1)
Indicates Memory alloc/free failure.
#define | MEMORYOS_E_INVALIDARG MEMORYOS_MAKE_FAILURE(2)
Invalid argument provided.
#define | MEMORYOS_E_MAP MEMORYOS_MAKE_FAILURE(3)
Failed to map to host address space.
#define | MEMORYOS_E_UNMAP MEMORYOS_MAKE_FAILURE(4)
Failed to unmap from host address space.
#define | MEMORYOS_E_INVALIDSTATE MEMORYOS_MAKE_FAILURE(5)
Module is in invalidstate.
#define | MEMORYOS_E_FAIL MEMORYOS_MAKE_FAILURE(6)
Genral failure.
#define | MEMORYOS_S_SUCCESS MEMORYOS_MAKE_SUCCESS(0)
Operation successfully completed.
#define | MEMORYOS_S_ALREADYSETUP MEMORYOS_MAKE_SUCCESS(1)
Module already initialized.

Functions

Int | MemoryOS_map (Memory_MapInfo *mapInfo)
Int | MemoryOS_unmap (Memory_UnmapInfo *unmapInfo)

Define Documentation

#define MEMORYOS_MODULEID (UInt16) 0x97D2

Module ID for Memory OSAL module.

#define MEMORYOS_STATUSCODEBASE (MEMORYOS_MODULEID << 12u)

Stauts code base for MEMORY module.

#define MEMORYOS_MAKE_FAILURE ( x )
Value:
((Int) (0x80000000  \
                                           + (MEMORYOS_STATUSCODEBASE + (x))))

Convert to failure code.

#define MEMORYOS_MAKE_SUCCESS ( x ) (MEMORYOS_STATUSCODEBASE + (x))

Convert to success code.

#define MEMORYOS_E_MEMORY MEMORYOS_MAKE_FAILURE(1)

Indicates Memory alloc/free failure.

#define MEMORYOS_E_INVALIDARG MEMORYOS_MAKE_FAILURE(2)

Invalid argument provided.

#define MEMORYOS_E_MAP MEMORYOS_MAKE_FAILURE(3)

Failed to map to host address space.

#define MEMORYOS_E_UNMAP MEMORYOS_MAKE_FAILURE(4)

Failed to unmap from host address space.

#define MEMORYOS_E_INVALIDSTATE MEMORYOS_MAKE_FAILURE(5)

Module is in invalidstate.

#define MEMORYOS_E_FAIL MEMORYOS_MAKE_FAILURE(6)

Genral failure.

#define MEMORYOS_S_SUCCESS MEMORYOS_MAKE_SUCCESS(0)

Operation successfully completed.

#define MEMORYOS_S_ALREADYSETUP MEMORYOS_MAKE_SUCCESS(1)

Module already initialized.

Function Documentation

Int MemoryOS_map ( Memory_MapInfo * mapInfo )
Int MemoryOS_unmap ( Memory_UnmapInfo * unmapInfo )


SysLink Application Programming Interface (API): _MemoryOS.h Source File

_MemoryOS.h

Go to the documentation of this file.
00001
00011 /*
00012  *  ============================================================================
00013  *
00014  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00015  *
00016  *  Redistribution and use in source and binary forms, with or without
00017  *  modification, are permitted provided that the following conditions
00018  *  are met:
00019  *
00020  *  *  Redistributions of source code must retain the above copyright
00021  *     notice, this list of conditions and the following disclaimer.
00022  *
00023  *  *  Redistributions in binary form must reproduce the above copyright
00024  *     notice, this list of conditions and the following disclaimer in the
00025  *     documentation and/or other materials provided with the distribution.
00026  *
00027  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00028  *     its contributors may be used to endorse or promote products derived
00029  *     from this software without specific prior written permission.
00030  *
00031  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00032  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00033  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00034  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00035  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00036  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00037  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00038  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00039  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00040  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00041  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00042  *  Contact information for paper mail:
00043  *  Texas Instruments
00044  *  Post Office Box 655303
00045  *  Dallas, Texas 75265
00046  *  Contact information:
00047  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00048  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00049  *  ============================================================================
00050  *
00051  */
00052
00053
00054
00055 #ifndef _MEMORYOS_H_0x97D2
00056 #define _MEMORYOS_H_0x97D2
00057
00058 /* OSAL and utils */
00059 #include <ti/syslink/utils/_MemoryDefs.h>
00060
00061 #if defined (__cplusplus)
00062 extern "C" {
00063 #endif
00064
00069 #define MEMORYOS_MODULEID                 (UInt16) 0x97D2
00070
00071 /* =============================================================================
00072  *  All success and failure codes for the module
00073  * =============================================================================
00074  */
00079 #define MEMORYOS_STATUSCODEBASE            (MEMORYOS_MODULEID << 12u)
00080
00085 #define MEMORYOS_MAKE_FAILURE(x)          ((Int) (0x80000000  \
00086                                            + (MEMORYOS_STATUSCODEBASE + (x))))
00087
00091 #define MEMORYOS_MAKE_SUCCESS(x)            (MEMORYOS_STATUSCODEBASE + (x))
00092
00097 #define MEMORYOS_E_MEMORY                   MEMORYOS_MAKE_FAILURE(1)
00098
00103 #define MEMORYOS_E_INVALIDARG               MEMORYOS_MAKE_FAILURE(2)
00104
00109 #define MEMORYOS_E_MAP                      MEMORYOS_MAKE_FAILURE(3)
00110
00115 #define MEMORYOS_E_UNMAP                    MEMORYOS_MAKE_FAILURE(4)
00116
00121 #define MEMORYOS_E_INVALIDSTATE             MEMORYOS_MAKE_FAILURE(5)
00122
00127 #define MEMORYOS_E_FAIL                     MEMORYOS_MAKE_FAILURE(6)
00128
00133 #define MEMORYOS_S_SUCCESS                    MEMORYOS_MAKE_SUCCESS(0)
00134
00139 #define MEMORYOS_S_ALREADYSETUP             MEMORYOS_MAKE_SUCCESS(1)
00140
00141
00142 /* =============================================================================
00143  *  Macros and types
00144  *  See MemoryDefs.h
00145  * =============================================================================
00146  */
00147 /* =============================================================================
00148  *  APIs
00149  * =============================================================================
00150  */
00151 /* Maps a memory area into virtual space. */
00152 Int MemoryOS_map (Memory_MapInfo * mapInfo);
00153
00154 /* UnMaps a memory area into virtual space. */
00155 Int MemoryOS_unmap (Memory_UnmapInfo * unmapInfo);
00156
00157 #if defined(SYSLINK_BUILDOS_QNX)
00158 /* Maps a memory area into virtual space on a process behalf. */
00159 Int MemoryOS_peerMap (Memory_MapInfo * mapInfo, Int pid);
00160
00161 /* UnMaps a memory area into virtual space on a process behalf. */
00162 Int MemoryOS_peerUnmap (Memory_UnmapInfo * unmapInfo, Int pid);
00163 #endif
00164
00165 #if defined (__cplusplus)
00166 }
00167 #endif /* defined (__cplusplus) */
00168
00169 #endif /* ifndef _MEMORYOS_H_0x97D2 */


SysLink Application Programming Interface (API): Cache.h File Reference

Defines | Enumerations | Functions

Cache.h File Reference

Detailed Description

Defines Cache API interface.

Go to the source code of this file.

Defines

#define | Cache_S_ALREADYSETUP (1)
Cache module is already setup.
#define | Cache_S_SUCCESS (0)
Operation is successful.
#define | Cache_E_FAIL (-1)
Generic failure.
#define | Cache_E_INVALIDARG (-2)
Argument passed to a function is invalid.
#define | Cache_E_OSFAILURE (-3)
Failure in OS call.

Enumerations

enum Cache_Type {
Cache_Type_L1P = 0x1,
Cache_Type_L1D = 0x2,
Cache_Type_L1 = 0x3,
Cache_Type_L2P = 0x4,
Cache_Type_L2D = 0x8,
Cache_Type_L2 = 0xC,
Cache_Type_ALL = 0xffff
}
enum Cache_Mode {
Cache_Mode_FREEZE,
Cache_Mode_BYPASS,
Cache_Mode_NORMAL
}

Functions

Void | Cache_inv (Ptr blockPtr, UInt32 byteCnt, Bits16 type, Bool wait)
Invalidate the Cache module.
Void | Cache_wb (Ptr blockPtr, UInt32 byteCnt, Bits16 type, Bool wait)
Writeback the Cache module.
Void | Cache_wbInv (Ptr blockPtr, UInt32 byteCnt, Bits16 type, Bool wait)
Write Back and Invalidate the Cache module.
Void | Cache_wait (Void)
Wait for cache operation to complete.
enum Cache_Mode | Cache_setMode (Bits16 type, enum Cache_Mode mode)
Set the mode of Cache module.

Define Documentation

#define Cache_S_ALREADYSETUP (1)

Cache module is already setup.

#define Cache_S_SUCCESS (0)

Operation is successful.

#define Cache_E_FAIL (-1)

Generic failure.

#define Cache_E_INVALIDARG (-2)

Argument passed to a function is invalid.

#define Cache_E_OSFAILURE (-3)

Failure in OS call.

Enumeration Type Documentation

enum Cache_Type

Lists of bitmask cache types

Enumerator:
Cache_Type_L1P
Cache_Type_L1D

Level 1 Program cache

Cache_Type_L1

Level 1 Data cache

Cache_Type_L2P

Level 1 caches

Cache_Type_L2D

Level 2 Program cache

Cache_Type_L2

Level 2 Data cache

Cache_Type_ALL

Level 2 caches

enum Cache_Mode

Lists of cache modes

Enumerator:
Cache_Mode_FREEZE
Cache_Mode_BYPASS
Cache_Mode_NORMAL

Function Documentation

Void Cache_inv | ( | Ptr | blockPtr,
 |  | UInt32 | byteCnt,
 |  | Bits16 | type,
 |  | Bool | wait
 | ) |  |

Invalidate the Cache module.

See also:
Cache_inv
Void Cache_wb | ( | Ptr | blockPtr,
 |  | UInt32 | byteCnt,
 |  | Bits16 | type,
 |  | Bool | wait
 | ) |  |

Writeback the Cache module.

See also:
Cache_wb
Void Cache_wbInv | ( | Ptr | blockPtr,
 |  | UInt32 | byteCnt,
 |  | Bits16 | type,
 |  | Bool | wait
 | ) |  |

Write Back and Invalidate the Cache module.

See also:
Cache_wbInv
Void Cache_wait ( Void )

Wait for cache operation to complete.

See also:
Cache_wait
enum Cache_Mode Cache_setMode | ( | Bits16 | type,
 |  | enum Cache_Mode | mode
 | ) |  |

Set the mode of Cache module.

See also:
Cache_setMode


SysLink Application Programming Interface (API): Cache.h Source File

Cache.h

Go to the documentation of this file.
00001
00008 /*
00009  *  ============================================================================
00010  *
00011  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00012  *
00013  *  Redistribution and use in source and binary forms, with or without
00014  *  modification, are permitted provided that the following conditions
00015  *  are met:
00016  *
00017  *  *  Redistributions of source code must retain the above copyright
00018  *     notice, this list of conditions and the following disclaimer.
00019  *
00020  *  *  Redistributions in binary form must reproduce the above copyright
00021  *     notice, this list of conditions and the following disclaimer in the
00022  *     documentation and/or other materials provided with the distribution.
00023  *
00024  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00025  *     its contributors may be used to endorse or promote products derived
00026  *     from this software without specific prior written permission.
00027  *
00028  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00029  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00030  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00031  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00032  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00033  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00034  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00035  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00036  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00037  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00038  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  *  Contact information for paper mail:
00040  *  Texas Instruments
00041  *  Post Office Box 655303
00042  *  Dallas, Texas 75265
00043  *  Contact information:
00044  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00045  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00046  *  ============================================================================
00047  *
00048  */
00049
00050
00051
00052 #ifndef CACHE_H
00053 #define CACHE_H
00054
00055
00056 #if defined (__cplusplus)
00057 extern "C" {
00058 #endif /* defined (__cplusplus) */
00059
00060 /* =============================================================================
00061  *  All success and failure codes for the module
00062  * =============================================================================
00063  */
00064
00069 #define Cache_S_ALREADYSETUP        (1)
00070
00075 #define Cache_S_SUCCESS             (0)
00076
00081 #define Cache_E_FAIL                (-1)
00082
00087 #define Cache_E_INVALIDARG          (-2)
00088
00093 #define Cache_E_OSFAILURE           (-3)
00094
00095 /* ================================
00096  *  Enums for the module
00097  * ================================
00098  */
00100 enum Cache_Type {
00101     Cache_Type_L1P = 0x1,
00102     Cache_Type_L1D = 0x2,
00103     Cache_Type_L1  = 0x3,
00104     Cache_Type_L2P = 0x4,
00105     Cache_Type_L2D = 0x8,
00106     Cache_Type_L2  = 0xC,
00107     Cache_Type_ALL = 0xffff
00108 };
00109
00111 enum Cache_Mode {
00112     Cache_Mode_FREEZE,
00113     Cache_Mode_BYPASS,
00114     Cache_Mode_NORMAL
00115 };
00116
00122 Void Cache_inv(Ptr blockPtr, UInt32 byteCnt, Bits16 type, Bool wait);
00123
00129 Void Cache_wb(Ptr blockPtr, UInt32 byteCnt, Bits16 type, Bool wait);
00130
00136 Void Cache_wbInv(Ptr blockPtr, UInt32 byteCnt, Bits16 type, Bool wait);
00137
00143 Void Cache_wait(Void);
00144
00150 enum Cache_Mode Cache_setMode(Bits16 type, enum Cache_Mode mode);
00151
00152 #if defined (__cplusplus)
00153 }
00154 #endif /* defined (__cplusplus) */
00155
00156
00157 #endif /* CACHE_H */


SysLink Application Programming Interface (API): Cfg.h File Reference

Functions

Cfg.h File Reference

Detailed Description

Configuration Helper Utilities.

#include <ti/syslink/utils/String.h>
Include dependency graph for Cfg.h:

Go to the source code of this file.

Functions

Bool | Cfg_prop (String prop, String params, Char *buf)
Int | Cfg_propBool (String prop, String params, Bool *var)

Function Documentation

Bool Cfg_prop | ( | String | prop,
 |  | String | params,
 |  | Char * | buf
 | ) |  |
Int Cfg_propBool | ( | String | prop,
 |  | String | params,
 |  | Bool * | var
 | ) |  |


SysLink Application Programming Interface (API): Cfg.h Source File

Cfg.h

Go to the documentation of this file.
00001
00008 /*
00009  *  ============================================================================
00010  *
00011  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00012  *
00013  *  Redistribution and use in source and binary forms, with or without
00014  *  modification, are permitted provided that the following conditions
00015  *  are met:
00016  *
00017  *  *  Redistributions of source code must retain the above copyright
00018  *     notice, this list of conditions and the following disclaimer.
00019  *
00020  *  *  Redistributions in binary form must reproduce the above copyright
00021  *     notice, this list of conditions and the following disclaimer in the
00022  *     documentation and/or other materials provided with the distribution.
00023  *
00024  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00025  *     its contributors may be used to endorse or promote products derived
00026  *     from this software without specific prior written permission.
00027  *
00028  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00029  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00030  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00031  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00032  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00033  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00034  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00035  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00036  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00037  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00038  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  *  Contact information for paper mail:
00040  *  Texas Instruments
00041  *  Post Office Box 655303
00042  *  Dallas, Texas 75265
00043  *  Contact information:
00044  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00045  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00046  *  ============================================================================
00047  *
00048  */
00049
00050
00051
00052 #ifndef ti_syslink_utils_Cfg
00053 #define ti_syslink_utils_Cfg
00054
00055 #include <ti/syslink/utils/String.h>
00056
00057
00058 #if defined (__cplusplus)
00059 extern "C" {
00060 #endif
00061
00062
00063 /* =============================================================================
00064  *  APIs
00065  * =============================================================================
00066  */
00067
00068 /* Find property in params, return value string */
00069 Bool Cfg_prop(String prop, String params, Char *buf);
00070
00071 /* Set var with property value found in params string. */
00072 Int  Cfg_propBool(String prop, String params, Bool *var);
00073
00074
00075 #if defined (__cplusplus)
00076 }
00077 #endif /* defined (__cplusplus) */
00078
00079 #endif /* ti_syslink_utils_Cfg */


SysLink Application Programming Interface (API): FrameQ.h File Reference

Data Structures | Defines | Typedefs | Enumerations | Functions

FrameQ.h File Reference

Detailed Description

Defines for interfaces for FrameQ module. (Deprecated)

Deprecated:
The FrameQ APIs are deprecated as of SysLink 2.20. While supported in this release, they will be removed in a future release.
#include <ti/syslink/FrameQDefs.h>
#include <ti/syslink/SysLink.h>
#include <ti/ipc/Notify.h>
Include dependency graph for FrameQ.h:

Go to the source code of this file.

Data Structures

struct | FrameQ_Config_Tag
Structure defining config parameters for the FrameQ module. More...
struct | FrameQ_CreateParams_Tag
Common parameters required to create FrameQ instance of any implementation. It should be the first element of the actual implementaton params structure. More...
struct | FrameQ_CommonOpenParams_Tag
Common parameters required to open a FrameQ instance of any implementation. More...
struct | FrameQ_Params
Common parameters required to create FrameQ instance of any implementation. It should be the first element of the actual implementaton params structure . More...
struct | FrameQ_NotifyParams_Tag
Notification parameter structure. More...

Defines

#define | FrameQ_S_ALREADYDESTROYED 2
Indicates module has been already destroyed.
#define | FrameQ_S_ALREADYSETUP 1
Indicates module is already setup.
#define | FrameQ_S_SUCCESS 0
Operation successful.
#define | FrameQ_E_FAIL -1
General Failure.
#define | FrameQ_E_INVALIDARG -2
Argument passed to function is invalid.
#define | FrameQ_E_NOTFOUND -3
FrameQ instance not found.
#define | FrameQ_E_INST_EXISTS -4
FrameQ instance already exists.
#define | FrameQ_E_WRITER_EXISTS -5
Writer client already exists.
#define | FrameQ_E_ALLOC_FRAME -6
Failed to allocate frame header.
#define | FrameQ_E_ALLOC_FRAMEBUF -7
Failed to allocate frame buffers.
#define | FrameQ_E_MEMORY -8
Memory_alloc failed.
#define | FrameQ_E_EMPTY -9
FrameQ is empty. Can not return frame.
#define | FrameQ_E_CREATE_NAMESERVER -10
Name server create failed for the module.
#define | FrameQ_E_CREATE_GATEMP -11
GateMP instance create failed.
#define | FrameQ_E_OPEN_GATEMP -12
GateMP instance open failed.
#define | FrameQ_E_FAIL_CLIENTN0TIFYMGR_CREATE -13
Failed to create Client NotifyMgr instance.
#define | FrameQ_E_FAIL_CLIENTN0TIFYMGR_OPEN -14
Failed to open Client NotifyMgr instance.
#define | FrameQ_E_MAX_READERS -15
Max limit of readers for a FrameQ is reached.
#define | FrameQ_E_ACCESSDENIED -16
Operation can not be permitted or not implemented.
#define | FrameQ_E_INVALIDSTATE -17
Module is not initialized.
#define | FrameQ_E_OSFAILURE -18
Failure in OS call.
#define | FrameQ_E_FAIL_NAMESERVERADD -19
Adding FrameQ entry to name server instance failed.
#define | FrameQ_E_INVALID_INTERFACE -20
Unsupported interface type.
#define | FrameQ_E_NOTIMPLEMENTED -21
Called API is not implemented.
#define | FrameQ_E_OPEN_NAMESERVER -22
NameServer open failed.
#define | FrameQ_E_INVALID_FRAMEQBUFMGRID -23
Invalid FrameQbufMgr id.
#define | FrameQ_E_INSUFFICENT_FRAMES -24
Reader client get this error in getv call if it is not able to get all the requested frames. API is able to get only few frames.
#define | FrameQ_E_ALLOC_MEMORY -25
Failed to allocate memory.
#define | FrameQ_E_FRAMEQBUFMGROPEN -26
Failed to open FrameQBufMgr.
#define | FrameQ_E_LISTMPOPEN -27
Failed to open ListMP instance.
#define | FrameQ_E_CLIENTNOTIFYMGRREGCLIENT -28
Failed to register with the clientNotifyMgr.
#define | FrameQ_E_FRAMEQBUFMGRREGCLIENT -29
Failed to register with the FrameQBufMgr.
#define | FrameQ_E_CLIENTNOTIFYMGRUNREGCLIENT -30
Failed to unregister with the clientNotifyMgr.
#define | FrameQ_E_FRAMEQBUFMGRUNREGCLIENT -31
Failed to unregister with the FrameQBufMgr.
#define | FrameQ_E_ALREADYREGISTERED -32
Call back function is already registered.
#define | FrameQ_E_NAMESERVERADD -33
NameServer_add failed.
#define | FrameQ_FrameBufInfo Frame_FrameBufInfo
Defines the frame buffer information.
#define | FrameQ_FrameHeader Frame_FrameHeader
Defines the frame header structure.
#define | FrameQ_MAX_NAMELEN (32u)
Maximum length of the name string in bytes.
#define | FrameQ_MAXFILLEDQUEUS_FOR_READER (16)
Max filled queues for a reader client of the FrameQ instance.
#define | FrameQ_MAX_INST_READERS (2u)
Maximum number of reader clients supported by the instance.
#define | FrameQ_MAX_INSTANCES (64u)
Maximum number of instances managed by FrameQ.
#define | FrameQ_NOTIFY_RESERVED_EVENTNO (1u)
Notify Event Number to be used by FrameQ module.

Typedefs

typedef Frame_FrameHeader * | FrameQ_Frame
Defines the type for a frame pointer.
typedef UInt16 | FrameQ_NotifyMsg
This type is used for the notification message. This is a 16 bit payload which can be sent to the remote processor in a notification call.
typedef struct FrameQ_Object * | FrameQ_Handle
Handle for the FrameQ instance.
typedef void(* | FrameQ_NotifyFunc )(FrameQ_Handle, Ptr arg, FrameQ_NotifyMsg)
Prototype of the FrameQ call back function.
typedef enum FrameQ_NotifyType_Tag | FrameQ_NotifyType
Notification types for FrameQ.
typedef enum FrameQ_OpenMode_Tag | FrameQ_OpenMode
FrameQ open modes.
typedef enum
FrameQ_CpuAccessFlags_Tag 		FrameQ_CpuAccessFlags
CPU access flags for frame buffers. For frame headers CPUACCESS is assumed to be TRUE.
typedef enum FrameQ_Interface_Tag | FrameQ_Interface
FrameQ interface types.
typedef struct FrameQ_Config_Tag | FrameQ_Config
Structure defining config parameters for the FrameQ module.
typedef struct
FrameQ_CreateParams_Tag 		FrameQ_CreateParams
Common parameters required to create FrameQ instance of any implementation. It should be the first element of the actual implementaton params structure.
typedef struct
FrameQ_CommonOpenParams_Tag 		FrameQ_CommonOpenParams
Common parameters required to open a FrameQ instance of any implementation.
typedef struct FrameQ_Params | FrameQ_Params
Common parameters required to create FrameQ instance of any implementation. It should be the first element of the actual implementaton params structure .
typedef struct
FrameQ_NotifyParams_Tag 		FrameQ_NotifyParams
Notification parameter structure.

Enumerations

enum FrameQ_NotifyType_Tag {
FrameQ_NOTIFICATION_NONE = SysLink_NOTIFICATION_NONE,
FrameQ_NOTIFICATION_ALWAYS = SysLink_NOTIFICATION_ALWAYS,
FrameQ_NOTIFICATION_ONCE = SysLink_NOTIFICATION_ONCE,
FrameQ_NOTIFICATION_HDWRFIFO_ALWAYS = SysLink_NOTIFICATION_HDWRFIFO_ALWAYS,
FrameQ_NOTIFICATION_HDWRFIFO_ONCE = SysLink_NOTIFICATION_HDWRFIFO_ONCE
}

Notification types for FrameQ.

More...
enum FrameQ_OpenMode_Tag {
FrameQ_MODE_NONE,
FrameQ_MODE_WRITER,
FrameQ_MODE_READER
}

FrameQ open modes.

More...
enum FrameQ_CpuAccessFlags_Tag {
FrameQ_FRAMEBUF0_CPUACCESS = 0x10000,
FrameQ_FRAMEBUF1_CPUACCESS = 0x20000,
FrameQ_FRAMEBUF2_CPUACCESS = 0x40000,
FrameQ_FRAMEBUF3_CPUACCESS = 0x80000,
FrameQ_FRAMEBUF4_CPUACCESS = 0x100000,
FrameQ_FRAMEBUF5_CPUACCESS = 0x200000,
FrameQ_FRAMEBUF6_CPUACCESS = 0x400000,
FrameQ_FRAMEBUF7_CPUACCESS = 0x800000
}

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

More...
enum FrameQ_Interface_Tag {
FrameQ_INTERFACE_SHAREDMEM = 0x0,
FrameQ_INTERFACE_NONE = 0x1
}

FrameQ interface types.

More...

Functions

Int32 | FrameQ_isSupportedInterface (UInt32 type)
Determine whether the given interface type is supported.
FrameQ_Handle | FrameQ_create (Ptr params)
Create a FrameQ instance.
Int32 | FrameQ_delete (FrameQ_Handle *pHandle)
Delete a FrameQ instance.
Int32 | FrameQ_open (Ptr openParams, FrameQ_Handle *handlePtr)
Open the created FrameQ instance.
Int32 | FrameQ_openByAddr (FrameQ_Handle *handlePtr, Ptr openParams)
Open the created FrameQ instance if shared address is known.
Int32 | FrameQ_close (FrameQ_Handle *pHandle)
Close the opened FrameQ instance.
Int32 | FrameQ_alloc (FrameQ_Handle handle, FrameQ_Frame *framePtr)
Allocate frame.
Int32 | FrameQ_allocv (FrameQ_Handle handle, FrameQ_Frame framePtr[], UInt32 freeQId[], UInt8 *numFrames)
Allocate multiple frames.
Int32 | FrameQ_free (FrameQ_Handle handle, FrameQ_Frame frame)
Free frame.
Int32 | FrameQ_freev (FrameQ_Handle handle, FrameQ_Frame framePtr[], UInt32 numFrames)
Free multiple frames.
Int32 | FrameQ_put (FrameQ_Handle handle, FrameQ_Frame frame)
Insert frame in to FrameQ instance.
Int32 | FrameQ_putv (FrameQ_Handle handle, FrameQ_Frame framePtr[], UInt32 filledQueueId[], UInt8 numFrames)
Insert multiple frames into queues of a FrameQ reader client.
Int32 | FrameQ_get (FrameQ_Handle handle, FrameQ_Frame *framePtr)
Retrieve frame from FrameQ instance by reader client.
Int32 | FrameQ_getv (FrameQ_Handle handle, FrameQ_Frame pframe[], UInt32 filledQueueId[], UInt8 *numFrames)
Retrieve frames from the given queues of a reader client.
Int32 | FrameQ_dup (FrameQ_Handle handle, FrameQ_Frame frame, FrameQ_Frame *dupedFrame)
Duplicate the given frame.
Int32 | FrameQ_registerNotifier (FrameQ_Handle handle, FrameQ_NotifyParams *notifyParams)
Register a call back function.
Int32 | FrameQ_unregisterNotifier (FrameQ_Handle handle)
Unregister call back function.
Int32 | FrameQ_sendNotify (FrameQ_Handle handle, UInt16 msg)
Send forced notification to the reader clients.
Int32 | FrameQ_getNumFrames (FrameQ_Handle handle, UInt32 *numFrames)
Function to find out the number of available frames in a FrameQ .
Int32 | FrameQ_getvNumFrames (FrameQ_Handle handle, UInt32 numFrames[], UInt8 filledQId[], UInt8 numFilledQids)
Find out the number of available frames in a FrameQ.
Int32 | FrameQ_getNumFreeFrames (FrameQ_Handle handle, UInt32 *numFreeFrames)
Get the number of free frames.
Int32 | FrameQ_getvNumFreeFrames (FrameQ_Handle handle, UInt32 numFreeFrames[], UInt8 freeQId[], UInt8 numFreeQids)
Function to get the number of free frames.
Int32 | FrameQ_control (FrameQ_Handle handle, Int32 cmd, Ptr arg)
Provides a hook to perform implementation dependent operation.
Ptr | FrameQ_getExtendedHeaderPtr (FrameQ_Frame frame)
Get the pointer to the extended header.
UInt32 | FrameQ_getNumFrameBuffers (FrameQ_Frame frame)
Determine the number of frame buffers in a frame.
Ptr | FrameQ_getFrameBuffer (FrameQ_Frame frame, UInt32 frameBufNum)
Get the framebuffer.
UInt32 | FrameQ_getFrameBufSize (FrameQ_Frame frame, UInt32 frameBufNum)
Determine the size of frame buffer.
UInt32 | FrameQ_getFrameBufValidSize (FrameQ_Frame frame, UInt32 frameBufNum)
Get valid data size of a frame buffer.
UInt32 | FrameQ_getFrameBufDataStartOffset (FrameQ_Frame frame, UInt32 frameBufNum)
Get the valid data start offset in framebuffer identified by frameBufNum in a given frame.
Int32 | FrameQ_setFrameBufValidSize (FrameQ_Frame frame, UInt32 frameBufNum, UInt32 validDataSize)
Set the valid data size of a framebuffer identified by frameBufNum in given frame.
Int32 | FrameQ_setFrameBufDataStartOffset (FrameQ_Frame frame, UInt32 frameBufNum, UInt32 dataStartOffset)
Set the valid data start offset of a framebuffer identified by frameBufNum in a given frame.
Void | FrameQ_getConfig (FrameQ_Config *cfg)
Get the default configuration for the FrameQ module.
Int32 | FrameQ_setup (FrameQ_Config *cfg)
Setup the FrameQ module.
Int32 | FrameQ_destroy (Void)
Finalize the FrameQ module.

Define Documentation

#define FrameQ_S_ALREADYDESTROYED 2

Indicates module has been already destroyed.

#define FrameQ_S_ALREADYSETUP 1

Indicates module is already setup.

#define FrameQ_S_SUCCESS 0

Operation successful.

#define FrameQ_E_FAIL -1

General Failure.

#define FrameQ_E_INVALIDARG -2

Argument passed to function is invalid.

#define FrameQ_E_NOTFOUND -3

FrameQ instance not found.

#define FrameQ_E_INST_EXISTS -4

FrameQ instance already exists.

#define FrameQ_E_WRITER_EXISTS -5

Writer client already exists.

#define FrameQ_E_ALLOC_FRAME -6

Failed to allocate frame header.

#define FrameQ_E_ALLOC_FRAMEBUF -7

Failed to allocate frame buffers.

#define FrameQ_E_MEMORY -8

Memory_alloc failed.

#define FrameQ_E_EMPTY -9

FrameQ is empty. Can not return frame.

#define FrameQ_E_CREATE_NAMESERVER -10

Name server create failed for the module.

#define FrameQ_E_CREATE_GATEMP -11

GateMP instance create failed.

#define FrameQ_E_OPEN_GATEMP -12

GateMP instance open failed.

#define FrameQ_E_FAIL_CLIENTN0TIFYMGR_CREATE -13

Failed to create Client NotifyMgr instance.

#define FrameQ_E_FAIL_CLIENTN0TIFYMGR_OPEN -14

Failed to open Client NotifyMgr instance.

#define FrameQ_E_MAX_READERS -15

Max limit of readers for a FrameQ is reached.

#define FrameQ_E_ACCESSDENIED -16

Operation can not be permitted or not implemented.

#define FrameQ_E_INVALIDSTATE -17

Module is not initialized.

#define FrameQ_E_OSFAILURE -18

Failure in OS call.

#define FrameQ_E_FAIL_NAMESERVERADD -19

Adding FrameQ entry to name server instance failed.

#define FrameQ_E_INVALID_INTERFACE -20

Unsupported interface type.

#define FrameQ_E_NOTIMPLEMENTED -21

Called API is not implemented.

#define FrameQ_E_OPEN_NAMESERVER -22

NameServer open failed.

#define FrameQ_E_INVALID_FRAMEQBUFMGRID -23

Invalid FrameQbufMgr id.

#define FrameQ_E_INSUFFICENT_FRAMES -24

Reader client get this error in getv call if it is not able to get all the requested frames. API is able to get only few frames.

#define FrameQ_E_ALLOC_MEMORY -25

Failed to allocate memory.

#define FrameQ_E_FRAMEQBUFMGROPEN -26

Failed to open FrameQBufMgr.

#define FrameQ_E_LISTMPOPEN -27

Failed to open ListMP instance.

#define FrameQ_E_CLIENTNOTIFYMGRREGCLIENT -28

Failed to register with the clientNotifyMgr.

#define FrameQ_E_FRAMEQBUFMGRREGCLIENT -29

Failed to register with the FrameQBufMgr.

#define FrameQ_E_CLIENTNOTIFYMGRUNREGCLIENT -30

Failed to unregister with the clientNotifyMgr.

#define FrameQ_E_FRAMEQBUFMGRUNREGCLIENT -31

Failed to unregister with the FrameQBufMgr.

#define FrameQ_E_ALREADYREGISTERED -32

Call back function is already registered.

#define FrameQ_E_NAMESERVERADD -33

NameServer_add failed.

#define FrameQ_FrameBufInfo Frame_FrameBufInfo

Defines the frame buffer information.

#define FrameQ_FrameHeader Frame_FrameHeader

Defines the frame header structure.

#define FrameQ_MAX_NAMELEN (32u)

Maximum length of the name string in bytes.

#define FrameQ_MAXFILLEDQUEUS_FOR_READER (16)

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

#define FrameQ_MAX_INST_READERS (2u)

Maximum number of reader clients supported by the instance.

#define FrameQ_MAX_INSTANCES (64u)

Maximum number of instances managed by FrameQ.

#define FrameQ_NOTIFY_RESERVED_EVENTNO (1u)

Notify Event Number to be used by FrameQ module.

Typedef Documentation

typedef Frame_FrameHeader* FrameQ_Frame

Defines the type for a frame pointer.

typedef UInt16 FrameQ_NotifyMsg

This type is used for the notification message. This is a 16 bit payload which can be sent to the remote processor in a notification call.

typedef struct FrameQ_Object* FrameQ_Handle

Handle for the FrameQ instance.

typedef void(* FrameQ_NotifyFunc)(FrameQ_Handle, Ptr arg, FrameQ_NotifyMsg)

Prototype of the FrameQ call back function.

typedef enum FrameQ_NotifyType_Tag FrameQ_NotifyType

Notification types for FrameQ.

typedef enum FrameQ_OpenMode_Tag FrameQ_OpenMode

FrameQ open modes.

typedef enum FrameQ_CpuAccessFlags_Tag FrameQ_CpuAccessFlags

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

typedef enum FrameQ_Interface_Tag FrameQ_Interface

FrameQ interface types.

typedef struct FrameQ_Config_Tag FrameQ_Config

Structure defining config parameters for the FrameQ module.

typedef struct FrameQ_CreateParams_Tag FrameQ_CreateParams

Common parameters required to create FrameQ instance of any implementation. It should be the first element of the actual implementaton params structure.

typedef struct FrameQ_CommonOpenParams_Tag FrameQ_CommonOpenParams

Common parameters required to open a FrameQ instance of any implementation.

typedef struct FrameQ_Params FrameQ_Params

Common parameters required to create FrameQ instance of any implementation. It should be the first element of the actual implementaton params structure .

typedef struct FrameQ_NotifyParams_Tag FrameQ_NotifyParams

Notification parameter structure.

Enumeration Type Documentation

enum FrameQ_NotifyType_Tag

Notification types for FrameQ.

Enumerator:
FrameQ_NOTIFICATION_NONE

No notification is required.

FrameQ_NOTIFICATION_ALWAYS

Notify whenever the other client sends data/frees up space.

FrameQ_NOTIFICATION_ONCE

Notify when the other side sends data/frees up space. Once the notification is done, the notification is disabled until it is enabled again.

FrameQ_NOTIFICATION_HDWRFIFO_ALWAYS

Notify whenever the other side sends data/frees up space. This notification is never disabled.

FrameQ_NOTIFICATION_HDWRFIFO_ONCE

Notify when the other side sends data/frees up space. Once the notification is done, the notification is disabled until it is enabled again. The notification is enabled once the watermark is crossed and does not require buffer to get full/empty.

enum FrameQ_OpenMode_Tag

FrameQ open modes.

Enumerator:
FrameQ_MODE_NONE

Mode is not reader/writer.Apps should not use this as open mode

FrameQ_MODE_WRITER

FrameQ mode is writer.

FrameQ_MODE_READER

FrameQ mode is reader.

enum FrameQ_CpuAccessFlags_Tag

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

Enumerator:
FrameQ_FRAMEBUF0_CPUACCESS

If specified first frame buffer is accessed through CPU (direct memory access).

FrameQ_FRAMEBUF1_CPUACCESS

If specified second frame buffer is accessed through CPU (direct memory access).

FrameQ_FRAMEBUF2_CPUACCESS

If specified third frame buffer is accessed through CPU (direct memory access).

FrameQ_FRAMEBUF3_CPUACCESS

If specified fourth frame buffer is accessed through CPU (direct memory access).

FrameQ_FRAMEBUF4_CPUACCESS

If specified fifth frame buffer is accessed through CPU (direct memory access).

FrameQ_FRAMEBUF5_CPUACCESS

If specified sixth frame buffer is accessed through CPU (direct memory access).

FrameQ_FRAMEBUF6_CPUACCESS

If specified seventh frame buffer is accessed through CPU (direct memory access).

FrameQ_FRAMEBUF7_CPUACCESS

If specified eighth frame buffer is accessed through CPU (direct memory access).

enum FrameQ_Interface_Tag

FrameQ interface types.

Enumerator:
FrameQ_INTERFACE_SHAREDMEM

Denotes FrameQ implementation (FrameQ_ShMem Implementation) on shared memory.

FrameQ_INTERFACE_NONE

Function Documentation

Int32 FrameQ_isSupportedInterface ( UInt32 type )

Determine whether the given interface type is supported.

Returns TRUE if the interface provide is supported, otherwise returns FALSE.

Parameters:
[in] type Type of interface. See FrameQ_Interface for details.
Return values:
TRUE | Given interface is supported.
FALSE | Given interface is no supported.
See also:
FrameQ_Interface
FrameQ_Handle FrameQ_create ( Ptr params )

Create a FrameQ instance.

Create a new instance of FrameQ. It creates a frameQ based on the params specific to implementations.

Parameters:
[in] params pointer to implementation specific params.
Return values:
Handle | Instance handle
NULL | Create failed
See also:
FrameQ_ShMem_Params
FrameQ_delete()
FrameQ_open()
FrameQ_close()
Int32 FrameQ_delete ( FrameQ_Handle * pHandle )

Delete a FrameQ instance.

Deletes FrameQ instance that created.

Parameters:
pHandle Pointer to the created frameQ instance handle.
Return values:
FrameQ_S_SUCCESS | Delete successful.
FrameQ_E_FAIL | Delete failed.
FrameQ_E_INVALIDARG | Pointer to Handle passed is null.
FrameQ_E_INVALIDARG | Handle passed is null.
See also:
FrameQ_create()
FrameQ_open()
FrameQ_close()
Int32 FrameQ_open | ( | Ptr | openParams,
 |  | FrameQ_Handle * | handlePtr
 | ) |  |

Open the created FrameQ instance.

Opens the FrameQ instance in reader or writer mode depending upon the open params passed to it.

Parameters:
openParams | Pointer to implementation specific open params.
handlePtr | Return parameter.Instance opened in given mode.
Return values:
FrameQ_S_SUCCESS | open successful.
FrameQ_E_INVALIDARG | Invalid parameter specified.
FrameQ_E_INVALIDSTATE | Module is not initialized.
FrameQ_E_MEMORY | Memory_alloc failed.
FrameQ_E_ALLOC_MEMORY | Memory_alloc failed.
FrameQ_E_FRAMEQBUFMGROPEN | FrameQBufMge instance open failed.
FrameQ_E_OPEN_GATEMP | GateMP open failed.
FrameQ_E_FAIL_CLIENTN0TIFYMGR_OPEN | ClientNotifyMgr open failed.
FrameQ_E_LISTMPOPEN | Internal ListMP instance open failed.
FrameQ_E_NOTFOUND | Instance not found in FrameQ Nameserver.
See also:
FrameQ_ShMem_OpenParams
FrameQ_create()
FrameQ_delete()
FrameQ_close()
Int32 FrameQ_openByAddr | ( | FrameQ_Handle * | handlePtr,
 |  | Ptr | openParams
 | ) |  |

Open the created FrameQ instance if shared address is known.

This function opens the FrameQ instance in reader or writer mode depending upon the open params passed to it. Apps should pass the valid shared addr of the created instance.

Parameters:
openParams | Pointer to implementation specific open params.
handlePtr | Return parameter.Instance opened in given mode.
Return values:
FrameQ_S_SUCCESS | open successful.
FrameQ_E_INVALIDARG | Invalid parameter specified.
FrameQ_E_INVALIDSTATE | Module is not initialized.
FrameQ_E_MEMORY | Memory_alloc failed.
FrameQ_E_ALLOC_MEMORY | Memory_alloc failed.
FrameQ_E_FRAMEQBUFMGROPEN | FrameQBufMge instance open failed.
FrameQ_E_OPEN_GATEMP | GateMP open failed.
FrameQ_E_FAIL_CLIENTN0TIFYMGR_OPEN | ClientNotifyMgr open failed.
FrameQ_E_LISTMPOPEN | Internal ListMP instance open failed.
FrameQ_E_NOTFOUND | Instance not found in FrameQ Nameserver.
See also:
FrameQ_ShMem_OpenParams
FrameQ_create()
FrameQ_delete()
FrameQ_close()
Int32 FrameQ_close ( FrameQ_Handle * pHandle )

Close the opened FrameQ instance.

Closes FrameQ instance that is opened.

Parameters:
pHandle Pointer to the opened frameQ instance handle.
Return values:
FrameQ_S_SUCCESS | Close successful
FrameQ_E_FAIL | Close failed
FrameQ_E_INVALIDARG | pHandle is invalid
See also:
FrameQ_create()
FrameQ_open()
FrameQ_delete()
Int32 FrameQ_alloc | ( | FrameQ_Handle | handle,
 |  | FrameQ_Frame * | framePtr
 | ) |  |

Allocate frame.

Allocates a frame when called by FrameQ writer.

Remarks:
This API internally makes a call to configured FrameQBufMgr to allocate a free frame.
Parameters:
handle | FrameQ writer handle.
framePtr | Location to receive the allocated frame.
Return values:
FrameQ_S_SUCCESS | Successfully allocated frame.
FrameQ_E_FAIL | Internal FrameQBufMgr_alloc failed.
FrameQ_E_INVALIDARG | framePtr paased is null.
FrameQ_E_INVALIDARG | handle passed is null.
FrameQ_E_ACCESSDENIED | Provided handle can not allocate frames. Only writer can allocate frames.
See also:
FrameQ_open()
FrameQ_free()
FrameQ_put()
FrameQ_get()
Int32 FrameQ_allocv | ( | FrameQ_Handle | handle,
 |  | FrameQ_Frame | framePtr[],
 |  | UInt32 | freeQId[],
 |  | UInt8 * | numFrames
 | ) |  |

Allocate multiple frames.

Allocates frames from multiple free pools of plugged in FrameQBufMgr. After API returns, numframes will denotes the number of successfully allocated frames.The max size of framePtr and freeQId array is defined by FrameQ_MAX_FRAMESINVAPI.

Parameters:
handle | FrameQ writer handle.
framePtr | Array to receive pointers to allocated frames.
freeQId | Array of free frame pool nos of the plugged in FrameQBufMgrfrom from which this API needs to allocate frames actual size of that is allocated.
[in,out] | numFrames | Number of frames that needs to be allocated.
Return values:
FrameQ_S_SUCCESS | Successfully allocated frames.
FrameQ_E_FAIL | Internal FrameQBufMgr_allocv failed.
FrameQ_E_INVALIDARG | framePtr passed is null.
FrameQ_E_INVALIDARG | handle passed is null.
FrameQ_E_INVALIDARG | freeQId passed is null.
FrameQ_E_INVALIDARG | numFrames passed is null.
FrameQ_E_ACCESSDENIED | Provided handle can not allocate frames. Only writer can allocate frames. Only writer can allocate frames.
See also:
FrameQ_open()
FrameQ_freev()
FrameQ_putv()
FrameQ_getv()
Int32 FrameQ_free | ( | FrameQ_Handle | handle,
 |  | FrameQ_Frame | frame
 | ) |  |

Free frame.

Frees a frame when called by FrameQ writer or reader. This API internally makes a call to configured FrameQBufMgr to free the frame.

Parameters:
handle | Opened FrameQ instance handle
frame | Frame to be freed
Return values:
FrameQ_S_SUCCESS | Successfully freed frame
FrameQ_E_FAIL | Internal FrameQBufMgr_free failed
FrameQ_E_INVALIDARG | handle or frame is invalid
FrameQ_E_ACCESSDENIED | Provided handle can not free frames. Only writer or reader can free frames.
See also:
FrameQ_open()
FrameQ_alloc()
FrameQ_put()
FrameQ_get()
Int32 FrameQ_freev | ( | FrameQ_Handle | handle,
 |  | FrameQ_Frame | framePtr[],
 |  | UInt32 | numFrames
 | ) |  |

Free multiple frames.

Frees multiple frames when called by FrameQ writer or writer.

Remarks:
This API internally makes a call to configured FrameQBufMgr to free frames.
Parameters:
handle | Opened FrameQ instance handle.
framePtr | Array of frames to be freed.
numFrames | Number of Frames to be freed.
Return values:
FrameQ_S_SUCCESS | Successfully freed frames.
FrameQ_E_FAIL | Internal FrameQBufMgr_freev failed.
FrameQ_E_INVALIDARG | handle or framePtr is invalid
FrameQ_E_ACCESSDENIED | Provided handle can not free frames. Only writer or reader can free frames.
See also:
FrameQ_open()
FrameQ_allocv()
FrameQ_putv()
FrameQ_getv()
Int32 FrameQ_put | ( | FrameQ_Handle | handle,
 |  | FrameQ_Frame | frame
 | ) |  |

Insert frame in to FrameQ instance.

This function inserts frame in to FrameQ. It inserts frame in to filled frame queue 0 of FrameQ reader clients. If multiple readers exist, 1.FrameQ inserts the original gien frame into first reader's queue 0. 2.FrameQ duplicates the original frame and inserts duplicated frames in to rest of the reader's queue 0.

Parameters:
handle | Opened FrameQ instance handle.
frame | Frame to be inserted.
Return values:
FrameQ_S_SUCCESS | Successfully freed frames.
FrameQ_E_FAIL | Failed to put frame.
FrameQ_E_INVALIDARG | frame passed is null.
FrameQ_E_INVALIDARG | handle passed is null.
FrameQ_E_ACCESSDENIED | Provided handle can not free frames. Only writer or reader can put frames.
See also:
FrameQ_get()
Int32 FrameQ_putv | ( | FrameQ_Handle | handle,
 |  | FrameQ_Frame | framePtr[],
 |  | UInt32 | filledQueueId[],
 |  | UInt8 | numFrames
 | ) |  |

Insert multiple frames into queues of a FrameQ reader client.

If multiple readers exist, It dups the given frames and inserts in to other readers' queues. The size of framePtr and filledQueueId must be at least numFrames. The max size of framePtr and filledQueueId is defined by FrameQ_MAX_FRAMESINVAPI.

Parameters:
handle | Instance handle.
framePtr | Array of frames to be inserted.
filledQueueId | Array of filled queues of reader.
numFrames | Number of frames.
Return values:
FrameQ_S_SUCCESS | Successfully inserted frames.
FrameQ_E_FAIL | Failed to put frames.
FrameQ_E_INVALIDARG | handle passed is null.
FrameQ_E_INVALIDARG | framePtr passed is null.
FrameQ_E_INVALIDARG | filledQueueId passed is null.
FrameQ_E_ACCESSDENIED | Provided handle can not put frames. Only writer or reader can put frames.
See also:
FrameQ_getv()
Int32 FrameQ_get | ( | FrameQ_Handle | handle,
 |  | FrameQ_Frame * | framePtr
 | ) |  |

Retrieve frame from FrameQ instance by reader client.

Retrieves frame from the queue 0 of caller client. Only readers are allowed to call this API.

Parameters:
handle | Instance handle.
framePtr | Location to receive frame.
Return values:
FrameQ_S_SUCCESS | Successfully retrieved frame.
FrameQ_E_FAIL | Failed to get frame.
FrameQ_E_INVALIDARG | handle passed is null.
FrameQ_E_INVALIDARG | framePtr passed is null.
FrameQ_E_ACCESSDENIED | Provided handle can not retrieve frame. Only reader client can retrieve frame.
See also:
FrameQ_put()
Int32 FrameQ_getv | ( | FrameQ_Handle | handle,
 |  | FrameQ_Frame | pframe[],
 |  | UInt32 | filledQueueId[],
 |  | UInt8 * | numFrames
 | ) |  |

Retrieve frames from the given queues of a reader client.

This Function retrieves frames from the queues of caller client. Only readers are allowed to call this API. It returns frames if all the required frames are available in the FrameQ.

Remarks:
The size of pframe and filledQueueId must be at least numFrames.
The max size of framePtr and filledQueueId is defined by FrameQ_MAX_FRAMESINVAPI.
Parameters:
handle | Instance handle.
pframe | Location to receive frames the queues specified in filledQueueId array argument.
filledQueueId | Array of queue ids from which frames.
numFrames | Denotes number of frames that needs to retrieved from the filled Queues ids specified by filledQueueId. The Size of pframe and filledQueueId should be atleast equal to number of frames specified in numFrames value can be max FrameQ_MAX_FRAMESINVAPI.
Return values:
FrameQ_S_SUCCESS | Successfully retrieved frames.
FrameQ_E_FAIL | Failed to get frames.
FrameQ_E_INVALIDARG | Invalid arguments
FrameQ_E_ACCESSDENIED | Provided handle can not retrieve frames. Only reader client can retrieve frames.
See also:
FrameQ_putv()
Int32 FrameQ_dup | ( | FrameQ_Handle | handle,
 |  | FrameQ_Frame | frame,
 |  | FrameQ_Frame * | dupedFrame
 | ) |  |

Duplicate the given frame.

Duplicates the given frame. It allocates one frame header buffer and copies the header information given in original frame and returns it.

Parameters:
handle | Instance handle.
frame | frame to be duplicated.
dupedFrame | Location to receive the duplicated frame.
Return values:
FrameQ_S_SUCCESS | Successfully retrieved frames
FrameQ_E_FAIL | Failed to get frames
FrameQ_E_INVALIDARG | Invalid argument
FrameQ_E_ACCESSDENIED | Provided handle can not dup frames. Only writer/reader client can dup frame.
See also:
FrameQ_alloc()
Int32 FrameQ_registerNotifier | ( | FrameQ_Handle | handle,
 |  | FrameQ_NotifyParams * | notifyParams
 | ) |  |

Register a call back function.

For reader : It registers notification function to notify about available frames in the FrameQ. For writer : It registers notification function to notify about available free frames in the Plugged in FrameQBufMgr.

Parameters:
handle | Instance handle.
notifyParams | Pointer to notifyParams.
Return values:
FrameQ_S_SUCCESS | Operation successful.
FrameQ_E_INVALIDARG | Invalid Argument
FrameQ_E_INVALIDSTATE | Module is not initialized
FrameQ_E_FAIL | Failed to register notification
See also:
FrameQ_unregisterNotifier()
Int32 FrameQ_unregisterNotifier ( FrameQ_Handle handle )

Unregister call back function.

Parameters:
handle Reader/writer client Handle.
Return values:
FrameQ_S_SUCCESS | Successfully duped frame.
FrameQ_E_INVALIDARG | Invalid argument
FrameQ_E_INVALIDSTATE | Module is not initialized.
FrameQ_E_FAIL | Failed to register notification.
See also:
FrameQ_registerNotifier()
Int32 FrameQ_sendNotify | ( | FrameQ_Handle | handle,
 |  | UInt16 | msg
 | ) |  |

Send forced notification to the reader clients.

Parameters:
handle | Writer client Handle
msg | Payload that needs to be send to reader
Return values:
FrameQ_S_SUCCESS | Successfully sent notification
FrameQ_E_INVALIDARG | Invalid argument
FrameQ_E_INVALIDSTATE | Module is not initialized
FrameQ_E_FAIL | Failed to send notification
FrameQ_E_ACCESSDENIED | handle is not a writer handle.can not send notification.
See also:
FrameQ_registerNotifier()
Int32 FrameQ_getNumFrames | ( | FrameQ_Handle | handle,
 |  | UInt32 * | numFrames
 | ) |  |

Function to find out the number of available frames in a FrameQ .

For Writer: It returns the number of frames in the primary reader's filled queue 0. For Reader: It returns the number of frames in the Reader's(caller)filledqueue 0.

Parameters:
handle | Reader client Handle.
numFrames | Location to recieve the number of frames.
Return values:
FrameQ_S_SUCCESS | Operation successful.
FrameQ_E_FAIL | API failed.
See also:
FrameQ_getvNumFrames()
Int32 FrameQ_getvNumFrames | ( | FrameQ_Handle | handle,
 |  | UInt32 | numFrames[],
 |  | UInt8 | filledQId[],
 |  | UInt8 | numFilledQids
 | ) |  |

Find out the number of available frames in a FrameQ.

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

Parameters:
handle | Writer/Reader client handle.
numFrames | Location to recieve the number of frames.
filledQId | Array of filled queues.
numFilledQids | Number of queues specified in filledQId array.
Return values:
FrameQ_S_SUCCESS | Operation successful.
FrameQ_E_FAIL | API failed.
See also:
FrameQ_getNumFrames()
Int32 FrameQ_getNumFreeFrames | ( | FrameQ_Handle | handle,
 |  | UInt32 * | numFreeFrames
 | ) |  |

Get the number of free frames.

Function to get the number of free frames available in the plugged in FrameQbufMgr's FreeFramePool 0. The returned number free frames may not exist in the frameQBufMgr after this call. This is because if allocs can be done by the other FrameQ writers on the same FrameQBufMgr. If frames are freed by other frameQ writers then the free Frames would be even more than the value that this API returns.

Parameters:
handle | Instance handle.
numFreeFrames | out parameter that denotes the number of free frames available
Return values:
FrameQ_S_SUCCESS | Operation successful.
FrameQ_E_FAIL | API failed.
See also:
FrameQ_getvNumFreeFrames()
Int32 FrameQ_getvNumFreeFrames | ( | FrameQ_Handle | handle,
 |  | UInt32 | numFreeFrames[],
 |  | UInt8 | freeQId[],
 |  | UInt8 | numFreeQids
 | ) |  |

Function to get the number of free frames.

Function to get the number of free frames available in the plugged in FrameQbufMgr's FreeFramePools. The returned number free frames may not exist in the frameQBufMgr after this call. This is because if allocs can be done by the other FrameQ writers on the same FrameQBufMgr.If frames are freed by other frameQ writers then the free Frames would be even more than the value that this API returns.

Parameters:
handle | Instance handle.
numFreeFrames | out parameter that denotes the number of free frames available
freeQId | Array of free queues.
numFreeQids | Number of queues specified in freeQId array.
Return values:
FrameQ_S_SUCCESS | Operation successful.
FrameQ_E_FAIL | API failed.
See also:
FrameQ_getNumFreeFrames()
Int32 FrameQ_control | ( | FrameQ_Handle | handle,
 |  | Int32 | cmd,
 |  | Ptr | arg
 | ) |  |

Provides a hook to perform implementation dependent operation.

Parameters:
handle | Instance handle.
cmd | Command to perform.
arg | void * argument.
Return values:
FrameQ_S_SUCCESS | Operation successful.
FrameQ_E_FAIL | API failed.
Ptr FrameQ_getExtendedHeaderPtr ( FrameQ_Frame frame )

Get the pointer to the extended header.

Parameters:
frame pointer to frame
Return values:
pointer Pointer to extended header pointer in frame header.
UInt32 FrameQ_getNumFrameBuffers ( FrameQ_Frame frame )

Determine the number of frame buffers in a frame.

Parameters:
frame pointer to frame
Return values:
number of frame buffers.
Ptr FrameQ_getFrameBuffer | ( | FrameQ_Frame | frame,
 |  | UInt32 | frameBufNum
 | ) |  |

Get the framebuffer.

Parameters:
frame | pointer to frame
frameBufNum | frame buffer index in the given frame
Return values:
Pointer to frame buffer.
UInt32 FrameQ_getFrameBufSize | ( | FrameQ_Frame | frame,
 |  | UInt32 | frameBufNum
 | ) |  |

Determine the size of frame buffer.

Parameters:
frame | pointer to frame
frameBufNum | frame buffer index in the given frame
Return values:
size frame buffer size.
UInt32 FrameQ_getFrameBufValidSize | ( | FrameQ_Frame | frame,
 |  | UInt32 | frameBufNum
 | ) |  |

Get valid data size of a frame buffer.

Parameters:
frame | pointer to frame
frameBufNum | frame buffer index in the given frame
Return values:
size valid size of the frame buffer.
UInt32 FrameQ_getFrameBufDataStartOffset | ( | FrameQ_Frame | frame,
 |  | UInt32 | frameBufNum
 | ) |  |

Get the valid data start offset in framebuffer identified by frameBufNum in a given frame.

Parameters:
frame | pointer to frame
frameBufNum | frame buffer index in the given frame
Return values:
offset valid data offset in the frame buffer.
Int32 FrameQ_setFrameBufValidSize | ( | FrameQ_Frame | frame,
 |  | UInt32 | frameBufNum,
 |  | UInt32 | validDataSize
 | ) |  |

Set the valid data size of a framebuffer identified by frameBufNum in given frame.

Parameters:
frame | pointer to frame
frameBufNum | frame buffer index in the given frame
validDataSize | size of the valid data
Return values:
FrameQ_S_SUCCESS | Operation successful.
FrameQ_E_FAIL | API failed.
Int32 FrameQ_setFrameBufDataStartOffset | ( | FrameQ_Frame | frame,
 |  | UInt32 | frameBufNum,
 |  | UInt32 | dataStartOffset
 | ) |  |

Set the valid data start offset of a framebuffer identified by frameBufNum in a given frame.

Parameters:
frame | pointer to frame
frameBufNum | frame buffer index in the given frame
dataStartOffset | valid data startoffset that needs to set for the frame buffer.
Return values:
FrameQ_S_SUCCESS | Operation successful.
FrameQ_E_FAIL | API failed.
Void FrameQ_getConfig ( FrameQ_Config * cfg )

Get the default configuration for the FrameQ module.

This function can be called by the application to get their configuration parameter to FrameQ_setup filled in by the FrameQ module with the default parameters. If the user does not wish to make any change in the default parameters, this API is not required to be called.

Parameters:
cfg Pointer to the FrameQ module configuration structure in which the default config is to be returned.
See also:
FrameQ_setup()
Int32 FrameQ_setup ( FrameQ_Config * cfg )

Setup the FrameQ module.

This function sets up the FrameQ module. This function must be called before any other instance-level APIs can be invoked. Module-level configuration needs to be provided to this function. If the user wishes to change some specific config parameters, then FrameQ_getConfig can be called to get the configuration filled with the default values. After this, only the required configuration values can be changed. If the user does not wish to make any change in the default parameters, the application can simply call FrameQ_setup with NULL parameters. The default parameters would get automatically used.

Parameters:
cfg Optional FrameQ module configuration. If provided as NULL, default configuration is used.
See also:
FrameQ_destroy()
FrameQ_getConfig()
Int32 FrameQ_destroy ( Void )

Finalize the FrameQ module.

See also:
FrameQ_setup()


SysLink Application Programming Interface (API): FrameQ.h Source File

FrameQ.h

Go to the documentation of this file.
00001
00010 /*
00011  *  ============================================================================
00012  *
00013  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00014  *
00015  *  Redistribution and use in source and binary forms, with or without
00016  *  modification, are permitted provided that the following conditions
00017  *  are met:
00018  *
00019  *  *  Redistributions of source code must retain the above copyright
00020  *     notice, this list of conditions and the following disclaimer.
00021  *
00022  *  *  Redistributions in binary form must reproduce the above copyright
00023  *     notice, this list of conditions and the following disclaimer in the
00024  *     documentation and/or other materials provided with the distribution.
00025  *
00026  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00027  *     its contributors may be used to endorse or promote products derived
00028  *     from this software without specific prior written permission.
00029  *
00030  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00031  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00032  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00033  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00034  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00035  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00036  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00037  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00038  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00039  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00040  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00041  *  Contact information for paper mail:
00042  *  Texas Instruments
00043  *  Post Office Box 655303
00044  *  Dallas, Texas 75265
00045  *  Contact information:
00046  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00047  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00048  *  ============================================================================
00049  *
00050  */
00051
00052
00053 #ifndef FRAMEQ_H_0x6e6f
00054 #define FRAMEQ_H_0x6e6f
00055
00056 #include <ti/syslink/FrameQDefs.h>
00057 #include <ti/syslink/SysLink.h>
00058 #include <ti/ipc/Notify.h>
00059
00060 #if defined (__cplusplus)
00061 extern "C" {
00062 #endif
00063
00064 /* =============================================================================
00065  *  All success and failure codes for the module
00066  * =============================================================================
00067  */
00071 #define FrameQ_S_ALREADYDESTROYED           2
00072
00076 #define FrameQ_S_ALREADYSETUP               1
00077
00081 #define FrameQ_S_SUCCESS                    0
00082
00086 #define FrameQ_E_FAIL                       -1
00087
00091 #define FrameQ_E_INVALIDARG                 -2
00092
00096 #define FrameQ_E_NOTFOUND                   -3
00097
00101 #define FrameQ_E_INST_EXISTS                -4
00102
00106 #define FrameQ_E_WRITER_EXISTS              -5
00107
00111 #define FrameQ_E_ALLOC_FRAME                -6
00112
00116 #define FrameQ_E_ALLOC_FRAMEBUF             -7
00117
00121 #define FrameQ_E_MEMORY                     -8
00122
00126 #define FrameQ_E_EMPTY                      -9
00127
00131 #define FrameQ_E_CREATE_NAMESERVER          -10
00132
00136 #define FrameQ_E_CREATE_GATEMP              -11
00137
00141 #define FrameQ_E_OPEN_GATEMP                -12
00142
00146 #define FrameQ_E_FAIL_CLIENTN0TIFYMGR_CREATE -13
00147
00151 #define FrameQ_E_FAIL_CLIENTN0TIFYMGR_OPEN  -14
00152
00156 #define FrameQ_E_MAX_READERS                -15
00157
00161 #define FrameQ_E_ACCESSDENIED               -16
00162
00166 #define FrameQ_E_INVALIDSTATE               -17
00167
00171 #define FrameQ_E_OSFAILURE                  -18
00172
00176 #define FrameQ_E_FAIL_NAMESERVERADD         -19
00177
00181 #define FrameQ_E_INVALID_INTERFACE          -20
00182
00186 #define FrameQ_E_NOTIMPLEMENTED             -21
00187
00191 #define FrameQ_E_OPEN_NAMESERVER            -22
00192
00196 #define FrameQ_E_INVALID_FRAMEQBUFMGRID     -23
00197
00202 #define FrameQ_E_INSUFFICENT_FRAMES         -24
00203
00207 #define FrameQ_E_ALLOC_MEMORY               -25
00208
00212 #define FrameQ_E_FRAMEQBUFMGROPEN            -26
00213
00217 #define FrameQ_E_LISTMPOPEN                  -27
00218
00222 #define FrameQ_E_CLIENTNOTIFYMGRREGCLIENT       -28
00223
00227 #define FrameQ_E_FRAMEQBUFMGRREGCLIENT          -29
00228
00232 #define FrameQ_E_CLIENTNOTIFYMGRUNREGCLIENT     -30
00233
00237 #define FrameQ_E_FRAMEQBUFMGRUNREGCLIENT        -31
00238
00242 #define FrameQ_E_ALREADYREGISTERED             -32
00243
00247 #define FrameQ_E_NAMESERVERADD                 -33
00248
00249 /* =============================================================================
00250  * macros & defines
00251  * =============================================================================
00252  */
00256 #define FrameQ_FrameBufInfo       Frame_FrameBufInfo
00257
00261 #define FrameQ_FrameHeader        Frame_FrameHeader
00262
00266 typedef Frame_FrameHeader *       FrameQ_Frame;
00267
00271 #define FrameQ_MAX_NAMELEN                 (32u)
00272
00276 #define FrameQ_MAXFILLEDQUEUS_FOR_READER  (16)
00277
00281 #define FrameQ_MAX_INST_READERS           (2u)
00282
00283
00287 #define FrameQ_MAX_INSTANCES               (64u)
00288
00292 #define FrameQ_NOTIFY_RESERVED_EVENTNO    (1u)
00293
00299 typedef UInt16                    FrameQ_NotifyMsg;
00300
00301 /* =============================================================================
00302  * Structures & Enums
00303  * =============================================================================
00304  */
00305
00309 typedef struct FrameQ_Object * FrameQ_Handle;
00310
00314 typedef void (* FrameQ_NotifyFunc) (FrameQ_Handle, Ptr arg, FrameQ_NotifyMsg);
00315
00319 typedef enum FrameQ_NotifyType_Tag {
00320     FrameQ_NOTIFICATION_NONE   = SysLink_NOTIFICATION_NONE,
00322     FrameQ_NOTIFICATION_ALWAYS = SysLink_NOTIFICATION_ALWAYS,
00324     FrameQ_NOTIFICATION_ONCE   = SysLink_NOTIFICATION_ONCE,
00329     FrameQ_NOTIFICATION_HDWRFIFO_ALWAYS = SysLink_NOTIFICATION_HDWRFIFO_ALWAYS,
00333     FrameQ_NOTIFICATION_HDWRFIFO_ONCE = SysLink_NOTIFICATION_HDWRFIFO_ONCE
00339 } FrameQ_NotifyType;
00340
00344 typedef enum FrameQ_OpenMode_Tag {
00345     FrameQ_MODE_NONE,
00347     FrameQ_MODE_WRITER,
00349     FrameQ_MODE_READER
00351 } FrameQ_OpenMode;
00352
00357 typedef enum FrameQ_CpuAccessFlags_Tag {
00358         FrameQ_FRAMEBUF0_CPUACCESS    =  0x10000,
00362         FrameQ_FRAMEBUF1_CPUACCESS    =  0x20000,
00366         FrameQ_FRAMEBUF2_CPUACCESS    =  0x40000,
00370         FrameQ_FRAMEBUF3_CPUACCESS    =  0x80000,
00374         FrameQ_FRAMEBUF4_CPUACCESS    = 0x100000,
00378         FrameQ_FRAMEBUF5_CPUACCESS    = 0x200000,
00382         FrameQ_FRAMEBUF6_CPUACCESS    = 0x400000,
00386         FrameQ_FRAMEBUF7_CPUACCESS    = 0x800000
00390 } FrameQ_CpuAccessFlags;
00391
00395 typedef enum FrameQ_Interface_Tag {
00396     FrameQ_INTERFACE_SHAREDMEM = 0x0,
00400     FrameQ_INTERFACE_NONE      = 0x1
00401 } FrameQ_Interface;
00402
00406 typedef struct FrameQ_Config_Tag {
00407     UInt32 eventNo;
00410     UInt8  maxInstances;
00413     UInt32  usedefaultgate;
00421 } FrameQ_Config;
00422
00428 typedef struct FrameQ_CreateParams_Tag {
00429     UInt32                  size;
00431     FrameQ_Interface        ctrlInterfaceType;
00433     String                  name;
00435     Bool                    openFlag;
00436     /* Open flag to indicate create/open. internal flag.  Caller should not
00437      * touch this flag during create
00438      */
00439 } FrameQ_CreateParams;
00440
00445 typedef struct FrameQ_CommonOpenParams_Tag {
00446     String       name;
00448     Ptr         sharedAddr;
00450     UInt32      openMode;
00452     UInt32      cpuAccessFlags;
00456 } FrameQ_CommonOpenParams;
00457
00463 typedef struct FrameQ_Params {
00464     FrameQ_CreateParams   commonCreateParams;
00465     Ptr impParams;
00468     UInt32  impParamsSize;
00470 } FrameQ_Params;
00471
00475 typedef struct FrameQ_NotifyParams_Tag {
00476     FrameQ_NotifyType      notifyType;
00478     UInt32                  watermark;
00482     FrameQ_NotifyFunc       cbFxnPtr;
00484     Ptr                     cbContext;
00486     Ptr                     cbClientHandle;
00489 } FrameQ_NotifyParams;
00490
00491 /* =============================================================================
00492  * APIs
00493  * =============================================================================
00494  */
00508 Int32 FrameQ_isSupportedInterface(UInt32 type);
00509
00526 FrameQ_Handle FrameQ_create(Ptr params);
00527
00544 Int32 FrameQ_delete(FrameQ_Handle *pHandle);
00545
00571     Int32 FrameQ_open(Ptr openParams, FrameQ_Handle *handlePtr);
00572
00599 Int32 FrameQ_openByAddr(FrameQ_Handle *handlePtr, Ptr openParams);
00600
00616 Int32 FrameQ_close(FrameQ_Handle *pHandle);
00617
00641 Int32 FrameQ_alloc(FrameQ_Handle handle, FrameQ_Frame *framePtr);
00642
00674 Int32 FrameQ_allocv(FrameQ_Handle handle, FrameQ_Frame framePtr[],
00675         UInt32 freeQId[], UInt8 *numFrames);
00676
00698 Int32 FrameQ_free(FrameQ_Handle handle, FrameQ_Frame frame);
00699
00724 Int32 FrameQ_freev(FrameQ_Handle handle, FrameQ_Frame framePtr[],
00725         UInt32 numFrames);
00726
00750 Int32 FrameQ_put(FrameQ_Handle handle, FrameQ_Frame frame);
00751
00776 Int32 FrameQ_putv(FrameQ_Handle handle, FrameQ_Frame framePtr[],
00777         UInt32 filledQueueId[], UInt8 numFrames);
00778
00797 Int32 FrameQ_get(FrameQ_Handle handle, FrameQ_Frame *framePtr);
00798
00831 Int32 FrameQ_getv(FrameQ_Handle handle, FrameQ_Frame pframe[],
00832         UInt32 filledQueueId[], UInt8 *numFrames);
00833
00853 Int32 FrameQ_dup(FrameQ_Handle handle, FrameQ_Frame frame,
00854         FrameQ_Frame *dupedFrame);
00855
00876 Int32 FrameQ_registerNotifier(FrameQ_Handle handle,
00877         FrameQ_NotifyParams *notifyParams);
00878
00892 Int32 FrameQ_unregisterNotifier(FrameQ_Handle handle);
00893
00910 Int32 FrameQ_sendNotify(FrameQ_Handle handle, UInt16 msg);
00911
00929 Int32 FrameQ_getNumFrames(FrameQ_Handle handle, UInt32 *numFrames);
00930
00949 Int32 FrameQ_getvNumFrames(FrameQ_Handle handle, UInt32 numFrames[],
00950         UInt8 filledQId[], UInt8 numFilledQids);
00951
00972 Int32 FrameQ_getNumFreeFrames(FrameQ_Handle handle, UInt32 *numFreeFrames);
00973
00996 Int32 FrameQ_getvNumFreeFrames(FrameQ_Handle handle, UInt32 numFreeFrames[],
00997         UInt8 freeQId[], UInt8 numFreeQids);
00998
01009 Int32 FrameQ_control(FrameQ_Handle handle, Int32 cmd, Ptr arg);
01010
01018 Ptr FrameQ_getExtendedHeaderPtr(FrameQ_Frame frame);
01019
01020
01021 /*=============================================================================
01022  * Helper APIs
01023  *=============================================================================
01024  */
01032 UInt32 FrameQ_getNumFrameBuffers(FrameQ_Frame frame);
01033
01042 Ptr FrameQ_getFrameBuffer(FrameQ_Frame frame, UInt32 frameBufNum);
01043
01052 UInt32 FrameQ_getFrameBufSize(FrameQ_Frame frame, UInt32 frameBufNum);
01053
01062 UInt32 FrameQ_getFrameBufValidSize(FrameQ_Frame frame, UInt32 frameBufNum);
01063
01073 UInt32 FrameQ_getFrameBufDataStartOffset(FrameQ_Frame frame,
01074         UInt32 frameBufNum);
01075
01087 Int32 FrameQ_setFrameBufValidSize(FrameQ_Frame frame, UInt32 frameBufNum,
01088         UInt32 validDataSize);
01089
01102 Int32 FrameQ_setFrameBufDataStartOffset(FrameQ_Frame frame,
01103         UInt32 frameBufNum, UInt32 dataStartOffset);
01104
01105
01121 Void FrameQ_getConfig(FrameQ_Config *cfg);
01122
01123
01145 Int32 FrameQ_setup(FrameQ_Config *cfg);
01146
01147
01153 Int32 FrameQ_destroy(Void);
01154
01155
01156 #if defined (__cplusplus)
01157 }
01158 #endif
01159
01160
01161 #endif /*FRAMEQ_H_0x6e6f*/


SysLink Application Programming Interface (API): FrameQ_ShMem.h File Reference

Data Structures | Typedefs | Functions

FrameQ_ShMem.h File Reference

Detailed Description

Header file for FrameQ on SharedMemory interface. (Deprecated)

Deprecated:
The FrameQ APIs are deprecated as of SysLink 2.20. While supported in this release, they will be removed in a future release.
#include <ti/ipc/GateMP.h>
Include dependency graph for FrameQ_ShMem.h:

Go to the source code of this file.

Data Structures

struct | FrameQ_ShMem_Params_tag
Structure defining instance create parameters for the FrameQ on shared memory(inter core and intra core). More...
struct | FrameQ_ShMem_OpenParams_tag
Structure defining open parameters for the FrameQ instance on ShMem (shared memory interface). More...

Typedefs

typedef FrameQ_Config | FrameQ_ShMem_Config
typedef struct
FrameQ_ShMem_Params_tag 		FrameQ_ShMem_Params
Structure defining instance create parameters for the FrameQ on shared memory(inter core and intra core).
typedef struct
FrameQ_ShMem_OpenParams_tag 		FrameQ_ShMem_OpenParams
Structure defining open parameters for the FrameQ instance on ShMem (shared memory interface).

Functions

void | FrameQ_ShMem_Params_init (FrameQ_ShMem_Params *params)
Function to initiallze the params with the default params.
UInt32 | FrameQ_ShMem_sharedMemReq (const FrameQ_ShMem_Params *params)
Function to find out the shared memory requirements.
Void | FrameQ_ShMem_getConfig (FrameQ_ShMem_Config *cfg)
Int32 | FrameQ_ShMem_setup (FrameQ_ShMem_Config *cfg)
Int32 | FrameQ_ShMem_destroy (void)

Typedef Documentation

typedef FrameQ_Config FrameQ_ShMem_Config
typedef struct FrameQ_ShMem_Params_tag FrameQ_ShMem_Params

Structure defining instance create parameters for the FrameQ on shared memory(inter core and intra core).

typedef struct FrameQ_ShMem_OpenParams_tag FrameQ_ShMem_OpenParams

Structure defining open parameters for the FrameQ instance on ShMem (shared memory interface).

Function Documentation

void FrameQ_ShMem_Params_init ( FrameQ_ShMem_Params * params )

Function to initiallze the params with the default params.

Parameters:
params pointer to FrameQ_ShMem_Params.
See also:
FrameQ_create
UInt32 FrameQ_ShMem_sharedMemReq ( const FrameQ_ShMem_Params * params )

Function to find out the shared memory requirements.

This function returns size of the shared memory required for the instance based on the params provided.

Parameters:
params pointer to FrameQ_ShMem_Params.
Return values:
size shared memory reqired for the instance
See also:
FrameQ_ShMem_Params_init(), FrameQ_create()
Void FrameQ_ShMem_getConfig ( FrameQ_ShMem_Config * cfg )
Int32 FrameQ_ShMem_setup ( FrameQ_ShMem_Config * cfg )
Int32 FrameQ_ShMem_destroy ( void )


SysLink Application Programming Interface (API): FrameQ_ShMem.h Source File

FrameQ_ShMem.h

Go to the documentation of this file.
00001
00010 /*
00011  *  ============================================================================
00012  *
00013  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00014  *
00015  *  Redistribution and use in source and binary forms, with or without
00016  *  modification, are permitted provided that the following conditions
00017  *  are met:
00018  *
00019  *  *  Redistributions of source code must retain the above copyright
00020  *     notice, this list of conditions and the following disclaimer.
00021  *
00022  *  *  Redistributions in binary form must reproduce the above copyright
00023  *     notice, this list of conditions and the following disclaimer in the
00024  *     documentation and/or other materials provided with the distribution.
00025  *
00026  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00027  *     its contributors may be used to endorse or promote products derived
00028  *     from this software without specific prior written permission.
00029  *
00030  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00031  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00032  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00033  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00034  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00035  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00036  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00037  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00038  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00039  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00040  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00041  *  Contact information for paper mail:
00042  *  Texas Instruments
00043  *  Post Office Box 655303
00044  *  Dallas, Texas 75265
00045  *  Contact information:
00046  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00047  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00048  *  ============================================================================
00049  *
00050  */
00051
00052
00053 #ifndef FRAMEQ_SHMEM_H
00054 #define FRAMEQ_SHMEM_H
00055
00056 #include <ti/ipc/GateMP.h>
00057
00058 #if defined (__cplusplus)
00059 extern "C" {
00060 #endif
00061
00062 /* =============================================================================
00063  * Macros & defines
00064  * =============================================================================
00065  */
00066
00067 typedef FrameQ_Config           FrameQ_ShMem_Config ;
00068
00069 /* =============================================================================
00070  * Structures & Enums
00071  * =============================================================================
00072  */
00073
00078 typedef struct FrameQ_ShMem_Params_tag {
00079     FrameQ_CreateParams commonCreateParams;
00082     GateMP_Handle         gate;
00095     GateMP_LocalProtect localProtect;
00101     GateMP_RemoteProtect remoteProtect;
00107      Ptr                sharedAddr;
00118     UInt32              sharedAddrSize;
00128     UInt32 regionId;
00136     UInt32              numReaders;
00141     UInt32              numQueues;
00145     UInt32              cpuAccessFlags;
00152     String frameQBufMgrName;
00160     Ptr frameQBufMgrSharedAddr;
00165 } FrameQ_ShMem_Params;
00166
00167
00172 typedef struct FrameQ_ShMem_OpenParams_tag {
00173     FrameQ_CommonOpenParams commonOpenParams;
00175 }FrameQ_ShMem_OpenParams;
00176
00177
00178 /* =============================================================================
00179  *  APIs
00180  * =============================================================================
00181  */
00182
00192 void
00193 FrameQ_ShMem_Params_init(FrameQ_ShMem_Params * params);
00194
00207 UInt32
00208 FrameQ_ShMem_sharedMemReq (const FrameQ_ShMem_Params * params);
00209
00210 /*
00211  *  @brief      Get the default configuration for the FrameQ_ShMem module.
00212  *
00213  *              This function can be called by the application to get their
00214  *              configuration parameter to FrameQ_setup filled in by
00215  *              the FrameQ module with the default parameters. If the
00216  *              user does not wish to make any change in the default parameters,
00217  *              this API is not required to be called.
00218  *
00219  *  @param      cfg  Pointer to the FrameQ module configuration
00220  *                         structure in which the default config is to be
00221  *                         returned.
00222  *
00223  *  @sa         FrameQ_setup
00224  */
00225 Void FrameQ_ShMem_getConfig(FrameQ_ShMem_Config *cfg);
00226
00227 /*
00228  *  @brief      Setup the FrameQ module.
00229  *
00230  *              This function sets up the FrameQ module. This function
00231  *              must be called before any other instance-level APIs can be
00232  *              invoked.
00233  *              Module-level configuration needs to be provided to this
00234  *              function. If the user wishes to change some specific config
00235  *              parameters, then FrameQ_getConfig can be called to get
00236  *              the configuration filled with the default values. After this,
00237  *              only the required configuration values can be changed. If the
00238  *              user does not wish to make any change in the default parameters,
00239  *              the application can simply call FrameQ_setup with NULL
00240  *              parameters. The default parameters would get automatically used.
00241  *
00242  *  @param      cfg   Optional FrameQ module configuration. If provided
00243  *                    as NULL, default configuration is used.
00244  *
00245  *  @sa         FrameQ_destroy, FrameQ_getConfig
00246  */
00247 Int32
00248 FrameQ_ShMem_setup (FrameQ_ShMem_Config * cfg);
00249
00250 /*
00251  *  ======== FrameQ_ShMem_destroy ========
00252  *  API to finalize the module.
00253  */
00254 Int32
00255 FrameQ_ShMem_destroy (void);
00256
00257 #if defined (__cplusplus)
00258 }
00259 #endif
00260
00261
00262 #endif /* FRAMEQ_SHMEM_H */
00263


SysLink Application Programming Interface (API): FrameQBufMgr.h File Reference

Data Structures | Defines | Typedefs | Enumerations | Functions

FrameQBufMgr.h File Reference

Detailed Description

Defines for interfaces for FrameQBufMgr module. (Deprecated)

Deprecated:
The FrameQ APIs are deprecated as of SysLink 2.20. While supported in this release, they will be removed in a future release.
#include <ti/syslink/FrameQDefs.h>
#include <ti/syslink/SysLink.h>
#include <ti/ipc/Notify.h>
Include dependency graph for FrameQBufMgr.h:

Go to the source code of this file.

Data Structures

struct | FrameQBufMgr_Config_Tag
Structure defining module config parameters for the FrameQBufMgr module. More...
struct | FrameQBufMgr_CreateParams_Tag
Common parameters required to create FrameQBufMgr instance of any implementation. More...
struct | FrameQBufMgr_CommonOpenParams_Tag
Common parameters required to open a FrameQBufMgr instance of any implementation. More...
struct | FrameQBufMgr_Params
Common parameters required to create FrameQBufMgr instance of any implementation. More...
struct | FrameQBufMgr_FrameBufParams_Tag
Frame buffer param structure. More...
struct | FrameQBufMgr_NotifyParams_Tag
Structure defining notification parameter structure. More...

Defines

#define | FrameQBufMgr_S_ALREADYDESTROYED 2
Indicates module has been already destroyed.
#define | FrameQBufMgr_S_ALREADYSETUP 1
Indicates module is already setup.
#define | FrameQBufMgr_S_SUCCESS 0
Operation successful.
#define | FrameQBufMgr_E_FAIL -1
General Failure.
#define | FrameQBufMgr_E_INVALIDARG -2
Invalid arguments are passed to FrameQBufMgr API.
#define | FrameQBufMgr_E_NOTFOUND -3
Instance not found.
#define | FrameQBufMgr_E_INST_EXISTS -4
FrameQBufMgr instance already exists.
#define | FrameQBufMgr_E_ALLOC_BUF -5
Failed to allocate buffer.
#define | FrameQBufMgr_E_ALLOC_MEMORY -6
Failed to allocate memory.
#define | FrameQBufMgr_E_CREATE_NAMESERVER -7
Name server create failed for the module.
#define | FrameQBufMgr_E_FAIL_CLIENTN0TIFYMGR_CREATE -8
ClientNotifyMgr create failed.
#define | FrameQBufMgr_E_CLIENTN0TIFYMGR_OPEN -9
ClientNotifyMgr open failed.
#define | FrameQBufMgr_E_CREATE_GATEMP -10
Creation of GateMP failed.
#define | FrameQBufMgr_E_OPEN_GATEMP -11
GateMP open failed.
#define | FrameQBufMgr_E_MAX_CLIENTS -12
Maximum instances limit reached.
#define | FrameQBufMgr_E_ACCESSDENIED -13
Operation can not be permitted or not implemented.
#define | FrameQBufMgr_E_NOTIMPLEMENTED -14
API is not implemented.
#define | FrameQBufMgr_E_INVALIDSTATE -15
Module is not initialized.
#define | FrameQBufMgr_E_OSFAILURE -16
Failure in OS call.
#define | FrameQBufMgr_E_MAXINSTANCES -17
Max instances limit reached. Can not create instance.
#define | FrameQBufMgr_E_INVALID_INTERFACE -18
Unsupported interface type.
#define | FrameQBufMgr_E_OPEN_NAMESERVER -19
Failed to open NameServer.
#define | FrameQBufMgr_E_INSUFFICIENT_HDRBUFS -20
Insufficient header buffers.
#define | FrameQBufMgr_E_ALLOC_FRAME -21
Failed to allocate frame.
#define | FrameQBufMgr_E_ALLOC_ALLFRAMES -22
Not able to allocate the requested frames.Able to allocate only few frames.
#define | FrameQBufMgr_E_INVALID_MEMMGRTYPE -23
Invalid MemMgr type specified.
#define | FrameQBufMgr_E_INVALID_HDRINTERFACETYPE -24
Invalid Header buffer interface type specified.see enum FrameQBufMgr_FrameHeaderInterface for the supported types.
#define | FrameQBufMgr_E_INVALID_BUFINTERFACETYPE -25
Invalid frame buffer interface type specified.see enum FrameQBufMgr_FrameBufferInterface for the supported types.
#define | FrameQBufMgr_E_NAMESERVERADD -33
NameServer_add failed.
#define | FrameQBufMgr_FrameBufInfo Frame_FrameBufInfo
#define | FrameQBufMgr_FrameHeader Frame_FrameHeader
Defines the frame header structure.
#define | FrameQBufMgr_MAXNAMELEN (32u)
Maximum length of the name string in bytes.
#define | FrameQBufMgr_MAXINSTANCES (64u)
Maximum number of instances managed by FrameQBufMgr module.
#define | FrameQBufMgr_MAX_POOLS (64u)
Maximum number of free frame pools to be maintained in a instance.
#define | FrameQBufMgr_MAX_FRAMEBUFS (8)
Maximum number of frame buffers in a frame managed by in FrameQBufMgr instance.
#define | FrameQBufMgr_POOL_MAXFRAMES (32)
Maximum number of static free Frames managed by FrameQBufMgr instance Free Frame pool.
#define | FrameQBufMgr_POOL_MAXHDRS (64)
Maximum number of additional static free headers managed by FrameQBufMgr instance for each Free Frame pool.
#define | FrameQBufMgr_POOL_DYNAMIC_MAXFRAMES (1)
Maximum number of dynbuffers managed by each buffer pool in FrameQBufMgr instance.
#define | FrameQBufMgr_POOL_DYNAMIC_MAXHDRS (1)
Maximum number of additional dynamic free headers managed by FrameQBufMgr instance for each Free Frame pool.
#define | FrameQBufMgr_NOTIFY_RESERVED_EVENTNO (0u)
Notify Event Number to be used by FrameQBufMgr module.
#define | FrameQBufMgr_MAX_FRAMESINVAPI (FrameQ_MAX_FRAMESINVAPI)
Macro used in FrameQ for sorting of passed parameters in V API. In FrameQBufMgr_allocv case this denotes the number of frames that can be allocated in one call.

Typedefs

typedef struct
FrameQBufMgr_Object * 		FrameQBufMgr_Handle
Handle for the FrameQBufMgr instance.
typedef Frame_FrameHeader * | FrameQBufMgr_Frame
Defines the type for a frame pointer.
typedef enum
FrameQBufMgr_CpuAccessFlags_Tag 		FrameQBufMgr_CpuAccessFlags
Enumeration of CPU access flags for frame buffers. For frame headers CPUACCESS is assumed to be TRUE..
typedef enum
FrameQBufMgr_BufType_Tag 		FrameQBufMgr_BufType
Denotes the type of buffer.
typedef enum
FrameQBufMgr_AddrType_Tag 		FrameQBufMgr_AddrType
Enumerations to indicate address types used for translation.
typedef enum
FrameQBufMgr_Interface_Tag 		FrameQBufMgr_Interface
Enumeration of FrameQBufMgr interface types.Denotes different implementation types.
typedef enum
FrameQBufMgr_FrameHeaderInterface_Tag 		FrameQBufMgr_FrameHeaderInterface
Enumeration of FrameQBufMgr interface types.Denotes different implementation types.
typedef enum
FrameQBufMgr_FrameBufferInterface_Tag 		FrameQBufMgr_FrameBufferInterface
Enumeration of FrameQBufMgr interface types.Denotes different implementation types.
typedef struct
FrameQBufMgr_Config_Tag 		FrameQBufMgr_Config
Structure defining module config parameters for the FrameQBufMgr module.
typedef struct
FrameQBufMgr_CreateParams_Tag 		FrameQBufMgr_CreateParams
Common parameters required to create FrameQBufMgr instance of any implementation.
typedef struct
FrameQBufMgr_CommonOpenParams_Tag 		FrameQBufMgr_CommonOpenParams
Common parameters required to open a FrameQBufMgr instance of any implementation.
typedef struct FrameQBufMgr_Params | FrameQBufMgr_Params
Common parameters required to create FrameQBufMgr instance of any implementation.
typedef struct
FrameQBufMgr_FrameBufParams_Tag 		FrameQBufMgr_FrameBufParams
Frame buffer param structure.
typedef void(* | FrameQBufMgr_NotifyFunc )(FrameQBufMgr_Handle, Ptr arg, UInt32)
Prototype of the FrameQBufMgr call back function.
typedef struct
FrameQBufMgr_NotifyParams_Tag 		FrameQBufMgr_NotifyParams
Structure defining notification parameter structure.

Enumerations

enum FrameQBufMgr_CpuAccessFlags_Tag {
FrameQBufMgr_FRAMEBUF0_CPUACCESS = 0x10000,
FrameQBufMgr_FRAMEBUF1_CPUACCESS = 0x20000,
FrameQBufMgr_FRAMEBUF2_CPUACCESS = 0x40000,
FrameQBufMgr_FRAMEBUF3_CPUACCESS = 0x80000,
FrameQBufMgr_FRAMEBUF4_CPUACCESS = 0x100000,
FrameQBufMgr_FRAMEBUF5_CPUACCESS = 0x200000,
FrameQBufMgr_FRAMEBUF6_CPUACCESS = 0x400000,
FrameQBufMgr_FRAMEBUF7_CPUACCESS = 0x800000
}

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

More...
enum FrameQBufMgr_BufType_Tag {
FrameQBufMgr_BUF_FRAMEHEADER = 0u,
FrameQBufMgr_BUF_FRAMEBUF = 1u,
FrameQBufMgr_BUF_ENDVALUE = 2u
}

Denotes the type of buffer.

More...
enum FrameQBufMgr_AddrType_Tag {
FrameQBufMgr_AddrType_Virtual = 0u,
FrameQBufMgr_AddrType_Portable = 1u,
FrameQBufMgr_AddrType_EndValue = 2u
}

Enumerations to indicate address types used for translation.

More...
enum FrameQBufMgr_Interface_Tag {
FrameQBufMgr_INTERFACE_SHAREDMEM = 0x0,
FrameQBufMgr_INTERFACE_NONE = 0x1
}

Enumeration of FrameQBufMgr interface types.Denotes different implementation types.

More...
enum FrameQBufMgr_FrameHeaderInterface_Tag {
FrameQBufMgr_HDRINTERFACE_SHAREDMEM = 0x0,
FrameQBufMgr_HDRINTERFACE_NONE = 0x1
}

Enumeration of FrameQBufMgr interface types.Denotes different implementation types.

More...
enum FrameQBufMgr_FrameBufferInterface_Tag {
FrameQBufMgr_BUFINTERFACE_SHAREDMEM = 0x0,
FrameQBufMgr_BUFINTERFACE_TILERMEM = 0x1,
FrameQBufMgr_BUFINTERFACE_NONE = 0x2
}

Enumeration of FrameQBufMgr interface types.Denotes different implementation types.

More...

Functions

Int32 | FrameQBufMgr_setup (FrameQBufMgr_Config *cfg)
Function to setup the FrameQBufMgr module.
Int32 | FrameQBufMgr_destroy (Void)
Function to destroy(finalize) the FrameQBufMgr module.
FrameQBufMgr_Handle | FrameQBufMgr_create (Ptr params)
Function to create FrameQBufMgr instance.
Int32 | FrameQBufMgr_delete (FrameQBufMgr_Handle *pHandle)
Function to delete FrameQBufMgr instance.
Int32 | FrameQBufMgr_open (FrameQBufMgr_Handle *handlePtr, Ptr openParams)
Function to open the created FrameQBufMgr instance.
Int32 | FrameQBufMgr_openByAddr (FrameQBufMgr_Handle *handlePtr, Ptr openParams)
Function to open the created FrameQBufMgr instance using the address provided in open params.
Int32 | FrameQBufMgr_close (FrameQBufMgr_Handle *pHandle)
Function to close the opened FrameQBufMgr instance.
Int32 | FrameQBufMgr_alloc (FrameQBufMgr_Handle handle, FrameQBufMgr_Frame *frame)
Function to allocate frame from free frame pool zero.
Int32 | FrameQBufMgr_allocv (FrameQBufMgr_Handle handle, FrameQBufMgr_Frame framePtr[], UInt32 freeQId[], UInt8 *numFrames)
Function to allocate multiple frames from the FrameQbufMgr instance..
Int32 | FrameQBufMgr_free (FrameQBufMgr_Handle handle, FrameQBufMgr_Frame frame)
Function to free frame.
Int32 | FrameQBufMgr_freev (FrameQBufMgr_Handle handle, FrameQBufMgr_Frame framePtr[], UInt32 numFrames)
Function to free multiple frames to the FrameQBufMgr.
Ptr | FrameQBufMgr_add (FrameQBufMgr_Handle handle, UInt8 freeQId)
Function to add frame.
Int32 | FrameQBufMgr_remove (FrameQBufMgr_Handle handle, UInt8 freeQId, FrameQBufMgr_Frame framePtr)
Function to remove frame.
Int32 | FrameQBufMgr_dup (FrameQBufMgr_Handle handle, FrameQBufMgr_Frame framePtr, FrameQBufMgr_Frame dupedFramePtr[], UInt32 numDupedFrames)
Function to duplicate the frame.
Int32 | FrameQBufMgr_dupv (FrameQBufMgr_Handle handle, FrameQBufMgr_Frame framePtr[], FrameQBufMgr_Frame **dupedFramePtr, UInt32 numDupedFrames, UInt32 numFrames)
Function to duplicate the multiple frames.
Int32 | FrameQBufMgr_registerNotifier (FrameQBufMgr_Handle handle, FrameQBufMgr_NotifyParams *notifyParams)
Function to register call back function for notification.
Int32 | FrameQBufMgr_unregisterNotifier (FrameQBufMgr_Handle handle)
Function to unregister call back function.
Int32 | FrameQBufMgr_writeBack (FrameQBufMgr_Handle handle, FrameQBufMgr_Frame framePtr)
Function to write back the frame.
Int32 | FrameQBufMgr_writeBackBuf (FrameQBufMgr_Handle handle, Ptr buf, UInt32 flags)
Write back the contents of buffer.
Int32 | FrameQBufMgr_invalidate (FrameQBufMgr_Handle handle, FrameQBufMgr_Frame framePtr)
Function to invalidate frame.
Int32 | FrameQBufMgr_invalidateFrameBuf (FrameQBufMgr_Handle handle, Ptr frameBuf, UInt32 size, UInt8 bufIndexInFrame)
Function to invalidate frame buffer.
Int32 | FrameQBufMgr_writeBackFrameBuf (FrameQBufMgr_Handle handle, Ptr frameBuf, UInt32 size, UInt8 bufIndexInFrame)
Function to writeback frame buffer.
Int32 | FrameQBufMgr_invalidateHeaderBuf (FrameQBufMgr_Handle handle, Ptr headerBuf)
Invalidate the contents of frame header.
Int32 | FrameQBufMgr_writeBackHeaderBuf (FrameQBufMgr_Handle handle, Ptr headerBuf)
Write back the contents of frame header.
Int32 | FrameQBufMgr_translateAddr (FrameQBufMgr_Handle handle, Ptr *dstAddr, FrameQBufMgr_AddrType dstAddrType, Ptr srcAddr, FrameQBufMgr_AddrType srcAddrType, FrameQBufMgr_BufType bufType)
API to translate the given pointer to other address type.
Int32 | FrameQBufMgr_getConfig (FrameQBufMgr_Config *cfg)
Function to initialize the config parameter structure with default values.
UInt32 | FrameQBufMgr_getId (FrameQBufMgr_Handle handle)
API to get the ID of the instance.
Ptr | FrameQBufMgr_getHandle (UInt32 Id)
API to get the handle of the instance.
Bool | FrameQBufMgr_isCacheEnabledForHeaderBuf (FrameQBufMgr_Handle handle)
Function to determine whether cache calls(writeback/invalidate) are enabled for frame headers.
Bool | FrameQBufMgr_isCacheEnabledForFrameBuf (FrameQBufMgr_Handle handle, UInt8 framebufIndex)
Function to determine whether cache calls(writeback/invalidate) are enabled for frame headers.
Int32 | FrameQBufMgr_getNumFreeFrames (FrameQBufMgr_Handle handle, UInt32 *numFreeFrames)
Function to get the number of free frames availabel in pool 0.
Int32 | FrameQBufMgr_control (FrameQBufMgr_Handle handle, Int32 cmd, Ptr arg)
Provides a hook to perform implementation dependent operation.
UInt32 | FrameQBufMgr_getBaseHeaderSize (UInt8 numFrameBufs)
Function to calcaulate the base frame header size when number of frames in a frame is given.
Ptr | FrameQBufMgr_getKnlHandle (FrameQBufMgr_Handle handle)
Function to get the kernel space handle of the instance.

Define Documentation

#define FrameQBufMgr_S_ALREADYDESTROYED 2

Indicates module has been already destroyed.

#define FrameQBufMgr_S_ALREADYSETUP 1

Indicates module is already setup.

#define FrameQBufMgr_S_SUCCESS 0

Operation successful.

#define FrameQBufMgr_E_FAIL -1

General Failure.

#define FrameQBufMgr_E_INVALIDARG -2

Invalid arguments are passed to FrameQBufMgr API.

#define FrameQBufMgr_E_NOTFOUND -3

Instance not found.

#define FrameQBufMgr_E_INST_EXISTS -4

FrameQBufMgr instance already exists.

#define FrameQBufMgr_E_ALLOC_BUF -5

Failed to allocate buffer.

#define FrameQBufMgr_E_ALLOC_MEMORY -6

Failed to allocate memory.

#define FrameQBufMgr_E_CREATE_NAMESERVER -7

Name server create failed for the module.

#define FrameQBufMgr_E_FAIL_CLIENTN0TIFYMGR_CREATE -8

ClientNotifyMgr create failed.

#define FrameQBufMgr_E_CLIENTN0TIFYMGR_OPEN -9

ClientNotifyMgr open failed.

#define FrameQBufMgr_E_CREATE_GATEMP -10

Creation of GateMP failed.

#define FrameQBufMgr_E_OPEN_GATEMP -11

GateMP open failed.

#define FrameQBufMgr_E_MAX_CLIENTS -12

Maximum instances limit reached.

#define FrameQBufMgr_E_ACCESSDENIED -13

Operation can not be permitted or not implemented.

#define FrameQBufMgr_E_NOTIMPLEMENTED -14

API is not implemented.

#define FrameQBufMgr_E_INVALIDSTATE -15

Module is not initialized.

#define FrameQBufMgr_E_OSFAILURE -16

Failure in OS call.

#define FrameQBufMgr_E_MAXINSTANCES -17

Max instances limit reached. Can not create instance.

#define FrameQBufMgr_E_INVALID_INTERFACE -18

Unsupported interface type.

#define FrameQBufMgr_E_OPEN_NAMESERVER -19

Failed to open NameServer.

#define FrameQBufMgr_E_INSUFFICIENT_HDRBUFS -20

Insufficient header buffers.

#define FrameQBufMgr_E_ALLOC_FRAME -21

Failed to allocate frame.

#define FrameQBufMgr_E_ALLOC_ALLFRAMES -22

Not able to allocate the requested frames.Able to allocate only few frames.

#define FrameQBufMgr_E_INVALID_MEMMGRTYPE -23

Invalid MemMgr type specified.

#define FrameQBufMgr_E_INVALID_HDRINTERFACETYPE -24

Invalid Header buffer interface type specified.see enum FrameQBufMgr_FrameHeaderInterface for the supported types.

#define FrameQBufMgr_E_INVALID_BUFINTERFACETYPE -25

Invalid frame buffer interface type specified.see enum FrameQBufMgr_FrameBufferInterface for the supported types.

#define FrameQBufMgr_E_NAMESERVERADD -33

NameServer_add failed.

#define FrameQBufMgr_FrameBufInfo Frame_FrameBufInfo
#define FrameQBufMgr_FrameHeader Frame_FrameHeader

Defines the frame header structure.

#define FrameQBufMgr_MAXNAMELEN (32u)

Maximum length of the name string in bytes.

#define FrameQBufMgr_MAXINSTANCES (64u)

Maximum number of instances managed by FrameQBufMgr module.

#define FrameQBufMgr_MAX_POOLS (64u)

Maximum number of free frame pools to be maintained in a instance.

#define FrameQBufMgr_MAX_FRAMEBUFS (8)

Maximum number of frame buffers in a frame managed by in FrameQBufMgr instance.

#define FrameQBufMgr_POOL_MAXFRAMES (32)

Maximum number of static free Frames managed by FrameQBufMgr instance Free Frame pool.

#define FrameQBufMgr_POOL_MAXHDRS (64)

Maximum number of additional static free headers managed by FrameQBufMgr instance for each Free Frame pool.

#define FrameQBufMgr_POOL_DYNAMIC_MAXFRAMES (1)

Maximum number of dynbuffers managed by each buffer pool in FrameQBufMgr instance.

#define FrameQBufMgr_POOL_DYNAMIC_MAXHDRS (1)

Maximum number of additional dynamic free headers managed by FrameQBufMgr instance for each Free Frame pool.

#define FrameQBufMgr_NOTIFY_RESERVED_EVENTNO (0u)

Notify Event Number to be used by FrameQBufMgr module.

#define FrameQBufMgr_MAX_FRAMESINVAPI (FrameQ_MAX_FRAMESINVAPI)

Macro used in FrameQ for sorting of passed parameters in V API. In FrameQBufMgr_allocv case this denotes the number of frames that can be allocated in one call.

Typedef Documentation

typedef struct FrameQBufMgr_Object* FrameQBufMgr_Handle

Handle for the FrameQBufMgr instance.

typedef Frame_FrameHeader* FrameQBufMgr_Frame

Defines the type for a frame pointer.

typedef enum FrameQBufMgr_CpuAccessFlags_Tag FrameQBufMgr_CpuAccessFlags

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

typedef enum FrameQBufMgr_BufType_Tag FrameQBufMgr_BufType

Denotes the type of buffer.

typedef enum FrameQBufMgr_AddrType_Tag FrameQBufMgr_AddrType

Enumerations to indicate address types used for translation.

typedef enum FrameQBufMgr_Interface_Tag FrameQBufMgr_Interface

Enumeration of FrameQBufMgr interface types.Denotes different implementation types.

typedef enum FrameQBufMgr_FrameHeaderInterface_Tag FrameQBufMgr_FrameHeaderInterface

Enumeration of FrameQBufMgr interface types.Denotes different implementation types.

typedef enum FrameQBufMgr_FrameBufferInterface_Tag FrameQBufMgr_FrameBufferInterface

Enumeration of FrameQBufMgr interface types.Denotes different implementation types.

typedef struct FrameQBufMgr_Config_Tag FrameQBufMgr_Config

Structure defining module config parameters for the FrameQBufMgr module.

typedef struct FrameQBufMgr_CreateParams_Tag FrameQBufMgr_CreateParams

Common parameters required to create FrameQBufMgr instance of any implementation.

This struct must be the first field of the implementation-specific params structure.

typedef struct FrameQBufMgr_CommonOpenParams_Tag FrameQBufMgr_CommonOpenParams

Common parameters required to open a FrameQBufMgr instance of any implementation.

typedef struct FrameQBufMgr_Params FrameQBufMgr_Params

Common parameters required to create FrameQBufMgr instance of any implementation.

This struct must be the first element of the implementation-specific create params structure.

typedef struct FrameQBufMgr_FrameBufParams_Tag FrameQBufMgr_FrameBufParams

Frame buffer param structure.

typedef void(* FrameQBufMgr_NotifyFunc)(FrameQBufMgr_Handle, Ptr arg, UInt32)

Prototype of the FrameQBufMgr call back function.

typedef struct FrameQBufMgr_NotifyParams_Tag FrameQBufMgr_NotifyParams

Structure defining notification parameter structure.

Enumeration Type Documentation

enum FrameQBufMgr_CpuAccessFlags_Tag

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

Enumerator:
FrameQBufMgr_FRAMEBUF0_CPUACCESS

If specified first frame buffer is accessed through CPU (direct memory access).

FrameQBufMgr_FRAMEBUF1_CPUACCESS

If specified second frame buffer is accessed through CPU (direct memory access).

FrameQBufMgr_FRAMEBUF2_CPUACCESS

If specified third frame buffer is accessed through CPU (direct memory access).

FrameQBufMgr_FRAMEBUF3_CPUACCESS

If specified fourth frame buffer is accessed through CPU (direct memory access).

FrameQBufMgr_FRAMEBUF4_CPUACCESS

If specified fifth frame buffer is accessed through CPU (direct memory access).

FrameQBufMgr_FRAMEBUF5_CPUACCESS

If specified sixth frame buffer is accessed through CPU (direct memory access).

FrameQBufMgr_FRAMEBUF6_CPUACCESS

If specified seventh frame buffer is accessed through CPU (direct memory access).

FrameQBufMgr_FRAMEBUF7_CPUACCESS

If specified eighth frame buffer is accessed through CPU (direct memory access).

enum FrameQBufMgr_BufType_Tag

Denotes the type of buffer.

Enumerator:
FrameQBufMgr_BUF_FRAMEHEADER

Denotes buffer is of type used for frame headers.

FrameQBufMgr_BUF_FRAMEBUF

Denotes buffer is of type used for frame buffers

FrameQBufMgr_BUF_ENDVALUE

End delimiter indicating start of invalid values for this enum

enum FrameQBufMgr_AddrType_Tag

Enumerations to indicate address types used for translation.

Enumerator:
FrameQBufMgr_AddrType_Virtual

Virtual address on calling process on DSP where MMU is not configured it could be the physical address.

FrameQBufMgr_AddrType_Portable

This is the shared region address incase sharedmemory manager plugged in to frameQbufMgr. In case of tiler it could be the tiler specific portable address

FrameQBufMgr_AddrType_EndValue

End delimiter indicating start of invalid values for this enum

enum FrameQBufMgr_Interface_Tag

Enumeration of FrameQBufMgr interface types.Denotes different implementation types.

Enumerator:
FrameQBufMgr_INTERFACE_SHAREDMEM

Denotes FrameQBufMgr implementation (FrameQBufMgr_ShMem Implementation) on shared memory.

FrameQBufMgr_INTERFACE_NONE
enum FrameQBufMgr_FrameHeaderInterface_Tag

Enumeration of FrameQBufMgr interface types.Denotes different implementation types.

Enumerator:
FrameQBufMgr_HDRINTERFACE_SHAREDMEM

Denotes FrameQBufMgr headers are from shared memory.Address translations will be done using shared region.

FrameQBufMgr_HDRINTERFACE_NONE
enum FrameQBufMgr_FrameBufferInterface_Tag

Enumeration of FrameQBufMgr interface types.Denotes different implementation types.

Enumerator:
FrameQBufMgr_BUFINTERFACE_SHAREDMEM

Denotes FrameQBufMgr implementation (FrameQBufMgr_ShMem Implementation) on shared memory.

FrameQBufMgr_BUFINTERFACE_TILERMEM

valid only on RTOS side for TI81XX platforms. Not valid on HLOS side.

FrameQBufMgr_BUFINTERFACE_NONE

Function Documentation

Int32 FrameQBufMgr_setup ( FrameQBufMgr_Config * cfg )

Function to setup the FrameQBufMgr module.

This function sets up the FrameQBufMgr module. This function must be called before any other instance-level APIs can be invoked. Module-level configuration needs to be provided to this function. If the user wishes to change some specific config parameters, then FrameQBufMgr_getConfig can be called to get the configuration filled with the default values. After this, only the required configuration values can be changed. If the user does not wish to make any change in the default parameters, the application can simply call setup with NULL parameters. The default parameters would get automatically used.

Parameters:
cfg Optional FrameQBufMgr module configuration. If provided as NULL, default configuration is used.
See also:
None.
Int32 FrameQBufMgr_destroy ( Void )

Function to destroy(finalize) the FrameQBufMgr module.

FrameQBufMgr_Handle FrameQBufMgr_create ( Ptr params )

Function to create FrameQBufMgr instance.

This function create a new instance of FrameQBufMgr. It creates frameQBufMgr based on the params specific to implementation.

Parameters:
params pointer to implementation specific params.
Return values:
Handle | Instance handle.
NULL | Create failed.
See also:
FrameQBufMgr_Shmem_params, FrameQBufMgr_delete(), FrameQBufMgr_open() and FrameQBufMgr_close.
Int32 FrameQBufMgr_delete ( FrameQBufMgr_Handle * pHandle )

Function to delete FrameQBufMgr instance.

This function delets FrameQBufMgr instance that is created.

Parameters:
pHandle Pointer to the created frameQ instance handle.
Return values:
FrameQBufMgr_S_SUCCESS | Delete successful.
FrameQBufMgr_E_FAIL | Delete failed.
FrameQBufMgr_E_INVALIDARG | Pointer to Handle passed is null.
FrameQBufMgr_E_INVALIDARG | Handle passed is null.
See also:
FrameQBufMgr_create(), FrameQBufMgr_open() and FrameQBufMgr_close.
Int32 FrameQBufMgr_open | ( | FrameQBufMgr_Handle * | handlePtr,
 |  | Ptr | openParams
 | ) |  |

Function to open the created FrameQBufMgr instance.

This function opens the FrameQBufMgr instance depending upon the open params passed to it.The instance must be created before opening it. Application is expected to pass the implementations specific open params for the openParams field.FrameQ_open internally calls this API to use the FrameQBufMgr instance to allocate frames ftom it.

Parameters:
handlePtr | Return parameter.Instance opened in given mode.
openParams | Pointer to implementation specific open params.
Return values:
FrameQBufMgr_S_SUCCESS | open successful.
FrameQBufMgr_E_INVALIDARG | Invalid parameter specified.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
FrameQBufMgr_E_MEMORY | Memory_alloc failed.
FrameQBufMgr_E_ALLOC_MEMORY | Memory_alloc failed.
FrameQBufMgr_E_FRAMEQBUFMGROPEN | FrameQBufMge instance open failed.
FrameQBufMgr_E_OPEN_GATEMP | GateMP open failed.
FrameQBufMgr_E_CLIENTN0TIFYMGR_OPEN | ClientNotifyMgr open failed.
FrameQBufMgr_E_NOTFOUND | Instance not found in FrameQBufMgr Nameserver or instance is not crated at the shared address obtained internally.
FrameQBufMgr_E_FAIL | Failed due to Both name is null and shared addr is null.
FrameQBufMgr_E_INVALID_HDRINTERFACETYPE | Failed to create the Syslink memory manager for header buffers.
FrameQBufMgr_E_INVALID_BUFINTERFACETYPE | Failed to create the Syslink memory manager for frame buffers.
See also:
FrameQBufMgr_ShMem_openParams, FrameQBufMgr_create(), FrameQBufMgr_delete() and FrameQBufMgr_close.
Int32 FrameQBufMgr_openByAddr | ( | FrameQBufMgr_Handle * | handlePtr,
 |  | Ptr | openParams
 | ) |  |

Function to open the created FrameQBufMgr instance using the address provided in open params.

This function opens the FrameQBufMgr instance depending upon the open params passed to it.The instance must be created before opening it. Application is expected to pass the implementations specific open params for the openParams field.

Parameters:
handlePtr | Return parameter.Instance opened in given mode.
openParams | Pointer to implementation specific open params.
Return values:
FrameQBufMgr_S_SUCCESS | open successful.
FrameQBufMgr_E_INVALIDARG | Invalid parameter specified.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
FrameQBufMgr_E_MEMORY | Memory_alloc failed.
FrameQBufMgr_E_ALLOC_MEMORY | Memory_alloc failed.
FrameQBufMgr_E_FRAMEQBUFMGROPEN | FrameQBufMge instance open failed.
FrameQBufMgr_E_OPEN_GATEMP | GateMP open failed.
FrameQBufMgr_E_CLIENTN0TIFYMGR_OPEN | ClientNotifyMgr open failed.
FrameQBufMgr_E_NOTFOUND | Instance not found in FrameQBufMgr Nameserver or instance is not crated at the shared address obtained internally.
FrameQBufMgr_E_FAIL | Failed due to shared addr is null.
FrameQBufMgr_E_INVALID_HDRINTERFACETYPE | Failed to create the Syslink memory manager for header buffers.
FrameQBufMgr_E_INVALID_BUFINTERFACETYPE | Failed to create the Syslink memory manager for frame buffers.
See also:
FrameQBufMgr_ShMem_openParams, FrameQBufMgr_create(), FrameQBufMgr_delete() and FrameQBufMgr_close.
Int32 FrameQBufMgr_close ( FrameQBufMgr_Handle * pHandle )

Function to close the opened FrameQBufMgr instance.

This function closes FrameQBufMgr instance that is opened.

Parameters:
pHandle Pointer to the opened FrameQBufMgr instance handle.
Return values:
FrameQBufMgr_S_SUCCESS | Close successful.
FrameQBufMgr_E_INVALIDARG | Pointer to Handle passed is null.
FrameQBufMgr_E_INVALIDARG | Handle passed is null.
FrameQBufMgr_E_ACCESSDENIED | Invalid handle passed.
See also:
FrameQBufMgr_create, FrameQBufMgr_open and FrameQBufMgr_delete.
Int32 FrameQBufMgr_alloc | ( | FrameQBufMgr_Handle | handle,
 |  | FrameQBufMgr_Frame * | frame
 | ) |  |

Function to allocate frame from free frame pool zero.

This function allocates a frame when called by FrameQBufMgr. from free Frame Pool zero.

Parameters:
handle | FrameQBufMgr handle.
frame | Location to receive the allocated frame.
Return values:
FrameQBufMgr_S_SUCCESS | Successfully allocated frame.
FrameQBufMgr_E_FAIL | Invalid buffer interface type.
FrameQBufMgr_E_ALLOC_FRAME | Free frames are not available to allocate.
FrameQBufMgr_E_INVALIDARG | framePtr paased is null.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_ACCESSDENIED | Provided handle can not allocate frames. Only writer can allocate frames.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
See also:
FrameQ_alloc, FrameQ_free, FrameQBufMgr_free.
Int32 FrameQBufMgr_allocv | ( | FrameQBufMgr_Handle | handle,
 |  | FrameQBufMgr_Frame | framePtr[],
 |  | UInt32 | freeQId[],
 |  | UInt8 * | numFrames
 | ) |  |

Function to allocate multiple frames from the FrameQbufMgr instance..

This function allocates frames from multiple free pools.This API allocates all the frames requested if available other wise returns failure.

Parameters:
handle | FrameQBufMgr handle.
framePtr | Array to receive pointers to allocated frames..
freeQId | Array of free frame pool nos of the FrameQBufMgr from from which this API needs to allocate free frames .
numFrames | Number of frames that needs to be allocated.
Return values:
FrameQBufMgr_S_SUCCESS | Successfully allocated frames.
FrameQBufMgr_E_ALLOC_FRAME | Failed due to non availabilty of free frames in free frame pool.
FrameQBufMgr_E_INVALIDARG | framePtr passed is null.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDARG | freeQId passed is null.
FrameQBufMgr_E_INVALIDARG | numFrames passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
See also:
FrameQ_allocv, FrameQ_freev, FrameQBufMgr_freev.
Int32 FrameQBufMgr_free | ( | FrameQBufMgr_Handle | handle,
 |  | FrameQBufMgr_Frame | frame
 | ) |  |

Function to free frame.

This function frees a frame.

Parameters:
handle | FrameQBufMgr instance handle.
frame | Frame to be freed.
Return values:
FrameQBufMgr_S_SUCCESS | Successfully freed frame.
FrameQBufMgr_E_FAIL | Free failed.
FrameQBufMgr_E_INVALIDARG | frame passed is null.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
See also:
FrameQ_free, FrameQBufMgr_alloc
Int32 FrameQBufMgr_freev | ( | FrameQBufMgr_Handle | handle,
 |  | FrameQBufMgr_Frame | framePtr[],
 |  | UInt32 | numFrames
 | ) |  |

Function to free multiple frames to the FrameQBufMgr.

This function frees multiple frames to the FrameQBufMgr instance.

Parameters:
handle | FrameQBufMgr instance handle.
framePtr | Array of frames to be freed.
numFrames | Number of frames to free. The size of the framePtr should be at least numFrames.
Return values:
FrameQBufMgr_S_SUCCESS | Successfully freed frames.
FrameQBufMgr_E_FAIL | Freev failed.
FrameQBufMgr_E_INVALIDARG | framePtr passed is null.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
See also:
FrameQ_freev, FrameQBufMgr_allocv
Ptr FrameQBufMgr_add | ( | FrameQBufMgr_Handle | handle,
 |  | UInt8 | freeQId
 | ) |  |

Function to add frame.

This function is to add free frames dynamically to the given pool id (freeQId). NOTE: API is not implemented.

Int32 FrameQBufMgr_remove | ( | FrameQBufMgr_Handle | handle,
 |  | UInt8 | freeQId,
 |  | FrameQBufMgr_Frame | framePtr
 | ) |  |

Function to remove frame.

This function is to remove the frames that is added dynamically. NOTE: API is not implemented.

Int32 FrameQBufMgr_dup | ( | FrameQBufMgr_Handle | handle,
 |  | FrameQBufMgr_Frame | framePtr,
 |  | FrameQBufMgr_Frame | dupedFramePtr[],
 |  | UInt32 | numDupedFrames
 | ) |  |

Function to duplicate the frame.

This function duplicates the given frame and returns the duplicated frame. It internally allocates one Frame header buffer and copy the header info to the allocated header buffer and returns it. it also increments the reference count of the original frame by 1 as both original frame and duped frmae are pointing to the same frame buffers.

Parameters:
handle | FrameQBufMgr instance handle.
framePtr | Original frame that needs to be duplicated.
dupedFramePtr | Location to receive the duped frames.
numDupedFrames | Number of duplicated frames required.
Return values:
FrameQBufMgr_S_SUCCESS | Successfully duped frame.
FrameQBufMgr_E_FAIL | dup failed.
FrameQBufMgr_E_INVALIDARG | framePtr passed is null.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDARG | dupedFramePtr passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
See also:
FrameQ_dup, FrameQBufMgr_alloc, FrameQBufMgr_allocv
Int32 FrameQBufMgr_dupv | ( | FrameQBufMgr_Handle | handle,
 |  | FrameQBufMgr_Frame | framePtr[],
 |  | FrameQBufMgr_Frame ** | dupedFramePtr,
 |  | UInt32 | numDupedFrames,
 |  | UInt32 | numFrames
 | ) |  |

Function to duplicate the multiple frames.

API to duplicate the given frames i.e it increments the corresponding frames's reference count.It internally allocates headers for the duped frames.API fails if it is not able to dup all the frames.

Parameters:
handle | Instance handle.
framePtr | Array of frames to duplicated.
dupedFramePtr | Location to receive duplicated frames.
numDupedFrames | Number of duplicated frames required for each given frame.
numFrames | Number of original frames that needs to be duplicated.
Return values:
FrameQBufMgr_S_SUCCESS | Successfully duped frame.
FrameQBufMgr_E_FAIL | dup failed.
FrameQBufMgr_E_INVALIDARG | framePtr passed is null.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDARG | dupedFramePtr passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
See also:
FrameQ_dup, FrameQBufMgr_alloc, FrameQBufMgr_allocv, FrameQBufMgr_dup
Int32 FrameQBufMgr_registerNotifier | ( | FrameQBufMgr_Handle | handle,
 |  | FrameQBufMgr_NotifyParams * | notifyParams
 | ) |  |

Function to register call back function for notification.

Function to Register notification with the instance. It internally registers notification with the individual free frame pools.If alloc on free frame pool 0 failed,Notification will be generated if free buffers in that pool becomes more than watermark.

Parameters:
handle | Instance handle.
notifyParams | notify params.
Return values:
FrameQBufMgr_S_SUCCESS | Operation successful.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDARG | notifyParams passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
FrameQBufMgr_E_FAIL | Failed to register notification.
See also:
FrameQBufMgr_unregisterNotifier
Int32 FrameQBufMgr_unregisterNotifier ( FrameQBufMgr_Handle handle )

Function to unregister call back function.

Function to Register notification with the instance. It internally unregisters notification with the individual free frame pools.

Parameters:
handle Instance handle.
Return values:
FrameQBufMgr_S_SUCCESS | Successfully duped frame.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDARG | notifyParams passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
FrameQBufMgr_E_FAIL | Failed to register notification.
See also:
FrameQBufMgr_registerNotifier
Int32 FrameQBufMgr_writeBack | ( | FrameQBufMgr_Handle | handle,
 |  | FrameQBufMgr_Frame | framePtr
 | ) |  |

Function to write back the frame.

Function to write back the contents of buffer .

Parameters:
handle | Instance handle.
framePtr | frame to be written back to external memory.
Return values:
FrameQBufMgr_S_SUCCESS | Operation successful.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDARG | framePtr passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
See also:
FrameQBufMgr_invlidate
Int32 FrameQBufMgr_writeBackBuf | ( | FrameQBufMgr_Handle | handle,
 |  | Ptr | buf,
 |  | UInt32 | flags
 | ) |  |

Write back the contents of buffer.

Function to write back the contents of buffer . Flags denotes whether it is header buffer or frame buffer..

Parameters:
handle | Instance handle.
buf | Buffer to be written back.
flags | Flags denotes whether buf is a header buffer or frame buffer.
Return values:
FrameQBufMgr_S_SUCCESS | Operation successful.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDARG | notifyParams passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
See also:
FrameQBufMgr_invlidate
Int32 FrameQBufMgr_invalidate | ( | FrameQBufMgr_Handle | handle,
 |  | FrameQBufMgr_Frame | framePtr
 | ) |  |

Function to invalidate frame.

Function to invalidate the contents of frame .

Parameters:
handle | Instance handle.
framePtr | frame to be invalidated from external memory.
Return values:
FrameQBufMgr_S_SUCCESS | Operation successful.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDARG | framePtr passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
See also:
FrameQBufMgr_writeback
Int32 FrameQBufMgr_invalidateFrameBuf | ( | FrameQBufMgr_Handle | handle,
 |  | Ptr | frameBuf,
 |  | UInt32 | size,
 |  | UInt8 | bufIndexInFrame
 | ) |  |

Function to invalidate frame buffer.

Function to invalidate the contents of frame buffer .

Parameters:
handle | Instance handle.
frameBuf | framebuffer pointer.
size | Size to be invalidated.
bufIndexInFrame | index of the frame buffer in the frame to which the buffer bellongs to.
Return values:
FrameQBufMgr_S_SUCCESS | Operation successful.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDARG | frameBuf passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
See also:
FrameQBufMgr_writeback
Int32 FrameQBufMgr_writeBackFrameBuf | ( | FrameQBufMgr_Handle | handle,
 |  | Ptr | frameBuf,
 |  | UInt32 | size,
 |  | UInt8 | bufIndexInFrame
 | ) |  |

Function to writeback frame buffer.

Function to writeback the contents of frame buffer .

Parameters:
handle | Instance handle.
frameBuf | framebuffer pointer.
size | Size to be writtenback.
bufIndexInFrame | index of the frame buffer in the frame to which the given buffer bellongs to.
Return values:
FrameQBufMgr_S_SUCCESS | Operation successful.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDARG | frameBuf passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
See also:
FrameQBufMgr_writeback
Int32 FrameQBufMgr_invalidateHeaderBuf | ( | FrameQBufMgr_Handle | handle,
 |  | Ptr | headerBuf
 | ) |  |

Invalidate the contents of frame header.

API treates the passed buffer as frame Header.

Parameters:
handle | Handle to the instance.
headerBuf | frame header to be invalidated.
Return values:
FrameQBufMgr_S_SUCCESS | Operation successful.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDARG | headerBuf passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
Int32 FrameQBufMgr_writeBackHeaderBuf | ( | FrameQBufMgr_Handle | handle,
 |  | Ptr | headerBuf
 | ) |  |

Write back the contents of frame header.

API treates the passed buffer as frame Header.

Parameters:
handle | Handle to the instance.
headerBuf | frame header to be written back.
Return values:
FrameQBufMgr_S_SUCCESS | Operation successful.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDARG | headerBuf passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
Int32 FrameQBufMgr_translateAddr | ( | FrameQBufMgr_Handle | handle,
 |  | Ptr * | dstAddr,
 |  | FrameQBufMgr_AddrType | dstAddrType,
 |  | Ptr | srcAddr,
 |  | FrameQBufMgr_AddrType | srcAddrType,
 |  | FrameQBufMgr_BufType | bufType
 | ) |  |

API to translate the given pointer to other address type.

Parameters:
handle | Handle to the instance.
dstAddr | Location to receive the destination address (translated address).
dstAddrType | address type to which the source address needs to be translated to.
srcAddr | Source address.
srcAddrType | Address type of the source address.
bufType | buffer type. Denotes source address specified is frame header or frame buffer.
Return values:
FrameQBufMgr_S_SUCCESS | Operation successful.
FrameQBufMgr_E_FAIL | Invalid buffer type specified in bufType.
FrameQBufMgr_E_FAIL | Translate failed in SysLinkMemMgr. bufType.
FrameQBufMgr_E_INVALIDARG | handle passed is null.
FrameQBufMgr_E_INVALIDARG | dstAddr passed is null.
FrameQBufMgr_E_INVALIDARG | srcAddr passed is null.
FrameQBufMgr_E_INVALIDSTATE | Module is not initialized.
Int32 FrameQBufMgr_getConfig ( FrameQBufMgr_Config * cfg )

Function to initialize the config parameter structure with default values.

Parameters:
cfg Parameter structure to return the config parameters.
See also:
None.
UInt32 FrameQBufMgr_getId ( FrameQBufMgr_Handle handle )

API to get the ID of the instance.

Parameters:
handle Handle to the instance.
Return values:
id Id of the instance.
Ptr FrameQBufMgr_getHandle ( UInt32 Id )

API to get the handle of the instance.

Parameters:
Id id of the instance.
Return values:
pointer | handle of the instance.
NULL | getHandle failed.
Bool FrameQBufMgr_isCacheEnabledForHeaderBuf ( FrameQBufMgr_Handle handle )

Function to determine whether cache calls(writeback/invalidate) are enabled for frame headers.

Parameters:
handle Instance handle.
Return values:
TRUE | if cache writeback and invalidate calls are enabled
FALSE | if cache writeback and invalidate calls are disabled.
Bool FrameQBufMgr_isCacheEnabledForFrameBuf | ( | FrameQBufMgr_Handle | handle,
 |  | UInt8 | framebufIndex
 | ) |  |

Function to determine whether cache calls(writeback/invalidate) are enabled for frame headers.

Parameters:
handle | Instance handle.
framebufIndex | frame buffer index in frame.
Return values:
TRUE | if cache writeback and invalidate calls are enabled
FALSE | if cache writeback and invalidate calls are disabled.
Int32 FrameQBufMgr_getNumFreeFrames | ( | FrameQBufMgr_Handle | handle,
 |  | UInt32 * | numFreeFrames
 | ) |  |

Function to get the number of free frames availabel in pool 0.

Parameters:
handle | Instance handle.
numFreeFrames | Out parameter.Denotes number of free frames available in queue 0.
Return values:
FrameQBufMgr_S_SUCCESS Operation successful.
Int32 FrameQBufMgr_control | ( | FrameQBufMgr_Handle | handle,
 |  | Int32 | cmd,
 |  | Ptr | arg
 | ) |  |

Provides a hook to perform implementation dependent operation.

Parameters:
handle | Instance handle.
cmd | Command to perform.
arg | void * argument.
Return values:
FrameQBufMgr_S_SUCCESS | Operation successful.
FrameQBufMgr_E_FAIL | API failed.
UInt32 FrameQBufMgr_getBaseHeaderSize ( UInt8 numFrameBufs )

Function to calcaulate the base frame header size when number of frames in a frame is given.

Parameters:
numFrameBufs Number of Frame buffers.
Return values:
positive value size of the base header size.
Ptr FrameQBufMgr_getKnlHandle ( FrameQBufMgr_Handle handle )

Function to get the kernel space handle of the instance.

This API is valid only on HLOS side.

Parameters:
handle Handle of the instance.
Return values:
pointer Kernel space handle.


SysLink Application Programming Interface (API): FrameQBufMgr.h Source File

FrameQBufMgr.h

Go to the documentation of this file.
00001
00010 /*
00011  *  ============================================================================
00012  *
00013  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00014  *
00015  *  Redistribution and use in source and binary forms, with or without
00016  *  modification, are permitted provided that the following conditions
00017  *  are met:
00018  *
00019  *  *  Redistributions of source code must retain the above copyright
00020  *     notice, this list of conditions and the following disclaimer.
00021  *
00022  *  *  Redistributions in binary form must reproduce the above copyright
00023  *     notice, this list of conditions and the following disclaimer in the
00024  *     documentation and/or other materials provided with the distribution.
00025  *
00026  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00027  *     its contributors may be used to endorse or promote products derived
00028  *     from this software without specific prior written permission.
00029  *
00030  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00031  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00032  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00033  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00034  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00035  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00036  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00037  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00038  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00039  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00040  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00041  *  Contact information for paper mail:
00042  *  Texas Instruments
00043  *  Post Office Box 655303
00044  *  Dallas, Texas 75265
00045  *  Contact information:
00046  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00047  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00048  *  ============================================================================
00049  *
00050  */
00051
00052
00053
00054 #ifndef FRAMEQBUFMGR_H
00055 #define FRAMEQBUFMGR_H
00056
00057
00058 /* Module headers */
00059 #include <ti/syslink/FrameQDefs.h>
00060 #include <ti/syslink/SysLink.h>
00061 #include <ti/ipc/Notify.h>
00062
00063 #if defined (__cplusplus)
00064 extern "C" {
00065 #endif
00066
00070 #define FrameQBufMgr_S_ALREADYDESTROYED              2
00071
00075 #define FrameQBufMgr_S_ALREADYSETUP                   1
00076
00080 #define  FrameQBufMgr_S_SUCCESS                       0
00081
00085 #define FrameQBufMgr_E_FAIL                          -1
00086
00090 #define FrameQBufMgr_E_INVALIDARG                    -2
00091
00095 #define FrameQBufMgr_E_NOTFOUND                      -3
00096
00100 #define FrameQBufMgr_E_INST_EXISTS                   -4
00101
00105 #define FrameQBufMgr_E_ALLOC_BUF                     -5
00106
00110 #define FrameQBufMgr_E_ALLOC_MEMORY                  -6
00111
00115 #define FrameQBufMgr_E_CREATE_NAMESERVER             -7
00116
00120 #define FrameQBufMgr_E_FAIL_CLIENTN0TIFYMGR_CREATE   -8
00121
00125 #define FrameQBufMgr_E_CLIENTN0TIFYMGR_OPEN         -9
00126
00130 #define FrameQBufMgr_E_CREATE_GATEMP                 -10
00131
00135 #define FrameQBufMgr_E_OPEN_GATEMP                   -11
00136
00140 #define FrameQBufMgr_E_MAX_CLIENTS                   -12
00141
00145 #define FrameQBufMgr_E_ACCESSDENIED                  -13
00146
00150 #define FrameQBufMgr_E_NOTIMPLEMENTED                -14
00151
00155 #define FrameQBufMgr_E_INVALIDSTATE                  -15
00156
00160 #define FrameQBufMgr_E_OSFAILURE                     -16
00161
00165 #define FrameQBufMgr_E_MAXINSTANCES                  -17
00166
00170 #define FrameQBufMgr_E_INVALID_INTERFACE             -18
00171
00175 #define FrameQBufMgr_E_OPEN_NAMESERVER               -19
00176
00180 #define FrameQBufMgr_E_INSUFFICIENT_HDRBUFS          -20
00181
00185 #define FrameQBufMgr_E_ALLOC_FRAME                   -21
00186
00191 #define FrameQBufMgr_E_ALLOC_ALLFRAMES               -22
00192
00196 #define FrameQBufMgr_E_INVALID_MEMMGRTYPE            -23
00197
00202 #define FrameQBufMgr_E_INVALID_HDRINTERFACETYPE      -24
00203
00208 #define FrameQBufMgr_E_INVALID_BUFINTERFACETYPE      -25
00209
00213 #define FrameQBufMgr_E_NAMESERVERADD                 -33
00214
00218 typedef struct FrameQBufMgr_Object* FrameQBufMgr_Handle;
00219
00220
00221 /* =============================================================================
00222  * macros & defines
00223  * =============================================================================
00224  */
00225 #define FrameQBufMgr_FrameBufInfo       Frame_FrameBufInfo
00226
00230 #define FrameQBufMgr_FrameHeader        Frame_FrameHeader
00231
00235 typedef Frame_FrameHeader *             FrameQBufMgr_Frame;
00236
00240 #define FrameQBufMgr_MAXNAMELEN                 (32u)
00241
00245 #define FrameQBufMgr_MAXINSTANCES               (64u)
00246
00250 #define FrameQBufMgr_MAX_POOLS                  (64u)
00251
00256 #define FrameQBufMgr_MAX_FRAMEBUFS              (8)
00257
00262 #define FrameQBufMgr_POOL_MAXFRAMES             (32)
00263
00268 #define FrameQBufMgr_POOL_MAXHDRS               (64)
00269
00274 #define FrameQBufMgr_POOL_DYNAMIC_MAXFRAMES     (1)
00275
00280 #define FrameQBufMgr_POOL_DYNAMIC_MAXHDRS       (1)
00281
00285 #define FrameQBufMgr_NOTIFY_RESERVED_EVENTNO   (0u)
00286
00287
00293 #define FrameQBufMgr_MAX_FRAMESINVAPI           (FrameQ_MAX_FRAMESINVAPI)
00294
00295 /* =============================================================================
00296  * Structures & Enums
00297  * =============================================================================
00298  */
00299
00304 typedef enum FrameQBufMgr_CpuAccessFlags_Tag {
00305         FrameQBufMgr_FRAMEBUF0_CPUACCESS    =  0x10000,
00309         FrameQBufMgr_FRAMEBUF1_CPUACCESS    =  0x20000,
00313         FrameQBufMgr_FRAMEBUF2_CPUACCESS    =  0x40000,
00317         FrameQBufMgr_FRAMEBUF3_CPUACCESS    =  0x80000,
00321         FrameQBufMgr_FRAMEBUF4_CPUACCESS    = 0x100000,
00325         FrameQBufMgr_FRAMEBUF5_CPUACCESS    = 0x200000,
00329         FrameQBufMgr_FRAMEBUF6_CPUACCESS    = 0x400000,
00333         FrameQBufMgr_FRAMEBUF7_CPUACCESS    = 0x800000
00337 } FrameQBufMgr_CpuAccessFlags;
00338
00342 typedef enum FrameQBufMgr_BufType_Tag {
00343     FrameQBufMgr_BUF_FRAMEHEADER = 0u,
00345     FrameQBufMgr_BUF_FRAMEBUF    = 1u,
00347     FrameQBufMgr_BUF_ENDVALUE    = 2u
00349 }FrameQBufMgr_BufType;
00350
00354 typedef enum FrameQBufMgr_AddrType_Tag{
00355     FrameQBufMgr_AddrType_Virtual  = 0u,
00359     FrameQBufMgr_AddrType_Portable = 1u,
00364     FrameQBufMgr_AddrType_EndValue = 2u
00366 }FrameQBufMgr_AddrType;
00367
00372 typedef enum FrameQBufMgr_Interface_Tag {
00373     FrameQBufMgr_INTERFACE_SHAREDMEM = 0x0,
00377     FrameQBufMgr_INTERFACE_NONE      = 0x1
00378 } FrameQBufMgr_Interface;
00379
00384 typedef enum FrameQBufMgr_FrameHeaderInterface_Tag {
00385     FrameQBufMgr_HDRINTERFACE_SHAREDMEM = 0x0,
00389     FrameQBufMgr_HDRINTERFACE_NONE      = 0x1
00390 } FrameQBufMgr_FrameHeaderInterface;
00391
00396 typedef enum FrameQBufMgr_FrameBufferInterface_Tag {
00397     FrameQBufMgr_BUFINTERFACE_SHAREDMEM = 0x0,
00401     FrameQBufMgr_BUFINTERFACE_TILERMEM = 0x1,
00404     FrameQBufMgr_BUFINTERFACE_NONE      = 0x2
00405 } FrameQBufMgr_FrameBufferInterface;
00406
00411 typedef struct FrameQBufMgr_Config_Tag {
00412     UInt32 eventNo;
00414     Bool   maxInstances;
00416     UInt32  usedefaultgate;
00417     /*  If set  to true FrameQBufMgr  instances will use dafault gate set in
00418      *  FrameQ.
00419      *  If default gate is not set in FrameQBufMgr, it uses GateMP's default
00420          *  gate. Set it to zero if   FrameQ needs to  create  gate for a
00421      *  instance (remoteProtect and localProtect  flags should be valid in
00422      *  params in this case).
00423      */
00424 } FrameQBufMgr_Config;
00425
00433 typedef struct FrameQBufMgr_CreateParams_Tag {
00434     UInt32 size;
00435     FrameQBufMgr_Interface ctrlInterfaceType;
00436     String name;
00437     UInt32 openFlag;
00445 } FrameQBufMgr_CreateParams;
00446
00451 typedef struct FrameQBufMgr_CommonOpenParams_Tag {
00452     String      name;
00455     UInt32      cpuAccessFlags;
00458     Ptr         sharedAddr;
00460 } FrameQBufMgr_CommonOpenParams;
00461
00469 typedef struct FrameQBufMgr_Params {
00470     FrameQBufMgr_CreateParams   commonCreateParams;
00471     Ptr impParams;
00474     UInt32 impParamsSize;
00477 } FrameQBufMgr_Params;
00478
00482 typedef struct FrameQBufMgr_FrameBufParams_Tag {
00483     UInt32 size;
00485     UInt32 pixelFormat;
00487     UInt32 height;
00489     UInt32 width;
00491     UInt32 align;
00493 }FrameQBufMgr_FrameBufParams;
00494
00498 typedef void (*FrameQBufMgr_NotifyFunc) (FrameQBufMgr_Handle, Ptr arg, UInt32);
00499
00503 typedef struct FrameQBufMgr_NotifyParams_Tag {
00504     SysLink_NotifyType      notifyType;
00506     UInt32                  watermark;
00510     FrameQBufMgr_NotifyFunc cbFxnPtr;
00512     Ptr                     cbContext;
00514     Ptr                     cbClientHandle;
00517 } FrameQBufMgr_NotifyParams;
00518
00519 /* =============================================================================
00520  * APIs
00521  * =============================================================================
00522  */
00523
00543 Int32 FrameQBufMgr_setup(FrameQBufMgr_Config *cfg);
00544
00545
00549 Int32 FrameQBufMgr_destroy(Void);
00550
00551
00566 FrameQBufMgr_Handle FrameQBufMgr_create(Ptr params);
00567
00568
00584 Int32 FrameQBufMgr_delete(FrameQBufMgr_Handle *pHandle);
00585
00586
00626 Int32 FrameQBufMgr_open(FrameQBufMgr_Handle *handlePtr, Ptr openParams);
00627
00628
00666 Int32
00667 FrameQBufMgr_openByAddr (FrameQBufMgr_Handle     * handlePtr,
00668                          Ptr                       openParams);
00669
00685 Int32
00686 FrameQBufMgr_close (FrameQBufMgr_Handle *pHandle);
00687
00709 Int32
00710 FrameQBufMgr_alloc (FrameQBufMgr_Handle     handle,
00711                     FrameQBufMgr_Frame     *frame);
00712
00739 Int32
00740 FrameQBufMgr_allocv (FrameQBufMgr_Handle    handle,
00741                      FrameQBufMgr_Frame     framePtr[],
00742                      UInt32                  freeQId[],
00743                      UInt8                * numFrames);
00744
00761 Int32
00762 FrameQBufMgr_free (FrameQBufMgr_Handle      handle,
00763                    FrameQBufMgr_Frame       frame);
00764
00784 Int32
00785 FrameQBufMgr_freev (FrameQBufMgr_Handle     handle,
00786                     FrameQBufMgr_Frame      framePtr[],
00787                     UInt32                  numFrames);
00788
00789
00798 Ptr
00799 FrameQBufMgr_add (FrameQBufMgr_Handle       handle,
00800                   UInt8                     freeQId);
00801
00809 Int32
00810 FrameQBufMgr_remove (FrameQBufMgr_Handle    handle,
00811                      UInt8                  freeQId,
00812                      FrameQBufMgr_Frame     framePtr);
00813
00838 Int32
00839 FrameQBufMgr_dup (FrameQBufMgr_Handle       handle,
00840                   FrameQBufMgr_Frame        framePtr,
00841                   FrameQBufMgr_Frame        dupedFramePtr[],
00842                   UInt32                    numDupedFrames);
00843
00870 Int32
00871 FrameQBufMgr_dupv (FrameQBufMgr_Handle   handle,
00872                    FrameQBufMgr_Frame    framePtr[],
00873                    FrameQBufMgr_Frame  **dupedFramePtr,
00874                    UInt32                numDupedFrames,
00875                    UInt32                numFrames);
00876
00897 Int32
00898 FrameQBufMgr_registerNotifier (FrameQBufMgr_Handle        handle,
00899                                FrameQBufMgr_NotifyParams *notifyParams);
00900
00919 Int32
00920 FrameQBufMgr_unregisterNotifier (FrameQBufMgr_Handle handle);
00921
00937 Int32
00938 FrameQBufMgr_writeBack(FrameQBufMgr_Handle handle, FrameQBufMgr_Frame framePtr);
00939
00958 Int32
00959 FrameQBufMgr_writeBackBuf(FrameQBufMgr_Handle handle,
00960                           Ptr                 buf,
00961                           UInt32              flags);
00962
00978 Int32
00979 FrameQBufMgr_invalidate(FrameQBufMgr_Handle handle,
00980                         FrameQBufMgr_Frame framePtr);
00981
01000 Int32
01001 FrameQBufMgr_invalidateFrameBuf(FrameQBufMgr_Handle  handle,
01002                                 Ptr                  frameBuf,
01003                                 UInt32               size,
01004                                 UInt8                bufIndexInFrame);
01005
01024 Int32
01025 FrameQBufMgr_writeBackFrameBuf(FrameQBufMgr_Handle  handle,
01026                                Ptr                  frameBuf,
01027                                UInt32               size,
01028                                UInt8                bufIndexInFrame);
01042 Int32
01043 FrameQBufMgr_invalidateHeaderBuf(FrameQBufMgr_Handle  handle,
01044                                  Ptr                  headerBuf);
01045
01059 Int32
01060 FrameQBufMgr_writeBackHeaderBuf(FrameQBufMgr_Handle  handle,
01061                                 Ptr                  headerBuf);
01062
01087 Int32
01088 FrameQBufMgr_translateAddr (FrameQBufMgr_Handle            handle,
01089                             Ptr *                          dstAddr,
01090                             FrameQBufMgr_AddrType          dstAddrType,
01091                             Ptr                            srcAddr,
01092                             FrameQBufMgr_AddrType          srcAddrType,
01093                             FrameQBufMgr_BufType           bufType);
01094
01104 Int32 FrameQBufMgr_getConfig(FrameQBufMgr_Config *cfg);
01105
01114 UInt32
01115 FrameQBufMgr_getId (FrameQBufMgr_Handle handle);
01116
01126 Ptr
01127 FrameQBufMgr_getHandle (UInt32 Id);
01128
01138 Bool
01139 FrameQBufMgr_isCacheEnabledForHeaderBuf(FrameQBufMgr_Handle handle);
01140
01151 Bool
01152 FrameQBufMgr_isCacheEnabledForFrameBuf(FrameQBufMgr_Handle handle,
01153                                        UInt8 framebufIndex);
01154
01164 Int32
01165 FrameQBufMgr_getNumFreeFrames (FrameQBufMgr_Handle handle, UInt32* numFreeFrames);
01166
01177 Int32
01178 FrameQBufMgr_control (FrameQBufMgr_Handle  handle,
01179                       Int32                cmd,
01180                       Ptr                  arg);
01181
01190 UInt32 FrameQBufMgr_getBaseHeaderSize(UInt8 numFrameBufs);
01191
01200 /* API that returns the kernel space handle of the instance */
01201 Ptr FrameQBufMgr_getKnlHandle(FrameQBufMgr_Handle handle);
01202
01203
01204 #if defined (__cplusplus)
01205 }
01206 #endif /* defined (__cplusplus) */
01207
01208
01209 #endif /*FRAMEQBUFMGR_H*/


SysLink Application Programming Interface (API): FrameQBufMgr_ShMem.h File Reference

Data Structures | Defines | Typedefs | Functions

FrameQBufMgr_ShMem.h File Reference

Detailed Description

Header file for FrameQBufMgr ShMem. (Deprecated)

Deprecated:
The FrameQ APIs are deprecated as of SysLink 2.20. While supported in this release, they will be removed in a future release.
#include <ti/ipc/GateMP.h>
#include <ti/syslink/FrameQBufMgr.h>
Include dependency graph for FrameQBufMgr_ShMem.h:

Go to the source code of this file.

Data Structures

struct | FrameQBufMgr_ShMem_Params_tag
Structure defining parameters for the FrameQ module. More...
struct | FrameQBufMgr_ShMem_OpenParams_tag
Structure defining open parameters for the FrameQ instance on ShMem (shared memory interface). More...

Defines

#define | FrameQBufMgr_ShMem_BUFINTERFACE_SHAREDMEM FrameQBufMgr_BUFINTERFACE_SHAREDMEM
#define | FrameQBufMgr_ShMem_BUFINTERFACE_TILERMEM FrameQBufMgr_BUFINTERFACE_TILERMEM
#define | FrameQBufMgr_ShMem_HDRINTERFACE_SHAREDMEM FrameQBufMgr_HDRINTERFACE_SHAREDMEM
#define | FrameQBufMgr_ShMem_FrameBufParams FrameQBufMgr_FrameBufParams

Typedefs

typedef FrameQBufMgr_Config | FrameQBufMgr_ShMem_Config
typedef struct
FrameQBufMgr_ShMem_Params_tag 		FrameQBufMgr_ShMem_Params
Structure defining parameters for the FrameQ module.
typedef struct
FrameQBufMgr_ShMem_OpenParams_tag 		FrameQBufMgr_ShMem_OpenParams
Structure defining open parameters for the FrameQ instance on ShMem (shared memory interface).

Functions

Int32 | FrameQBufMgr_ShMem_setup (FrameQBufMgr_ShMem_Config *cfg)
Int32 | FrameQBufMgr_ShMem_destroy (Void)
void | FrameQBufMgr_ShMem_Params_init (FrameQBufMgr_ShMem_Params *params)
Function to initiallze the params with the default params.
UInt32 | FrameQBufMgr_ShMem_sharedMemReq (const FrameQBufMgr_ShMem_Params *params, UInt32 *hdrBufChunkSize, UInt32 *frmBufChunkSize)
Function to find out the shared memory requirements.
Int32 | FrameQBufMgr_ShMem_getConfig (FrameQBufMgr_ShMem_Config *cfg)

Define Documentation

#define FrameQBufMgr_ShMem_BUFINTERFACE_SHAREDMEM FrameQBufMgr_BUFINTERFACE_SHAREDMEM
#define FrameQBufMgr_ShMem_BUFINTERFACE_TILERMEM FrameQBufMgr_BUFINTERFACE_TILERMEM
#define FrameQBufMgr_ShMem_HDRINTERFACE_SHAREDMEM FrameQBufMgr_HDRINTERFACE_SHAREDMEM
#define FrameQBufMgr_ShMem_FrameBufParams FrameQBufMgr_FrameBufParams

Typedef Documentation

typedef FrameQBufMgr_Config FrameQBufMgr_ShMem_Config
typedef struct FrameQBufMgr_ShMem_Params_tag FrameQBufMgr_ShMem_Params

Structure defining parameters for the FrameQ module.

typedef struct FrameQBufMgr_ShMem_OpenParams_tag FrameQBufMgr_ShMem_OpenParams

Structure defining open parameters for the FrameQ instance on ShMem (shared memory interface).

Function Documentation

Int32 FrameQBufMgr_ShMem_setup ( FrameQBufMgr_ShMem_Config * cfg )
Int32 FrameQBufMgr_ShMem_destroy ( Void )
void FrameQBufMgr_ShMem_Params_init ( FrameQBufMgr_ShMem_Params * params )

Function to initiallze the params with the default params.

Parameters:
params pointer to FrameQBufMgr_ShMem_Params.
See also:
FrameQBufMgr_create
UInt32 FrameQBufMgr_ShMem_sharedMemReq | ( | const FrameQBufMgr_ShMem_Params * | params,
 |  | UInt32 * | hdrBufChunkSize,
 |  | UInt32 * | frmBufChunkSize
 | ) |  |

Function to find out the shared memory requirements.

This function returns size of the shared memory required for the instance based on the params provided.

Parameters:
params | pointer to FrameQ_ShMem_Params.
hdrBufChunkSize | out paramter.Itives the size of the memory required for frame headers.
frmBufChunkSize | out paramter Itives the size of the memory required for frame buffers.
Return values:
size shared memory reqired for the instance
See also:
FrameQBufMgr_ShMem_Params_init(), FrameQBufMgr_create()
Int32 FrameQBufMgr_ShMem_getConfig ( FrameQBufMgr_ShMem_Config * cfg )


SysLink Application Programming Interface (API): FrameQBufMgr_ShMem.h Source File

FrameQBufMgr_ShMem.h

Go to the documentation of this file.
00001
00010 /*
00011  *  ============================================================================
00012  *
00013  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00014  *
00015  *  Redistribution and use in source and binary forms, with or without
00016  *  modification, are permitted provided that the following conditions
00017  *  are met:
00018  *
00019  *  *  Redistributions of source code must retain the above copyright
00020  *     notice, this list of conditions and the following disclaimer.
00021  *
00022  *  *  Redistributions in binary form must reproduce the above copyright
00023  *     notice, this list of conditions and the following disclaimer in the
00024  *     documentation and/or other materials provided with the distribution.
00025  *
00026  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00027  *     its contributors may be used to endorse or promote products derived
00028  *     from this software without specific prior written permission.
00029  *
00030  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00031  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00032  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00033  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00034  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00035  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00036  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00037  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00038  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00039  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00040  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00041  *  Contact information for paper mail:
00042  *  Texas Instruments
00043  *  Post Office Box 655303
00044  *  Dallas, Texas 75265
00045  *  Contact information:
00046  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00047  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00048  *  ============================================================================
00049  *
00050  */
00051
00052
00053 #ifndef FRAMEQBUFMGR_SHMEM_H
00054 #define FRAMEQBUFMGR_SHMEM_H
00055
00056 #include <ti/ipc/GateMP.h>
00057 #include <ti/syslink/FrameQBufMgr.h>
00058
00059
00060 #if defined (__cplusplus)
00061 extern "C" {
00062 #endif
00063
00064 /* =============================================================================
00065  * Macros & defines
00066  * =============================================================================
00067  */
00068 #define FrameQBufMgr_ShMem_BUFINTERFACE_SHAREDMEM  FrameQBufMgr_BUFINTERFACE_SHAREDMEM
00069 #define FrameQBufMgr_ShMem_BUFINTERFACE_TILERMEM   FrameQBufMgr_BUFINTERFACE_TILERMEM
00070 #define FrameQBufMgr_ShMem_HDRINTERFACE_SHAREDMEM  FrameQBufMgr_HDRINTERFACE_SHAREDMEM
00071 #define FrameQBufMgr_ShMem_FrameBufParams          FrameQBufMgr_FrameBufParams
00072
00073
00074 /* TODO - are different _internal_ vs _external types necessary? */
00075 typedef FrameQBufMgr_Config           FrameQBufMgr_ShMem_Config ;
00076 /* =============================================================================
00077  * Structures & Enums
00078  * =============================================================================
00079  */
00080
00084 typedef struct FrameQBufMgr_ShMem_Params_tag {
00085     FrameQBufMgr_CreateParams commonCreateParams;
00088     GateMP_Handle gate;
00102     GateMP_LocalProtect localProtect;
00105     GateMP_RemoteProtect remoteProtect;
00108     Ptr sharedAddr;
00119     UInt32 sharedAddrSize;
00129     UInt32 regionId;
00137     UInt32 headerInterfaceType;
00143     UInt32 bufInterfaceType;
00150     Ptr sharedAddrHdrBuf;
00162     UInt32 sharedAddrHdrBufSize;
00165     UInt32 hdrBuf_regionId;
00173     Ptr sharedAddrFrmBuf;
00176     UInt32 sharedAddrFrmBufSize;
00179     UInt32 frmBuf_regionId;
00187     UInt32 numFreeFramePools;
00190     UInt32 numFreeFramesInPool[FrameQBufMgr_MAX_POOLS];
00193     UInt32 numFreeHeaderBufsInPool[FrameQBufMgr_MAX_POOLS];
00196     UInt32 frameHeaderBufSize[FrameQBufMgr_MAX_POOLS];
00199     UInt32 numFrameBufsInFrame[FrameQBufMgr_MAX_POOLS];
00204     FrameQBufMgr_ShMem_FrameBufParams *frameBufParams[FrameQBufMgr_MAX_POOLS];
00207     UInt32 cpuAccessFlags;
00214     UInt32 numNotifyEntries;
00219 } FrameQBufMgr_ShMem_Params;
00220
00225 typedef struct FrameQBufMgr_ShMem_OpenParams_tag {
00226     FrameQBufMgr_CommonOpenParams commonOpenParams;
00228 } FrameQBufMgr_ShMem_OpenParams;
00229
00230 /* =============================================================================
00231  *  APIs
00232  * =============================================================================
00233  */
00234
00235 /* Initialize the FrameQBufMgr module, there would be some default values for
00236  * the parameters, but if  any change is required, change the cfg before calling
00237  * this API.
00238  */
00239 Int32
00240 FrameQBufMgr_ShMem_setup (FrameQBufMgr_ShMem_Config * cfg);
00241
00242
00243 /* Function to destroy(finalize) the FrameQBufMgr module.*/
00244 Int32
00245 FrameQBufMgr_ShMem_destroy (Void);
00246
00256 void
00257 FrameQBufMgr_ShMem_Params_init(FrameQBufMgr_ShMem_Params * params);
00258
00275 UInt32
00276 FrameQBufMgr_ShMem_sharedMemReq (const FrameQBufMgr_ShMem_Params * params,
00277                                  UInt32                    * hdrBufChunkSize,
00278                                  UInt32                    * frmBufChunkSize);
00279
00280 Int32 FrameQBufMgr_ShMem_getConfig(FrameQBufMgr_ShMem_Config *cfg);
00281
00282
00283
00284 #if defined (__cplusplus)
00285 }
00286 #endif /* defined (__cplusplus) */
00287
00288
00289 #endif /* HEAPBUF_H_0x4CD5 */
00290


SysLink Application Programming Interface (API): FrameQBufMgrDefs.h File Reference

Defines

FrameQBufMgrDefs.h File Reference

Detailed Description

Defines configurable elements for FrameQBufMgr module.

TODO: write description

Go to the source code of this file.

Defines

#define FRAMEQBUFMGR_CACHE_LINESIZE (128u)
Cache line size.

Define Documentation

#define FRAMEQBUFMGR_CACHE_LINESIZE (128u)

Cache line size.


SysLink Application Programming Interface (API): FrameQBufMgrDefs.h Source File

FrameQBufMgrDefs.h

Go to the documentation of this file.
00001
00010 /*
00011  *  ============================================================================
00012  *
00013  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00014  *
00015  *  Redistribution and use in source and binary forms, with or without
00016  *  modification, are permitted provided that the following conditions
00017  *  are met:
00018  *
00019  *  *  Redistributions of source code must retain the above copyright
00020  *     notice, this list of conditions and the following disclaimer.
00021  *
00022  *  *  Redistributions in binary form must reproduce the above copyright
00023  *     notice, this list of conditions and the following disclaimer in the
00024  *     documentation and/or other materials provided with the distribution.
00025  *
00026  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00027  *     its contributors may be used to endorse or promote products derived
00028  *     from this software without specific prior written permission.
00029  *
00030  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00031  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00032  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00033  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00034  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00035  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00036  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00037  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00038  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00039  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00040  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00041  *  Contact information for paper mail:
00042  *  Texas Instruments
00043  *  Post Office Box 655303
00044  *  Dallas, Texas 75265
00045  *  Contact information:
00046  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00047  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00048  *  ============================================================================
00049  *
00050  */
00051
00052
00053
00054 #ifndef FRAMEQBUFMGR_CONFIG_H
00055 #define FRAMEQBUFMGR_CONFIG_H
00056
00057
00058 #if defined (__cplusplus)
00059 extern "C" {
00060 #endif
00061
00062 /* =============================================================================
00063  * macros & defines
00064  * =============================================================================
00065  */
00066
00071 #define FRAMEQBUFMGR_CACHE_LINESIZE             (128u)
00072
00073
00074 #if defined (__cplusplus)
00075 }
00076 #endif /* defined (__cplusplus) */
00077
00078
00079 #endif /*FRAMEQBUFMGR_CONFIG_H*/


SysLink Application Programming Interface (API): FrameQDefs.h File Reference

Data Structures | Defines | Typedefs

FrameQDefs.h File Reference

Detailed Description

Defines configurable elements for FrameQ module. (Deprecated)

Deprecated:
The FrameQ APIs are deprecated as of SysLink 2.20. While supported in this release, they will be removed in a future release.

Go to the source code of this file.

Data Structures

struct | Frame_FrameBufInfo_tag
Structure to frame buffer informantion in frame header. More...
struct | Frame_FrameHeader_Tag
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. More...

Defines

#define | FrameQ_MAX_FRAMESINVAPI (64u)
Macro used in FrameQ for sorting of passed parameters in V API. In FrameQ_allocv case this denotes the number of frames that can be allocated in one call. In FrameQ_putv case this denotes the number of frames that can be put in one call. In FrameQ_getv case this denotes the number of frames that can be retrieved in one call.

Typedefs

typedef struct
Frame_FrameBufInfo_tag 		Frame_FrameBufInfo
Structure to frame buffer informantion in frame header.
typedef struct
Frame_FrameHeader_Tag 		Frame_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 Frame_FrameHeader * | Frame
Defines the type for a frame pointer.

Define Documentation

#define FrameQ_MAX_FRAMESINVAPI (64u)

Macro used in FrameQ for sorting of passed parameters in V API. In FrameQ_allocv case this denotes the number of frames that can be allocated in one call. In FrameQ_putv case this denotes the number of frames that can be put in one call. In FrameQ_getv case this denotes the number of frames that can be retrieved in one call.

Typedef Documentation

typedef struct Frame_FrameBufInfo_tag Frame_FrameBufInfo

Structure to frame buffer informantion in frame header.

typedef struct Frame_FrameHeader_Tag Frame_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 Frame_FrameHeader* Frame

Defines the type for a frame pointer.


SysLink Application Programming Interface (API): FrameQDefs.h Source File

FrameQDefs.h

Go to the documentation of this file.
00001
00010 /*
00011  *  ============================================================================
00012  *
00013  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00014  *
00015  *  Redistribution and use in source and binary forms, with or without
00016  *  modification, are permitted provided that the following conditions
00017  *  are met:
00018  *
00019  *  *  Redistributions of source code must retain the above copyright
00020  *     notice, this list of conditions and the following disclaimer.
00021  *
00022  *  *  Redistributions in binary form must reproduce the above copyright
00023  *     notice, this list of conditions and the following disclaimer in the
00024  *     documentation and/or other materials provided with the distribution.
00025  *
00026  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00027  *     its contributors may be used to endorse or promote products derived
00028  *     from this software without specific prior written permission.
00029  *
00030  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00031  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00032  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00033  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00034  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00035  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00036  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00037  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00038  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00039  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00040  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00041  *  Contact information for paper mail:
00042  *  Texas Instruments
00043  *  Post Office Box 655303
00044  *  Dallas, Texas 75265
00045  *  Contact information:
00046  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00047  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00048  *  ============================================================================
00049  *
00050  */
00051
00052
00053
00054 #ifndef FRAMEQDEFS_H_0x6e6f
00055 #define FRAMEQDEFS_H_0x6e6f
00056
00057
00058 #if defined (__cplusplus)
00059 extern "C" {
00060 #endif
00061
00062 /* =============================================================================
00063  * macros & defines
00064  * =============================================================================
00065  */
00066
00076 #define FrameQ_MAX_FRAMESINVAPI           (64u)
00077
00078 /* =============================================================================
00079  * Structures & Enums
00080  * =============================================================================
00081  */
00085 typedef struct Frame_FrameBufInfo_tag {
00086     UInt32 bufPtr;
00088     UInt32 bufSize;
00090     UInt32 startOffset;
00092     UInt32 validSize;
00094     UInt32 pixelFormat;
00095     UInt32 height;
00096     UInt32 width;
00097     UInt32 stride;
00098
00099 }Frame_FrameBufInfo;
00100
00106 typedef struct  Frame_FrameHeader_Tag {
00107     UInt32  reserved0;
00109     UInt32  reserved1;
00111     UInt16  baseHeaderSize;
00113     UInt16  headerSize;
00117     UInt32  frmAllocaterId;
00119     UInt32 frameBufType;
00120     /* Denotes the buffer type i.e Tiler buffer or shared region 1D buffer*/
00121     UInt8   freeFrmQueueNo;
00123     UInt8   numFrameBuffers;
00125     Frame_FrameBufInfo  frameBufInfo[1];
00127 } Frame_FrameHeader;
00128
00132 typedef Frame_FrameHeader * Frame;
00133
00134
00135 #if defined (__cplusplus)
00136 }
00137 #endif /* defined (__cplusplus) */
00138
00139
00140 #endif /*FRAMEQDEFS_H_0x6e6f*/


SysLink Application Programming Interface (API): Gate.h File Reference

Functions | Variables

Gate.h File Reference

Detailed Description

Critical section support.

Gates are used by clients to protect concurrent access to critical data structures. Critical data structures are those that must be updated by at most one thread at a time. All code that needs access to a critical data structure "enters" a gate (that's associated with the data structure) prior to accessing the data, modifies the data structure, then "leaves" the gate.

A gate is responsible for ensuring that at most one thread at a time can enter and execute "inside" the gate. There are several implementations of gates, with different system executation times and latency tradoffs. In addition, some gates must not be entered by certain thread types; e.g., a gate that is implemented via a "blocking" semaphore must not be called by an interrupt service routine (ISR).

#include <ti/syslink/utils/IGateProvider.h>
Include dependency graph for Gate.h:

Go to the source code of this file.

Functions

IArg | Gate_enterSystem (void)
Void | Gate_leaveSystem (IArg key)

Variables

IGateProvider_Handle Gate_systemHandle

Function Documentation

IArg Gate_enterSystem ( void )
Void Gate_leaveSystem ( IArg key )

Variable Documentation

IGateProvider_Handle Gate_systemHandle
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines


SysLink Application Programming Interface (API): Gate.h Source File

Gate.h

Go to the documentation of this file.
00001
00022 /*
00023  *  ============================================================================
00024  *
00025  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00026  *
00027  *  Redistribution and use in source and binary forms, with or without
00028  *  modification, are permitted provided that the following conditions
00029  *  are met:
00030  *
00031  *  *  Redistributions of source code must retain the above copyright
00032  *     notice, this list of conditions and the following disclaimer.
00033  *
00034  *  *  Redistributions in binary form must reproduce the above copyright
00035  *     notice, this list of conditions and the following disclaimer in the
00036  *     documentation and/or other materials provided with the distribution.
00037  *
00038  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00039  *     its contributors may be used to endorse or promote products derived
00040  *     from this software without specific prior written permission.
00041  *
00042  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00043  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00044  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00045  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00046  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00047  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00048  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00049  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00050  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00051  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00052  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00053  *  Contact information for paper mail:
00054  *  Texas Instruments
00055  *  Post Office Box 655303
00056  *  Dallas, Texas 75265
00057  *  Contact information:
00058  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00059  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00060  *  ============================================================================
00061  *
00062  */
00063
00064
00065
00066 #ifndef GATE_H_0xAF6F
00067 #define GATE_H_0xAF6F
00068
00069 #include <ti/syslink/utils/IGateProvider.h>
00070
00071 #if defined (__cplusplus)
00072 extern "C" {
00073 #endif
00074
00075 extern IGateProvider_Handle Gate_systemHandle;
00076
00077 /* =============================================================================
00078  *  APIs
00079  * =============================================================================
00080  */
00081 /* Function to enter a Gate */
00082 IArg  Gate_enterSystem (void);
00083
00084 /* Function to leave a Gate */
00085 Void Gate_leaveSystem (IArg key);
00086
00087 #if defined (__cplusplus)
00088 }
00089 #endif /* defined (__cplusplus) */
00090
00091 #endif /* GATE_H_0xAF6F */


SysLink Application Programming Interface (API): GateMonitor.h File Reference

Defines | Typedefs | Functions

GateMonitor.h File Reference

Detailed Description

Header file for Gate based on Monitor.

Go to the source code of this file.

Defines

#define | GateMonitor_E_INVALIDARG -1
Argument passed to a function is invalid.
#define | GateMonitor_E_MEMORY -2
Memory allocation failed.
#define | GateMonitor_E_BUSY -3
The name is already registered or not.
#define | GateMonitor_E_FAIL -4
Generic failure.
#define | GateMonitor_E_NOTFOUND -5
Name not found in the nameserver.
#define | GateMonitor_E_INVALIDSTATE -6
Module is not initialized.
#define | GateMonitor_E_INUSE -7
Indicates that the instance is in use.
#define | GateMonitor_E_HANDLE -8
An invalid handle was provided.
#define | GateMonitor_S_SUCCESS 0
Operation successful.

Typedefs

typedef struct GateMonitor_Object | GateMonitor_Object
Object for GateMonitor.
typedef GateMonitor_Object * | GateMonitor_Handle
Handle for GateMonitor.
typedef Void | GateMonitor_Params

Functions

GateMonitor_Handle | GateMonitor_create (const GateMonitor_Params *params)
Int | GateMonitor_delete (GateMonitor_Handle *handle)

Define Documentation

#define GateMonitor_E_INVALIDARG -1

Argument passed to a function is invalid.

#define GateMonitor_E_MEMORY -2

Memory allocation failed.

#define GateMonitor_E_BUSY -3

The name is already registered or not.

#define GateMonitor_E_FAIL -4

Generic failure.

#define GateMonitor_E_NOTFOUND -5

Name not found in the nameserver.

#define GateMonitor_E_INVALIDSTATE -6

Module is not initialized.

#define GateMonitor_E_INUSE -7

Indicates that the instance is in use.

#define GateMonitor_E_HANDLE -8

An invalid handle was provided.

#define GateMonitor_S_SUCCESS 0

Operation successful.

Typedef Documentation

typedef struct GateMonitor_Object GateMonitor_Object

Object for GateMonitor.

typedef GateMonitor_Object* GateMonitor_Handle

Handle for GateMonitor.

typedef Void GateMonitor_Params

No parameters for GateMonitor creation

Function Documentation

GateMonitor_Handle GateMonitor_create ( const GateMonitor_Params * params )
Int GateMonitor_delete ( GateMonitor_Handle * handle )


SysLink Application Programming Interface (API): GateMonitor.h Source File

GateMonitor.h

Go to the documentation of this file.
00001
00008 /*
00009  *  ============================================================================
00010  *
00011  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00012  *
00013  *  Redistribution and use in source and binary forms, with or without
00014  *  modification, are permitted provided that the following conditions
00015  *  are met:
00016  *
00017  *  *  Redistributions of source code must retain the above copyright
00018  *     notice, this list of conditions and the following disclaimer.
00019  *
00020  *  *  Redistributions in binary form must reproduce the above copyright
00021  *     notice, this list of conditions and the following disclaimer in the
00022  *     documentation and/or other materials provided with the distribution.
00023  *
00024  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00025  *     its contributors may be used to endorse or promote products derived
00026  *     from this software without specific prior written permission.
00027  *
00028  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00029  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00030  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00031  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00032  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00033  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00034  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00035  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00036  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00037  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00038  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  *  Contact information for paper mail:
00040  *  Texas Instruments
00041  *  Post Office Box 655303
00042  *  Dallas, Texas 75265
00043  *  Contact information:
00044  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00045  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00046  *  ============================================================================
00047  *
00048  */
00049
00050
00051 #ifndef GATEMONITOR_H_0x189E
00052 #define GATEMONITOR_H_0x189E
00053
00054
00055 #if defined (__cplusplus)
00056 extern "C" {
00057 #endif
00058
00059
00060 /* =============================================================================
00061  *  Status codes
00062  * =============================================================================
00063  */
00068 #define GateMonitor_E_INVALIDARG       -1
00069
00074 #define GateMonitor_E_MEMORY           -2
00075
00080 #define GateMonitor_E_BUSY             -3
00081
00086 #define GateMonitor_E_FAIL             -4
00087
00092 #define GateMonitor_E_NOTFOUND         -5
00093
00098 #define GateMonitor_E_INVALIDSTATE     -6
00099
00104 #define GateMonitor_E_INUSE            -7
00105
00110 #define GateMonitor_E_HANDLE           -8
00111
00116 #define GateMonitor_S_SUCCESS          0
00117
00118
00119 /* =============================================================================
00120  *  Macros and types
00121  * =============================================================================
00122  */
00124 typedef struct GateMonitor_Object   GateMonitor_Object;
00125
00127 typedef GateMonitor_Object * GateMonitor_Handle;
00128
00130 typedef Void GateMonitor_Params;
00131
00132
00133 /* =============================================================================
00134  *  APIs
00135  * =============================================================================
00136  */
00137 /* Function to create a GateMonitor */
00138 GateMonitor_Handle GateMonitor_create (const GateMonitor_Params * params);
00139
00140 /* Function to delete a GateMonitor */
00141 Int GateMonitor_delete (GateMonitor_Handle * handle);
00142
00143
00144 #if defined (__cplusplus)
00145 }
00146 #endif /* defined (__cplusplus) */
00147
00148
00149 #endif /* GATEMONITOR_H_0x188E */


SysLink Application Programming Interface (API): GateMP.h File Reference

Data Structures | Defines | Typedefs | Enumerations | Functions

GateMP.h File Reference

Detailed Description

Multiple processor gate that provides local and remote context protection.

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

A GateMP instance can be used to enforce both local and remote context context protection. That is, entering a GateMP can prevent preemption by another thread running on the same processor and simultaneously prevent a remote processor from entering the same gate. GateMP's are typically used to protect reads/writes to a shared resource, such as shared memory.

Creating a GateMP requires supplying the following configuration

  • Instance name (see GateMP_Params::name)
  • Region id (see GateMP_Params::regionId) In addition, the following parameters should be configured as necessary:
  • The level of local protection (interrupt, thread, tasklet, process or none) can be configured using the GateMP_Params::localProtect config parameter.
  • The type of remote system gate that can be used. Most devices will typically have a single type of system gate so this configuration should typically be left alone. See GateMP_Params::remoteProtect for more information.

Once created GateMP allows the gate to be opened on another processor using GateMP_open and the name that was used in GateMP_create.

A GateMP can be entered and left using GateMP_enter and GateMP_leave like any other gate that implements the IGateProvider interface.

GateMP has the following proxies - RemoteSystemProxy, RemoteCustom1Proxy and RemoteCustom2Proxy which are automatically plugged with device-specific delegates that implement multiple processor mutexes using a variety of hardware mechanisms.

GateMP creates a default system gate whose handle may be obtained using GateMP_getDefaultRemote. Most IPC modules typically use this gate by default if they require gates and no instance gate is configured by the user.

The GateMP header should be included in an application as follows:

  #include <ti/ipc/GateMP.h>
Version:
0.00.01

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

Go to the source code of this file.

Data Structures

struct | GateMP_Params
Structure defining parameters for the GateMP module. More...

Defines

#define | GateMP_S_BUSY 2
The resource is still in use.
#define | GateMP_S_ALREADYSETUP 1
The module has been already setup.
#define | GateMP_S_SUCCESS 0
Operation is successful.
#define | GateMP_E_FAIL -1
Generic failure.
#define | GateMP_E_INVALIDARG -2
Argument passed to function is invalid.
#define | GateMP_E_MEMORY -3
Operation resulted in memory failure.
#define | GateMP_E_ALREADYEXISTS -4
The specified entity already exists.
#define | GateMP_E_NOTFOUND -5
Unable to find the specified entity.
#define | GateMP_E_TIMEOUT -6
Operation timed out.
#define | GateMP_E_INVALIDSTATE -7
Module is not initialized.
#define | GateMP_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | GateMP_E_RESOURCE -9
Specified resource is not available.
#define | GateMP_E_RESTART -10
Operation was interrupted. Please restart the operation.

Typedefs

typedef enum GateMP_LocalProtect | GateMP_LocalProtect
A set of local context protection levels.
typedef enum GateMP_RemoteProtect | GateMP_RemoteProtect
Type of remote Gate.
typedef struct GateMP_Object * | GateMP_Handle
GateMP_Handle type.
typedef struct GateMP_Params | GateMP_Params
Structure defining parameters for the GateMP module.

Enumerations

enum GateMP_LocalProtect {
GateMP_LocalProtect_NONE = 0,
GateMP_LocalProtect_INTERRUPT = 1,
GateMP_LocalProtect_TASKLET = 2,
GateMP_LocalProtect_THREAD = 3,
GateMP_LocalProtect_PROCESS = 4
}

A set of local context protection levels.

More...
enum GateMP_RemoteProtect {
GateMP_RemoteProtect_NONE = 0,
GateMP_RemoteProtect_SYSTEM = 1,
GateMP_RemoteProtect_CUSTOM1 = 2,
GateMP_RemoteProtect_CUSTOM2 = 3
}

Type of remote Gate.

More...

Functions

Int | GateMP_close (GateMP_Handle *handlePtr)
Close an opened gate.
GateMP_Handle | GateMP_create (const GateMP_Params *params)
Create a GateMP instance.
Int | GateMP_delete (GateMP_Handle *handlePtr)
Delete a created GateMP instance.
GateMP_Handle | GateMP_getDefaultRemote (Void)
Get the default remote gate.
GateMP_LocalProtect | GateMP_getLocalProtect (GateMP_Handle handle)
Get the local protection level configured in a GateMP instance.
GateMP_RemoteProtect | GateMP_getRemoteProtect (GateMP_Handle handle)
Get the remote protection level configured in a GateMP instance.
Int | GateMP_open (String name, GateMP_Handle *handlePtr)
Open a created GateMP by name.
Void | GateMP_Params_init (GateMP_Params *params)
Initialize a GateMP parameters struct.
IArg | GateMP_enter (GateMP_Handle handle)
Enter the GateMP.
Void | GateMP_leave (GateMP_Handle handle, IArg key)
Leave the GateMP.

Define Documentation

#define GateMP_S_BUSY 2

The resource is still in use.

#define GateMP_S_ALREADYSETUP 1

The module has been already setup.

#define GateMP_S_SUCCESS 0

Operation is successful.

#define GateMP_E_FAIL -1

Generic failure.

#define GateMP_E_INVALIDARG -2

Argument passed to function is invalid.

#define GateMP_E_MEMORY -3

Operation resulted in memory failure.

#define GateMP_E_ALREADYEXISTS -4

The specified entity already exists.

#define GateMP_E_NOTFOUND -5

Unable to find the specified entity.

#define GateMP_E_TIMEOUT -6

Operation timed out.

#define GateMP_E_INVALIDSTATE -7

Module is not initialized.

#define GateMP_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define GateMP_E_RESOURCE -9

Specified resource is not available.

#define GateMP_E_RESTART -10

Operation was interrupted. Please restart the operation.

Typedef Documentation

typedef enum GateMP_LocalProtect GateMP_LocalProtect

A set of local context protection levels.

Each member corresponds to a specific local processor gates used for local protection.

In Linux user mode, the following are the mapping for the constants

  • INTERRUPT -> [N/A]
  • TASKLET -> [N/A]
  • THREAD -> GateMutex
  • PROCESS -> GateMutex

In Linux kernel mode, the following are the mapping for the constants

  • INTERRUPT -> [Interrupts disabled]
  • TASKLET -> GateMutex
  • THREAD -> GateMutex
  • PROCESS -> GateMutex

For SYS/BIOS users, the following are the mappings for the constants

  • INTERRUPT -> GateAll: disables interrupts, Swis and Tasks
  • TASKLET -> GateSwi: disables Swis and Tasks
  • THREAD -> GateMutexPri: based on Semaphores
  • PROCESS -> GateMutexPri: based on Semaphores
typedef enum GateMP_RemoteProtect GateMP_RemoteProtect

Type of remote Gate.

Each member corresponds to a specific type of remote gate. Each enum value corresponds to the following remote protection levels:

  • NONE -> No remote protection (the GateMP instance will exclusively offer local protection configured in GateMP_Params::localProtect
  • SYSTEM -> Use the SYSTEM remote protection level (default for remote protection
  • CUSTOM1 -> Use the CUSTOM1 remote protection level
  • CUSTOM2 -> Use the CUSTOM2 remote protection level
typedef struct GateMP_Object* GateMP_Handle

GateMP_Handle type.

typedef struct GateMP_Params GateMP_Params

Structure defining parameters for the GateMP module.

Enumeration Type Documentation

enum GateMP_LocalProtect

A set of local context protection levels.

Each member corresponds to a specific local processor gates used for local protection.

In Linux user mode, the following are the mapping for the constants

  • INTERRUPT -> [N/A]
  • TASKLET -> [N/A]
  • THREAD -> GateMutex
  • PROCESS -> GateMutex

In Linux kernel mode, the following are the mapping for the constants

  • INTERRUPT -> [Interrupts disabled]
  • TASKLET -> GateMutex
  • THREAD -> GateMutex
  • PROCESS -> GateMutex

For SYS/BIOS users, the following are the mappings for the constants

  • INTERRUPT -> GateAll: disables interrupts, Swis and Tasks
  • TASKLET -> GateSwi: disables Swis and Tasks
  • THREAD -> GateMutexPri: based on Semaphores
  • PROCESS -> GateMutexPri: based on Semaphores
Enumerator:
GateMP_LocalProtect_NONE

Use no local protection

GateMP_LocalProtect_INTERRUPT

Use the INTERRUPT local protection level

GateMP_LocalProtect_TASKLET

Use the TASKLET local protection level

GateMP_LocalProtect_THREAD

Use the THREAD local protection level

GateMP_LocalProtect_PROCESS

Use the PROCESS local protection level

enum GateMP_RemoteProtect

Type of remote Gate.

Each member corresponds to a specific type of remote gate. Each enum value corresponds to the following remote protection levels:

  • NONE -> No remote protection (the GateMP instance will exclusively offer local protection configured in GateMP_Params::localProtect
  • SYSTEM -> Use the SYSTEM remote protection level (default for remote protection
  • CUSTOM1 -> Use the CUSTOM1 remote protection level
  • CUSTOM2 -> Use the CUSTOM2 remote protection level
Enumerator:
GateMP_RemoteProtect_NONE

No remote protection (the GateMP instance will exclusively offer local protection configured in GateMP_Params::localProtect)

GateMP_RemoteProtect_SYSTEM

Use the SYSTEM remote protection level (default remote protection)

GateMP_RemoteProtect_CUSTOM1

Use the CUSTOM1 remote protection level

GateMP_RemoteProtect_CUSTOM2

Use the CUSTOM2 remote protection level

Function Documentation

Int GateMP_close ( GateMP_Handle * handlePtr )

Close an opened gate.

Parameters:
[in,out] handlePtr Pointer to handle to opened GateMP instance
Returns:
GateMP status
GateMP_Handle GateMP_create ( const GateMP_Params * params )

Create a GateMP instance.

The params structure should be initialized using GateMP_Params_init.

Parameters:
[in] params GateMP parameters
Returns:
GateMP Handle
Int GateMP_delete ( GateMP_Handle * handlePtr )

Delete a created GateMP instance.

Parameters:
[in,out] handlePtr Pointer to GateMP handle
Returns:
GateMP Status
GateMP_Handle GateMP_getDefaultRemote ( Void )

Get the default remote gate.

Returns:
GateMP handle
GateMP_LocalProtect GateMP_getLocalProtect ( GateMP_Handle handle )

Get the local protection level configured in a GateMP instance.

Returns:
GateMP_LocalProtect corresponding to local protection level
GateMP_RemoteProtect GateMP_getRemoteProtect ( GateMP_Handle handle )

Get the remote protection level configured in a GateMP instance.

Returns:
GateMP_RemoteProtect corresponding to remote protection level
Int GateMP_open | ( | String | name,
 |  | GateMP_Handle * | handlePtr
 | ) |  |

Open a created GateMP by name.

Parameters:
[in] | name | Name of the GateMP instance
[out] | handlePtr | Pointer to GateMP handle to be opened
Returns:
GateMP status:
  • GateMP_E_NOTFOUND: open failed (name not found on any processor)
  • GateMP_E_FAIL: open failed (general failure occurred)
  • GateMP_S_SUCCESS: open successful
Void GateMP_Params_init ( GateMP_Params * params )

Initialize a GateMP parameters struct.

Parameters:
[out] params Pointer to GateMP parameters
IArg GateMP_enter ( GateMP_Handle handle )

Enter the GateMP.

Parameters:
[in] handle GateMP handle
Returns:
key that must be used to leave the gate
Void GateMP_leave | ( | GateMP_Handle | handle,
 |  | IArg | key
 | ) |  |

Leave the GateMP.

Parameters:
[in] | handle | GateMP handle
[in] | key | key returned from GateMP_enter


SysLink Application Programming Interface (API): GateMP.h Source File

GateMP.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2012, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * */
00083 #ifndef ti_ipc_GateMP__include
00084 #define ti_ipc_GateMP__include
00085
00086 #if defined (__cplusplus)
00087 extern "C" {
00088 #endif
00089
00090 /* =============================================================================
00091  *  All success and failure codes for the module
00092  * =============================================================================
00093  */
00094
00099 #define GateMP_S_BUSY               2
00100
00105 #define GateMP_S_ALREADYSETUP       1
00106
00111 #define GateMP_S_SUCCESS            0
00112
00117 #define GateMP_E_FAIL              -1
00118
00123 #define GateMP_E_INVALIDARG        -2
00124
00129 #define GateMP_E_MEMORY            -3
00130
00135 #define GateMP_E_ALREADYEXISTS     -4
00136
00141 #define GateMP_E_NOTFOUND          -5
00142
00147 #define GateMP_E_TIMEOUT           -6
00148
00153 #define GateMP_E_INVALIDSTATE      -7
00154
00158 #define GateMP_E_OSFAILURE         -8
00159
00163 #define GateMP_E_RESOURCE          -9
00164
00168 #define GateMP_E_RESTART           -10
00169
00170 /* =============================================================================
00171  *  Structures & Enums
00172  * =============================================================================
00173  */
00174
00199 typedef enum GateMP_LocalProtect {
00200     GateMP_LocalProtect_NONE      = 0,
00203     GateMP_LocalProtect_INTERRUPT = 1,
00206     GateMP_LocalProtect_TASKLET   = 2,
00209     GateMP_LocalProtect_THREAD    = 3,
00212     GateMP_LocalProtect_PROCESS   = 4
00215 } GateMP_LocalProtect;
00216
00217
00231 typedef enum GateMP_RemoteProtect {
00232     GateMP_RemoteProtect_NONE     = 0,
00237     GateMP_RemoteProtect_SYSTEM   = 1,
00240     GateMP_RemoteProtect_CUSTOM1  = 2,
00243     GateMP_RemoteProtect_CUSTOM2  = 3
00246 } GateMP_RemoteProtect;
00247
00251 typedef struct GateMP_Object *GateMP_Handle;
00252
00256 typedef struct GateMP_Params {
00257     String name;
00268     UInt16 regionId;
00279     Ptr sharedAddr;
00293     GateMP_LocalProtect localProtect;
00299     GateMP_RemoteProtect remoteProtect;
00304 } GateMP_Params;
00305
00306 /* =============================================================================
00307  *  GateMP Module-wide Functions
00308  * =============================================================================
00309  */
00310
00318 Int GateMP_close(GateMP_Handle *handlePtr);
00319
00329 GateMP_Handle GateMP_create(const GateMP_Params *params);
00330
00338 Int GateMP_delete(GateMP_Handle *handlePtr);
00339
00345 GateMP_Handle GateMP_getDefaultRemote(Void);
00346
00352 GateMP_LocalProtect GateMP_getLocalProtect(GateMP_Handle handle);
00353
00359 GateMP_RemoteProtect GateMP_getRemoteProtect(GateMP_Handle handle);
00360
00373 Int GateMP_open(String name, GateMP_Handle *handlePtr);
00374
00376 Int GateMP_openByAddr(Ptr sharedAddr, GateMP_Handle *handlePtr);
00377
00386 Void GateMP_Params_init(GateMP_Params *params);
00387
00397 SizeT GateMP_sharedMemReq(const GateMP_Params *params);
00398
00401 /* =============================================================================
00402  *  GateMP Per-instance Functions
00403  * =============================================================================
00404  */
00405
00413 IArg GateMP_enter(GateMP_Handle handle);
00414
00421 Void GateMP_leave(GateMP_Handle handle, IArg key);
00422
00423 #if defined (__cplusplus)
00424 }
00425 #endif /* defined (__cplusplus) */
00426 #endif /* ti_ipc_GateMP__include */
00427
00428 /*
00429  */
00430
00431 /*
00432  *  @(#) ti.ipc; 1, 0, 0, 0,1; 5-22-2012 16:16:04; /db/vtree/library/trees/ipc/ipc-h32/src/ xlibrary
00433
00434  */
00435


SysLink Application Programming Interface (API): GateMutex.h File Reference

Defines | Typedefs | Functions

GateMutex.h File Reference

Detailed Description

Gate based on Mutex.

Go to the source code of this file.

Defines

#define | GateMutex_E_INVALIDARG -1
Argument passed to a function is invalid.
#define | GateMutex_E_MEMORY -2
Memory allocation failed.
#define | GateMutex_E_BUSY -3
The name is already registered or not.
#define | GateMutex_E_FAIL -4
Generic failure.
#define | GateMutex_E_NOTFOUND -5
Name not found in the nameserver.
#define | GateMutex_E_INVALIDSTATE -6
Module is not initialized.
#define | GateMutex_E_INUSE -7
Indicates that the instance is in use.
#define | GateMutex_S_SUCCESS 0
Operation successful.

Typedefs

typedef struct GateMutex_Object | GateMutex_Object
Object for Gate Mutex.
typedef GateMutex_Object * | GateMutex_Handle
Handle for Gate Mutex.
typedef Void | GateMutex_Params

Functions

GateMutex_Handle | GateMutex_create (const GateMutex_Params *params, Error_Block *eb)
Int | GateMutex_delete (GateMutex_Handle *gmHandle)

Define Documentation

#define GateMutex_E_INVALIDARG -1

Argument passed to a function is invalid.

#define GateMutex_E_MEMORY -2

Memory allocation failed.

#define GateMutex_E_BUSY -3

The name is already registered or not.

#define GateMutex_E_FAIL -4

Generic failure.

#define GateMutex_E_NOTFOUND -5

Name not found in the nameserver.

#define GateMutex_E_INVALIDSTATE -6

Module is not initialized.

#define GateMutex_E_INUSE -7

Indicates that the instance is in use.

#define GateMutex_S_SUCCESS 0

Operation successful.

Typedef Documentation

typedef struct GateMutex_Object GateMutex_Object

Object for Gate Mutex.

typedef GateMutex_Object* GateMutex_Handle

Handle for Gate Mutex.

typedef Void GateMutex_Params

No parameters for GateMutex creation

Function Documentation

GateMutex_Handle GateMutex_create | ( | const GateMutex_Params * | params,
 |  | Error_Block * | eb
 | ) |  |
Int GateMutex_delete ( GateMutex_Handle * gmHandle )


SysLink Application Programming Interface (API): GateMutex.h Source File

GateMutex.h

Go to the documentation of this file.
00001
00008 /*
00009  *  ============================================================================
00010  *
00011  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00012  *
00013  *  Redistribution and use in source and binary forms, with or without
00014  *  modification, are permitted provided that the following conditions
00015  *  are met:
00016  *
00017  *  *  Redistributions of source code must retain the above copyright
00018  *     notice, this list of conditions and the following disclaimer.
00019  *
00020  *  *  Redistributions in binary form must reproduce the above copyright
00021  *     notice, this list of conditions and the following disclaimer in the
00022  *     documentation and/or other materials provided with the distribution.
00023  *
00024  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00025  *     its contributors may be used to endorse or promote products derived
00026  *     from this software without specific prior written permission.
00027  *
00028  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00029  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00030  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00031  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00032  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00033  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00034  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00035  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00036  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00037  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00038  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  *  Contact information for paper mail:
00040  *  Texas Instruments
00041  *  Post Office Box 655303
00042  *  Dallas, Texas 75265
00043  *  Contact information:
00044  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00045  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00046  *  ============================================================================
00047  *
00048  */
00049
00050
00051
00052 #ifndef GATEMUTEX_H_0x72D0
00053 #define GATEMUTEX_H_0x72D0
00054
00055
00056 #if defined (__cplusplus)
00057 extern "C" {
00058 #endif
00059
00060
00061 /* =============================================================================
00062  *  Status codes
00063  * =============================================================================
00064  */
00069 #define GateMutex_E_INVALIDARG       -1
00070
00075 #define GateMutex_E_MEMORY           -2
00076
00081 #define GateMutex_E_BUSY             -3
00082
00087 #define GateMutex_E_FAIL             -4
00088
00093 #define GateMutex_E_NOTFOUND         -5
00094
00099 #define GateMutex_E_INVALIDSTATE     -6
00100
00105 #define GateMutex_E_INUSE            -7
00106
00111 #define GateMutex_S_SUCCESS          0
00112
00113
00114 /* =============================================================================
00115  *  Macros and types
00116  * =============================================================================
00117  */
00119 typedef struct GateMutex_Object GateMutex_Object;
00120
00122 typedef GateMutex_Object * GateMutex_Handle;
00123
00125 typedef Void GateMutex_Params;
00126
00127 /* =============================================================================
00128  *  APIs
00129  * =============================================================================
00130  */
00131 /* Function to create a GateMutex */
00132 GateMutex_Handle
00133 GateMutex_create (const GateMutex_Params * params, Error_Block *eb);
00134
00135 /* Function to delete a Gate Mutex */
00136 Int GateMutex_delete (GateMutex_Handle * gmHandle);
00137
00138
00139 #if defined (__cplusplus)
00140 }
00141 #endif /* defined (__cplusplus) */
00142
00143 #endif /* GATEMUTEX_H_0x72D0 */


SysLink Application Programming Interface (API): GateProcess.h File Reference

Data Structures | Defines | Typedefs | Functions

GateProcess.h File Reference

Detailed Description

Process level gate.

Go to the source code of this file.

Data Structures

struct | GateProcess_Params
Create parameter structure. More...
struct | GateProcess_ShMem
Shared memory structure used by instance. More...

Defines

#define | GateProcess_E_INVALIDARG (-1)
Argument passed to a function is invalid.
#define | GateProcess_E_MEMORY (-2)
Memory allocation failed.
#define | GateProcess_E_BUSY (-3)
The name is already registered or not.
#define | GateProcess_E_FAIL (-4)
Generic failure.
#define | GateProcess_E_NOTFOUND (-5)
Name not found in the nameserver.
#define | GateProcess_E_INVALIDSTATE (-6)
Module is not initialized.
#define | GateProcess_E_INUSE (-7)
Indicates that the instance is in use.
#define | GateProcess_S_SUCCESS (0)
Operation successful.

Typedefs

typedef struct GateProcess_Object | GateProcess_Object
Object for GateProcess.
typedef GateProcess_Object * | GateProcess_Handle
Handle for GateProcess.

Functions

IArg | GateProcess_enter (GateProcess_Handle handle)
Void | GateProcess_leave (GateProcess_Handle handle, IArg key)
Void | GateProcess_Params_init (GateProcess_Params *params)
GateProcess_Handle | GateProcess_create (Ptr sharedAddr, const GateProcess_Params *params)
Int | GateProcess_delete (GateProcess_Handle *pHandle)
GateProcess_Handle | GateProcess_open (Ptr sharedAddr)
Int | GateProcess_close (GateProcess_Handle *pHandle)
SizeT | GateProcess_shMemSize (Void)

Define Documentation

#define GateProcess_E_INVALIDARG (-1)

Argument passed to a function is invalid.

#define GateProcess_E_MEMORY (-2)

Memory allocation failed.

#define GateProcess_E_BUSY (-3)

The name is already registered or not.

#define GateProcess_E_FAIL (-4)

Generic failure.

#define GateProcess_E_NOTFOUND (-5)

Name not found in the nameserver.

#define GateProcess_E_INVALIDSTATE (-6)

Module is not initialized.

#define GateProcess_E_INUSE (-7)

Indicates that the instance is in use.

#define GateProcess_S_SUCCESS (0)

Operation successful.

Typedef Documentation

typedef struct GateProcess_Object GateProcess_Object

Object for GateProcess.

typedef GateProcess_Object* GateProcess_Handle

Handle for GateProcess.

Function Documentation

IArg GateProcess_enter ( GateProcess_Handle handle )
Void GateProcess_leave | ( | GateProcess_Handle | handle,
 |  | IArg | key
 | ) |  |
Void GateProcess_Params_init ( GateProcess_Params * params )
GateProcess_Handle GateProcess_create | ( | Ptr | sharedAddr,
 |  | const GateProcess_Params * | params
 | ) |  |
Int GateProcess_delete ( GateProcess_Handle * pHandle )
GateProcess_Handle GateProcess_open ( Ptr sharedAddr )
Int GateProcess_close ( GateProcess_Handle * pHandle )
SizeT GateProcess_shMemSize ( Void )


SysLink Application Programming Interface (API): GateProcess.h Source File

GateProcess.h

Go to the documentation of this file.
00001
00008 /*
00009  *  ============================================================================
00010  *
00011  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00012  *
00013  *  Redistribution and use in source and binary forms, with or without
00014  *  modification, are permitted provided that the following conditions
00015  *  are met:
00016  *
00017  *  *  Redistributions of source code must retain the above copyright
00018  *     notice, this list of conditions and the following disclaimer.
00019  *
00020  *  *  Redistributions in binary form must reproduce the above copyright
00021  *     notice, this list of conditions and the following disclaimer in the
00022  *     documentation and/or other materials provided with the distribution.
00023  *
00024  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00025  *     its contributors may be used to endorse or promote products derived
00026  *     from this software without specific prior written permission.
00027  *
00028  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00029  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00030  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00031  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00032  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00033  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00034  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00035  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00036  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00037  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00038  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  *  Contact information for paper mail:
00040  *  Texas Instruments
00041  *  Post Office Box 655303
00042  *  Dallas, Texas 75265
00043  *  Contact information:
00044  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00045  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00046  *  ============================================================================
00047  *
00048  */
00049
00050
00051
00052 #ifndef ti_syslink_utils_GateProcess
00053 #define ti_syslink_utils_GateProcess
00054
00055
00056 #if defined (__cplusplus)
00057 extern "C" {
00058 #endif
00059
00060
00061 /* =============================================================================
00062  *  Status codes
00063  * =============================================================================
00064  */
00065
00070 #define GateProcess_E_INVALIDARG        (-1)
00071
00076 #define GateProcess_E_MEMORY            (-2)
00077
00082 #define GateProcess_E_BUSY              (-3)
00083
00088 #define GateProcess_E_FAIL              (-4)
00089
00094 #define GateProcess_E_NOTFOUND          (-5)
00095
00100 #define GateProcess_E_INVALIDSTATE      (-6)
00101
00106 #define GateProcess_E_INUSE             (-7)
00107
00112 #define GateProcess_S_SUCCESS           (0)
00113
00114
00115 /* =============================================================================
00116  *  Macros and types
00117  * =============================================================================
00118  */
00120 typedef struct GateProcess_Object GateProcess_Object;
00121
00125 typedef GateProcess_Object * GateProcess_Handle;
00126
00130 typedef struct {
00131     UInt    reserved;
00132 } GateProcess_Params;
00133
00134
00138 typedef struct {
00139     Char _f1[16];
00140 } GateProcess_ShMem;
00141
00142
00143 /* =============================================================================
00144  *  APIs
00145  * =============================================================================
00146  */
00147
00148 /*
00149  *  ======== GateProcess_enter ========
00150  */
00151 IArg GateProcess_enter(GateProcess_Handle handle);
00152
00153 /*
00154  *  ======== GateProcess_leave ========
00155  */
00156 Void GateProcess_leave(GateProcess_Handle handle, IArg key);
00157
00158 /*
00159  *  ======== GateProcess_Params_init ========
00160  */
00161 Void GateProcess_Params_init(GateProcess_Params *params);
00162
00163 /*
00164  *  ======== GateProcess_create ========
00165  */
00166 GateProcess_Handle GateProcess_create(
00167         Ptr                             sharedAddr,
00168         const GateProcess_Params *      params);
00169
00170 /*
00171  *  ======== GateProcess_delete ========
00172  */
00173 Int GateProcess_delete(GateProcess_Handle *pHandle);
00174
00175 /*
00176  *  ======== GateProcess_open ========
00177  */
00178 GateProcess_Handle GateProcess_open(Ptr sharedAddr);
00179
00180 /*
00181  *  ======== GateProcess_close ========
00182  */
00183 Int GateProcess_close(GateProcess_Handle *pHandle);
00184
00185 /*
00186  *  ======== GateProcess_shMemSize ========
00187  */
00188 SizeT GateProcess_shMemSize(Void);
00189
00190
00191 #if defined (__cplusplus)
00192 }
00193 #endif
00194
00195 #endif /* ti_syslink_utils_GateProcess */


SysLink Application Programming Interface (API): GateSem.h File Reference

Defines | Typedefs | Functions

GateSem.h File Reference

Detailed Description

Header file for Gate based on Semaphore.

Go to the source code of this file.

Defines

#define | GateSem_E_INVALIDARG -1
Argument passed to a function is invalid.
#define | GateSem_E_MEMORY -2
Memory allocation failed.
#define | GateSem_E_BUSY -3
The name is already registered or not.
#define | GateSem_E_FAIL -4
Generic failure.
#define | GateSem_E_NOTFOUND -5
Name not found in the nameserver.
#define | GateSem_E_INVALIDSTATE -6
Module is not initialized.
#define | GateSem_E_INUSE -7
Indicates that the instance is in use.
#define | GateSem_E_HANDLE -8
An invalid handle was provided.
#define | GateSem_S_SUCCESS 0
Operation successful.

Typedefs

typedef struct GateSem_Object | GateSem_Object
Object for GateSem.
typedef GateSem_Object * | GateSem_Handle
Handle for GateSem.
typedef Void | GateSem_Params

Functions

GateSem_Handle | GateSem_create (const GateSem_Params *params)
Int | GateSem_delete (GateSem_Handle *handle)

Define Documentation

#define GateSem_E_INVALIDARG -1

Argument passed to a function is invalid.

#define GateSem_E_MEMORY -2

Memory allocation failed.

#define GateSem_E_BUSY -3

The name is already registered or not.

#define GateSem_E_FAIL -4

Generic failure.

#define GateSem_E_NOTFOUND -5

Name not found in the nameserver.

#define GateSem_E_INVALIDSTATE -6

Module is not initialized.

#define GateSem_E_INUSE -7

Indicates that the instance is in use.

#define GateSem_E_HANDLE -8

An invalid handle was provided.

#define GateSem_S_SUCCESS 0

Operation successful.

Typedef Documentation

typedef struct GateSem_Object GateSem_Object

Object for GateSem.

typedef GateSem_Object* GateSem_Handle

Handle for GateSem.

typedef Void GateSem_Params

No parameters for GateSem creation

Function Documentation

GateSem_Handle GateSem_create ( const GateSem_Params * params )
Int GateSem_delete ( GateSem_Handle * handle )


SysLink Application Programming Interface (API): GateSem.h Source File

GateSem.h

Go to the documentation of this file.
00001
00008 /*
00009  *  ============================================================================
00010  *
00011  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00012  *
00013  *  Redistribution and use in source and binary forms, with or without
00014  *  modification, are permitted provided that the following conditions
00015  *  are met:
00016  *
00017  *  *  Redistributions of source code must retain the above copyright
00018  *     notice, this list of conditions and the following disclaimer.
00019  *
00020  *  *  Redistributions in binary form must reproduce the above copyright
00021  *     notice, this list of conditions and the following disclaimer in the
00022  *     documentation and/or other materials provided with the distribution.
00023  *
00024  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00025  *     its contributors may be used to endorse or promote products derived
00026  *     from this software without specific prior written permission.
00027  *
00028  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00029  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00030  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00031  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00032  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00033  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00034  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00035  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00036  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00037  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00038  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  *  Contact information for paper mail:
00040  *  Texas Instruments
00041  *  Post Office Box 655303
00042  *  Dallas, Texas 75265
00043  *  Contact information:
00044  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00045  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00046  *  ============================================================================
00047  *
00048  */
00049
00050
00051 #ifndef GATESEM_H_0x189E
00052 #define GATESEM_H_0x189E
00053
00054
00055 #if defined (__cplusplus)
00056 extern "C" {
00057 #endif
00058
00059
00060 /* =============================================================================
00061  *  Status codes
00062  * =============================================================================
00063  */
00068 #define GateSem_E_INVALIDARG       -1
00069
00074 #define GateSem_E_MEMORY           -2
00075
00080 #define GateSem_E_BUSY             -3
00081
00086 #define GateSem_E_FAIL             -4
00087
00092 #define GateSem_E_NOTFOUND         -5
00093
00098 #define GateSem_E_INVALIDSTATE     -6
00099
00104 #define GateSem_E_INUSE            -7
00105
00110 #define GateSem_E_HANDLE           -8
00111
00116 #define GateSem_S_SUCCESS          0
00117
00118
00119 /* =============================================================================
00120  *  Macros and types
00121  * =============================================================================
00122  */
00124 typedef struct GateSem_Object   GateSem_Object;
00125
00127 typedef GateSem_Object * GateSem_Handle;
00128
00130 typedef Void GateSem_Params;
00131
00132
00133 /* =============================================================================
00134  *  APIs
00135  * =============================================================================
00136  */
00137 /* Function to create a GateSem */
00138 GateSem_Handle GateSem_create (const GateSem_Params * params);
00139
00140 /* Function to delete a GateSem */
00141 Int GateSem_delete (GateSem_Handle * handle);
00142
00143
00144 #if defined (__cplusplus)
00145 }
00146 #endif /* defined (__cplusplus) */
00147
00148
00149 #endif /* GATESEM_H_0x189E */


SysLink Application Programming Interface (API): GateSpinlock.h File Reference

Defines | Typedefs | Functions

GateSpinlock.h File Reference

Detailed Description

Gate based on Spinlock.

Go to the source code of this file.

Defines

#define | GateSpinlock_E_INVALIDARG -1
Argument passed to a function is invalid.
#define | GateSpinlock_E_MEMORY -2
Memory allocation failed.
#define | GateSpinlock_E_BUSY -3
The name is already registered or not.
#define | GateSpinlock_E_FAIL -4
Generic failure.
#define | GateSpinlock_E_NOTFOUND -5
Name not found in the nameserver.
#define | GateSpinlock_E_INVALIDSTATE -6
Module is not initialized.
#define | GateSpinlock_E_INUSE -7
Indicates that the instance is in use.
#define | GateSpinlock_E_HANDLE -8
An invalid handle was provided.
#define | GateSpinlock_S_SUCCESS 0
Operation successful.

Typedefs

typedef struct GateSpinlock_Object | GateSpinlock_Object
Object for GateSpinlock.
typedef GateSpinlock_Object * | GateSpinlock_Handle
Handle for GateSpinlock.
typedef Void | GateSpinlock_Params

Functions

GateSpinlock_Handle | GateSpinlock_create (const GateSpinlock_Params *params, Error_Block *eb)
Int | GateSpinlock_delete (GateSpinlock_Handle *handle)

Define Documentation

#define GateSpinlock_E_INVALIDARG -1

Argument passed to a function is invalid.

#define GateSpinlock_E_MEMORY -2

Memory allocation failed.

#define GateSpinlock_E_BUSY -3

The name is already registered or not.

#define GateSpinlock_E_FAIL -4

Generic failure.

#define GateSpinlock_E_NOTFOUND -5

Name not found in the nameserver.

#define GateSpinlock_E_INVALIDSTATE -6

Module is not initialized.

#define GateSpinlock_E_INUSE -7

Indicates that the instance is in use.

#define GateSpinlock_E_HANDLE -8

An invalid handle was provided.

#define GateSpinlock_S_SUCCESS 0

Operation successful.

Typedef Documentation

typedef struct GateSpinlock_Object GateSpinlock_Object

Object for GateSpinlock.

typedef GateSpinlock_Object* GateSpinlock_Handle

Handle for GateSpinlock.

typedef Void GateSpinlock_Params

No parameters for GateSpinlock creation

Function Documentation

GateSpinlock_Handle GateSpinlock_create | ( | const GateSpinlock_Params * | params,
 |  | Error_Block * | eb
 | ) |  |
Int GateSpinlock_delete ( GateSpinlock_Handle * handle )


SysLink Application Programming Interface (API): GateSpinlock.h Source File

GateSpinlock.h

Go to the documentation of this file.
00001
00008 /*
00009  *  ============================================================================
00010  *
00011  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00012  *
00013  *  Redistribution and use in source and binary forms, with or without
00014  *  modification, are permitted provided that the following conditions
00015  *  are met:
00016  *
00017  *  *  Redistributions of source code must retain the above copyright
00018  *     notice, this list of conditions and the following disclaimer.
00019  *
00020  *  *  Redistributions in binary form must reproduce the above copyright
00021  *     notice, this list of conditions and the following disclaimer in the
00022  *     documentation and/or other materials provided with the distribution.
00023  *
00024  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00025  *     its contributors may be used to endorse or promote products derived
00026  *     from this software without specific prior written permission.
00027  *
00028  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00029  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00030  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00031  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00032  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00033  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00034  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00035  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00036  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00037  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00038  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  *  Contact information for paper mail:
00040  *  Texas Instruments
00041  *  Post Office Box 655303
00042  *  Dallas, Texas 75265
00043  *  Contact information:
00044  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00045  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00046  *  ============================================================================
00047  *
00048  */
00049
00050
00051
00052 #ifndef GATESPINLOCK_H_0x188E
00053 #define GATESPINLOCK_H_0x188E
00054
00055
00056 #if defined (__cplusplus)
00057 extern "C" {
00058 #endif
00059
00060
00061 /* =============================================================================
00062  *  Status codes
00063  * =============================================================================
00064  */
00069 #define GateSpinlock_E_INVALIDARG       -1
00070
00075 #define GateSpinlock_E_MEMORY           -2
00076
00081 #define GateSpinlock_E_BUSY             -3
00082
00087 #define GateSpinlock_E_FAIL             -4
00088
00093 #define GateSpinlock_E_NOTFOUND         -5
00094
00099 #define GateSpinlock_E_INVALIDSTATE     -6
00100
00105 #define GateSpinlock_E_INUSE            -7
00106
00111 #define GateSpinlock_E_HANDLE           -8
00112
00117 #define GateSpinlock_S_SUCCESS          0
00118
00119
00120 /* =============================================================================
00121  *  Macros and types
00122  * =============================================================================
00123  */
00125 typedef struct GateSpinlock_Object   GateSpinlock_Object;
00126
00128 typedef GateSpinlock_Object * GateSpinlock_Handle;
00129
00131 typedef Void GateSpinlock_Params;
00132
00133
00134 /* =============================================================================
00135  *  APIs
00136  * =============================================================================
00137  */
00138 /* Function to create a GateSpinlock */
00139 GateSpinlock_Handle
00140 GateSpinlock_create (const GateSpinlock_Params * params, Error_Block *eb);
00141
00142 /* Function to delete a GateSpinlock */
00143 Int GateSpinlock_delete (GateSpinlock_Handle * handle);
00144
00145
00146 #if defined (__cplusplus)
00147 }
00148 #endif /* defined (__cplusplus) */
00149
00150
00151 #endif /* GATESPINLOCK_H_0x188E */


SysLink Application Programming Interface (API): HeapBufMP.h File Reference

Data Structures | Defines | Typedefs | Functions

HeapBufMP.h File Reference

Detailed Description

Multi-processor fixed-size buffer heap implementation.

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

Heap implementation that manages fixed size buffers that can be used in a multiprocessor system with shared memory.

The HeapBufMP manager provides functions to allocate and free storage from a heap of type HeapBufMP which inherits from IHeap. HeapBufMP manages a single fixed-size buffer, split into equally sized allocatable blocks.

The HeapBufMP manager is intended as a very fast memory manager which can only allocate blocks of a single size. It is ideal for managing a heap that is only used for allocating a single type of object, or for objects that have very similar sizes.

The HeapBufMP module uses a NameServer instance to store instance information when an instance is created. The name supplied must be unique for all HeapBufMP instances.

The HeapBufMP_create call initializes the shared memory as needed. Once an instance is created, a HeapBufMP_open can be performed. The open is used to gain access to the same HeapBufMP instance. Generally an instance is created on one processor and opened on the other processor(s).

The open returns a HeapBufMP instance handle like the create, however the open does not modify the shared memory.

The HeapBufMP header should be included in an application as follows:

  #include <ti/ipc/HeapBufMP.h>
Version:
0.00.01
#include <ti/ipc/GateMP.h>
Include dependency graph for HeapBufMP.h:

Go to the source code of this file.

Data Structures

struct | HeapBufMP_Params
Structure defining parameters for the HeapBufMP module. More...
struct | HeapBufMP_ExtendedStats
Stats structure for the HeapBufMP_getExtendedStats API. More...

Defines

#define | HeapBufMP_S_BUSY 2
The resource is still in use.
#define | HeapBufMP_S_ALREADYSETUP 1
The module has been already setup.
#define | HeapBufMP_S_SUCCESS 0
Operation is successful.
#define | HeapBufMP_E_FAIL -1
Generic failure.
#define | HeapBufMP_E_INVALIDARG -2
Argument passed to function is invalid.
#define | HeapBufMP_E_MEMORY -3
Operation resulted in memory failure.
#define | HeapBufMP_E_ALREADYEXISTS -4
The specified entity already exists.
#define | HeapBufMP_E_NOTFOUND -5
Unable to find the specified entity.
#define | HeapBufMP_E_TIMEOUT -6
Operation timed out.
#define | HeapBufMP_E_INVALIDSTATE -7
Module is not initialized.
#define | HeapBufMP_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | HeapBufMP_E_RESOURCE -9
Specified resource is not available.
#define | HeapBufMP_E_RESTART -10
Operation was interrupted. Please restart the operation.

Typedefs

typedef struct HeapBufMP_Object * | HeapBufMP_Handle
HeapBufMP_Handle type.
typedef struct HeapBufMP_Params | HeapBufMP_Params
Structure defining parameters for the HeapBufMP module.
typedef struct
HeapBufMP_ExtendedStats 		HeapBufMP_ExtendedStats
Stats structure for the HeapBufMP_getExtendedStats API.

Functions

Int | HeapBufMP_close (HeapBufMP_Handle *handlePtr)
Close a HeapBufMP instance.
HeapBufMP_Handle | HeapBufMP_create (const HeapBufMP_Params *params)
Create a HeapBufMP instance.
Int | HeapBufMP_delete (HeapBufMP_Handle *handlePtr)
Delete a created HeapBufMP instance.
Int | HeapBufMP_open (String name, HeapBufMP_Handle *handlePtr)
Open a created HeapBufMP instance.
Void | HeapBufMP_Params_init (HeapBufMP_Params *params)
Initialize a HeapBufMP parameters struct.
Void * | HeapBufMP_alloc (HeapBufMP_Handle handle, SizeT size, SizeT align)
Allocate a block of memory of specified size and alignment.
Void | HeapBufMP_free (HeapBufMP_Handle handle, Ptr block, SizeT size)
Frees a block of memory.
Void | HeapBufMP_getExtendedStats (HeapBufMP_Handle handle, HeapBufMP_ExtendedStats *stats)
Get extended memory statistics.
Void | HeapBufMP_getStats (HeapBufMP_Handle handle, Ptr stats)
Get memory statistics.

Define Documentation

#define HeapBufMP_S_BUSY 2

The resource is still in use.

#define HeapBufMP_S_ALREADYSETUP 1

The module has been already setup.

#define HeapBufMP_S_SUCCESS 0

Operation is successful.

#define HeapBufMP_E_FAIL -1

Generic failure.

#define HeapBufMP_E_INVALIDARG -2

Argument passed to function is invalid.

#define HeapBufMP_E_MEMORY -3

Operation resulted in memory failure.

#define HeapBufMP_E_ALREADYEXISTS -4

The specified entity already exists.

#define HeapBufMP_E_NOTFOUND -5

Unable to find the specified entity.

#define HeapBufMP_E_TIMEOUT -6

Operation timed out.

#define HeapBufMP_E_INVALIDSTATE -7

Module is not initialized.

#define HeapBufMP_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define HeapBufMP_E_RESOURCE -9

Specified resource is not available.

#define HeapBufMP_E_RESTART -10

Operation was interrupted. Please restart the operation.

Typedef Documentation

typedef struct HeapBufMP_Object* HeapBufMP_Handle

HeapBufMP_Handle type.

typedef struct HeapBufMP_Params HeapBufMP_Params

Structure defining parameters for the HeapBufMP module.

typedef struct HeapBufMP_ExtendedStats HeapBufMP_ExtendedStats

Stats structure for the HeapBufMP_getExtendedStats API.

Function Documentation

Int HeapBufMP_close ( HeapBufMP_Handle * handlePtr )

Close a HeapBufMP instance.

Closing an instance will free local memory consumed by the opened instance. All opened instances should be closed before the instance is deleted.

Parameters:
handlePtr Pointer to handle returned from HeapBufMP_open
See also:
HeapBufMP_open
HeapBufMP_Handle HeapBufMP_create ( const HeapBufMP_Params * params )

Create a HeapBufMP instance.

Parameters:
params HeapBufMP parameters
Returns:
HeapBufMP Handle
Int HeapBufMP_delete ( HeapBufMP_Handle * handlePtr )

Delete a created HeapBufMP instance.

Parameters:
handlePtr Pointer to handle to delete.
Int HeapBufMP_open | ( | String | name,
 |  | HeapBufMP_Handle * | handlePtr
 | ) |  |

Open a created HeapBufMP instance.

Once an instance is created, an open can be performed. The open is used to gain access to the same HeapBufMP instance. Generally an instance is created on one processor and opened on the other processor.

The open returns a HeapBufMP instance handle like the create, however the open does not initialize the shared memory. The supplied name is used to identify the created instance.

Call HeapBufMP_close when the opened instance is not longer needed.

Parameters:
name | Name of created HeapBufMP instance
handlePtr | Pointer to HeapBufMP handle to be opened
Returns:
HeapBufMP status:
  • HeapBufMP_S_SUCCESS: Heap successfully opened
  • HeapBufMP_E_NOTFOUND: Heap is not yet ready to be opened.
  • HeapBufMP_E_FAIL: A general failure has occurred
See also:
HeapBufMP_close
Void HeapBufMP_Params_init ( HeapBufMP_Params * params )

Initialize a HeapBufMP parameters struct.

Parameters:
[out] params Pointer to GateMP parameters
Void* HeapBufMP_alloc | ( | HeapBufMP_Handle | handle,
 |  | SizeT | size,
 |  | SizeT | align
 | ) |  |

Allocate a block of memory of specified size and alignment.

The actual block returned may be larger than requested to satisfy alignment requirements.

HeapBufMP_alloc will lock the heap using the HeapBufMP gate while it traverses the list of free blocks to find a large enough block for the request.

Guidelines for using large heaps and multiple alloc() calls.

  • If possible, allocate larger blocks first. Previous allocations of small memory blocks can reduce the size of the blocks available for larger memory allocations.
  • Realize that alloc() can fail even if the heap contains a sufficient absolute amount of unalloccated space. This is because the largest free memory block may be smaller than total amount of unallocated memory.
Parameters:
handle | Handle to previously created/opened instance.
size | Size to be allocated (in MADUs)
align | Alignment for allocation (power of 2)
See also:
HeapBufMP_free
Void HeapBufMP_free | ( | HeapBufMP_Handle | handle,
 |  | Ptr | block,
 |  | SizeT | size
 | ) |  |

Frees a block of memory.

free() places the memory block specified by addr and size back into the free pool of the heap specified. The newly freed block is combined with any adjacent free blocks. The space is then available for further allocation by alloc().

HeapBufMP_free will lock the heap using the HeapBufMP gate if one is specified or the system GateMP if not.

Parameters:
handle | Handle to previously created/opened instance.
block | Block of memory to be freed.
size | Size to be freed (in MADUs)
See also:
HeapBufMP_alloc
Void HeapBufMP_getExtendedStats | ( | HeapBufMP_Handle | handle,
 |  | HeapBufMP_ExtendedStats * | stats
 | ) |  |

Get extended memory statistics.

This function retrieves the extended statistics for a HeapBufMP instance. It does not retrieve the standard Memory_Stats information. Refer to HeapBufMP_ExtendedStats for more information regarding what information is returned.

Parameters:
handle | Handle to previously created/opened instance.
[out] | stats | ExtendedStats structure
See also:
Void HeapBufMP_getStats | ( | HeapBufMP_Handle | handle,
 |  | Ptr | stats
 | ) |  |

Get memory statistics.

Parameters:
[in] | handle | Handle to previously created/opened instance.
[out] | stats | Memory statistics structure
See also:


SysLink Application Programming Interface (API): HeapBufMP.h Source File

HeapBufMP.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2012, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * */
00071 #ifndef ti_ipc_HeapBufMP__include
00072 #define ti_ipc_HeapBufMP__include
00073
00074 #if defined (__cplusplus)
00075 extern "C" {
00076 #endif
00077
00078 #include <ti/ipc/GateMP.h>
00079
00080 /* =============================================================================
00081  *  All success and failure codes for the module
00082  * =============================================================================
00083  */
00084
00089 #define HeapBufMP_S_BUSY               2
00090
00095 #define HeapBufMP_S_ALREADYSETUP       1
00096
00101 #define HeapBufMP_S_SUCCESS            0
00102
00107 #define HeapBufMP_E_FAIL              -1
00108
00113 #define HeapBufMP_E_INVALIDARG        -2
00114
00119 #define HeapBufMP_E_MEMORY            -3
00120
00125 #define HeapBufMP_E_ALREADYEXISTS     -4
00126
00131 #define HeapBufMP_E_NOTFOUND          -5
00132
00137 #define HeapBufMP_E_TIMEOUT           -6
00138
00143 #define HeapBufMP_E_INVALIDSTATE      -7
00144
00148 #define HeapBufMP_E_OSFAILURE         -8
00149
00153 #define HeapBufMP_E_RESOURCE          -9
00154
00158 #define HeapBufMP_E_RESTART           -10
00159
00160 /* =============================================================================
00161  *  Structures & Enums
00162  * =============================================================================
00163  */
00164
00168 typedef struct HeapBufMP_Object *HeapBufMP_Handle;
00169
00173 typedef struct HeapBufMP_Params {
00174     String name;
00185     UInt16 regionId;
00193     Ptr sharedAddr;
00203     SizeT blockSize;
00216     UInt numBlocks;
00222     SizeT align;
00233     Bool exact;
00241     GateMP_Handle gate;
00248 } HeapBufMP_Params;
00249
00253 typedef struct HeapBufMP_ExtendedStats {
00254     UInt maxAllocatedBlocks;
00259     UInt numAllocatedBlocks;
00263 } HeapBufMP_ExtendedStats;
00264
00265 /* =============================================================================
00266  *  HeapBufMP Module-wide Functions
00267  * =============================================================================
00268  */
00269
00281 Int HeapBufMP_close(HeapBufMP_Handle *handlePtr);
00282
00290 HeapBufMP_Handle HeapBufMP_create(const HeapBufMP_Params *params);
00291
00297 Int HeapBufMP_delete(HeapBufMP_Handle *handlePtr);
00298
00323 Int HeapBufMP_open(String name, HeapBufMP_Handle *handlePtr);
00324
00326 Int HeapBufMP_openByAddr(Ptr sharedAddr, HeapBufMP_Handle *handlePtr);
00327
00336 Void HeapBufMP_Params_init(HeapBufMP_Params *params);
00337
00347 SizeT HeapBufMP_sharedMemReq(const HeapBufMP_Params *params);
00348
00351 /* =============================================================================
00352  *  HeapBufMP Per-instance Functions
00353  * =============================================================================
00354  */
00355
00381 Void *HeapBufMP_alloc(HeapBufMP_Handle handle, SizeT size, SizeT align);
00382
00400 Void HeapBufMP_free(HeapBufMP_Handle handle, Ptr block, SizeT size);
00401
00415 Void HeapBufMP_getExtendedStats(HeapBufMP_Handle handle,
00416                                 HeapBufMP_ExtendedStats *stats);
00417
00426 Void HeapBufMP_getStats(HeapBufMP_Handle handle, Ptr stats);
00427
00428 #if defined (__cplusplus)
00429 }
00430 #endif /* defined (__cplusplus) */
00431 #endif /* ti_ipc_HeapBufMP__include */
00432
00433 /*
00434  */
00435
00436 /*
00437  *  @(#) ti.ipc; 1, 0, 0, 0,1; 5-22-2012 16:16:05; /db/vtree/library/trees/ipc/ipc-h32/src/ xlibrary
00438
00439  */
00440


SysLink Application Programming Interface (API): HeapMemMP.h File Reference

Data Structures | Defines | Typedefs | Functions

HeapMemMP.h File Reference

Detailed Description

Multi-processor variable size buffer heap implementation.

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

HeapMemMP is a heap implementation that manages variable size buffers that can be used in a multiprocessor system with shared memory. HeapMemMP manages a single buffer in shared memory from which blocks of user- specified length are allocated and freed.

The HeapMemMP module uses a NameServer instance to store instance information when an instance is created. The name supplied must be unique for all HeapMemMP instances.

The HeapMemMP_create call initializes the shared memory as needed. Once an instance is created, an HeapMemMP_open can be performed. The open is used to gain access to the same HeapMemMP instance. Generally an instance is created on one processor and opened on the other processor(s).

The open returns a HeapMemMP instance handle like the create, however the open does not modify the shared memory.

Because HeapMemMP is a variable-size heap implementation, it is also used by the SharedRegion module to manage shared memory in each shared region. When any shared memory IPC instance is created in a particular shared region, the HeapMemMP that manages shared memory in the shared region allocates shared memory for the instance.

The HeapMemMP header should be included in an application as follows:

  #include <ti/ipc/HeapMemMP.h>
Version:
0.00.01

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

#include <ti/ipc/GateMP.h>
Include dependency graph for HeapMemMP.h:

Go to the source code of this file.

Data Structures

struct | HeapMemMP_Params
Structure defining parameters for the HeapMemMP module. More...
struct | HeapMemMP_ExtendedStats
Stats structure for the HeapMemMP_getExtendedStats API. More...

Defines

#define | HeapMemMP_S_BUSY 2
The resource is still in use.
#define | HeapMemMP_S_ALREADYSETUP 1
The module has been already setup.
#define | HeapMemMP_S_SUCCESS 0
Operation is successful.
#define | HeapMemMP_E_FAIL -1
Generic failure.
#define | HeapMemMP_E_INVALIDARG -2
Argument passed to function is invalid.
#define | HeapMemMP_E_MEMORY -3
Operation resulted in memory failure.
#define | HeapMemMP_E_ALREADYEXISTS -4
The specified entity already exists.
#define | HeapMemMP_E_NOTFOUND -5
Unable to find the specified entity.
#define | HeapMemMP_E_TIMEOUT -6
Operation timed out.
#define | HeapMemMP_E_INVALIDSTATE -7
Module is not initialized.
#define | HeapMemMP_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | HeapMemMP_E_RESOURCE -9
Specified resource is not available.
#define | HeapMemMP_E_RESTART -10
Operation was interrupted. Please restart the operation.

Typedefs

typedef struct HeapMemMP_Object * | HeapMemMP_Handle
HeapMemMP_Handle type.
typedef struct HeapMemMP_Params | HeapMemMP_Params
Structure defining parameters for the HeapMemMP module.
typedef struct
HeapMemMP_ExtendedStats 		HeapMemMP_ExtendedStats
Stats structure for the HeapMemMP_getExtendedStats API.

Functions

Int | HeapMemMP_close (HeapMemMP_Handle *handlePtr)
Close a HeapMemMP instance.
HeapMemMP_Handle | HeapMemMP_create (const HeapMemMP_Params *params)
Create a HeapMemMP instance.
Int | HeapMemMP_delete (HeapMemMP_Handle *handlePtr)
Delete a created HeapMemMP instance.
Int | HeapMemMP_open (String name, HeapMemMP_Handle *handlePtr)
Open a created HeapMemMP instance.
Void | HeapMemMP_Params_init (HeapMemMP_Params *params)
Initialize a HeapMemMP parameters struct.
Void * | HeapMemMP_alloc (HeapMemMP_Handle handle, SizeT size, SizeT align)
Allocate a block of memory of specified size and alignment.
Void | HeapMemMP_free (HeapMemMP_Handle handle, Ptr block, SizeT size)
Frees a block of memory.
Void | HeapMemMP_getExtendedStats (HeapMemMP_Handle handle, HeapMemMP_ExtendedStats *stats)
Get extended memory statistics.
Void | HeapMemMP_getStats (HeapMemMP_Handle handle, Ptr stats)
Get memory statistics.
Void | HeapMemMP_restore (HeapMemMP_Handle handle)
Restore an instance to it's original created state.

Define Documentation

#define HeapMemMP_S_BUSY 2

The resource is still in use.

#define HeapMemMP_S_ALREADYSETUP 1

The module has been already setup.

#define HeapMemMP_S_SUCCESS 0

Operation is successful.

#define HeapMemMP_E_FAIL -1

Generic failure.

#define HeapMemMP_E_INVALIDARG -2

Argument passed to function is invalid.

#define HeapMemMP_E_MEMORY -3

Operation resulted in memory failure.

#define HeapMemMP_E_ALREADYEXISTS -4

The specified entity already exists.

#define HeapMemMP_E_NOTFOUND -5

Unable to find the specified entity.

#define HeapMemMP_E_TIMEOUT -6

Operation timed out.

#define HeapMemMP_E_INVALIDSTATE -7

Module is not initialized.

#define HeapMemMP_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define HeapMemMP_E_RESOURCE -9

Specified resource is not available.

#define HeapMemMP_E_RESTART -10

Operation was interrupted. Please restart the operation.

Typedef Documentation

typedef struct HeapMemMP_Object* HeapMemMP_Handle

HeapMemMP_Handle type.

typedef struct HeapMemMP_Params HeapMemMP_Params

Structure defining parameters for the HeapMemMP module.

typedef struct HeapMemMP_ExtendedStats HeapMemMP_ExtendedStats

Stats structure for the HeapMemMP_getExtendedStats API.

Function Documentation

Int HeapMemMP_close ( HeapMemMP_Handle * handlePtr )

Close a HeapMemMP instance.

Closing an instance will free local memory consumed by the opened instance. All opened instances should be closed before the instance is deleted.

Parameters:
[in,out] handlePtr Pointer to handle returned from HeapMemMP_open
HeapMemMP_Handle HeapMemMP_create ( const HeapMemMP_Params * params )

Create a HeapMemMP instance.

Parameters:
[in] params HeapMemMP parameters
Returns:
HeapMemMP Handle
Int HeapMemMP_delete ( HeapMemMP_Handle * handlePtr )

Delete a created HeapMemMP instance.

Parameters:
[in,out] handlePtr Pointer to handle to delete.
Int HeapMemMP_open | ( | String | name,
 |  | HeapMemMP_Handle * | handlePtr
 | ) |  |

Open a created HeapMemMP instance.

Once an instance is created, an open can be performed. The open is used to gain access to the same HeapMemMP instance. Generally an instance is created on one processor and opened on the other processor.

The open returns a HeapMemMP instance handle like the create, however the open does not initialize the shared memory. The supplied name is used to identify the created instance.

Call HeapMemMP_close when the opened instance is not longer needed.

Parameters:
[in] | name | Name of created HeapMemMP instance
[out] | handlePtr | Pointer to HeapMemMP handle to be opened
Returns:
HeapMemMP status:
  • HeapMemMP_S_SUCCESS: Heap successfully opened
  • HeapMemMP_E_NOTFOUND: Heap is not yet ready to be opened.
  • HeapMemMP_E_FAIL: A general failure has occurred
See also:
HeapMemMP_close
Void HeapMemMP_Params_init ( HeapMemMP_Params * params )

Initialize a HeapMemMP parameters struct.

Parameters:
[out] params Pointer to GateMP parameters
Void* HeapMemMP_alloc | ( | HeapMemMP_Handle | handle,
 |  | SizeT | size,
 |  | SizeT | align
 | ) |  |

Allocate a block of memory of specified size and alignment.

The actual block returned may be larger than requested to satisfy alignment requirements.

HeapMemMP_alloc will lock the heap using the HeapMemMP gate while it traverses the list of free blocks to find a large enough block for the request.

Guidelines for using large heaps and multiple alloc() calls.

  • If possible, allocate larger blocks first. Previous allocations of small memory blocks can reduce the size of the blocks available for larger memory allocations.
  • Realize that alloc() can fail even if the heap contains a sufficient absolute amount of unalloccated space. This is because the largest free memory block may be smaller than total amount of unallocated memory.
Parameters:
[in] | handle | Handle to previously created/opened instance.
[in] | size | Size to be allocated (in MADUs)
[in] | align | Alignment for allocation (power of 2)
See also:
HeapMemMP_free
Void HeapMemMP_free | ( | HeapMemMP_Handle | handle,
 |  | Ptr | block,
 |  | SizeT | size
 | ) |  |

Frees a block of memory.

free() places the memory block specified by addr and size back into the free pool of the heap specified. The newly freed block is combined with any adjacent free blocks. The space is then available for further allocation by alloc().

HeapMemMP_free will lock the heap using the HeapMemMP gate if one is specified or the system GateMP if not.

Parameters:
[in] | handle | Handle to previously created/opened instance.
[in] | block | Block of memory to be freed.
[in] | size | Size to be freed (in MADUs)
See also:
HeapMemMP_alloc
Void HeapMemMP_getExtendedStats | ( | HeapMemMP_Handle | handle,
 |  | HeapMemMP_ExtendedStats * | stats
 | ) |  |

Get extended memory statistics.

This function retrieves extended statistics for a HeapMemMP instance. Refer to HeapMemMP_ExtendedStats for more information regarding what information is returned.

Parameters:
[in] | handle | Handle to previously created/opened instance.
[out] | stats | ExtendedStats structure
See also:
Void HeapMemMP_getStats | ( | HeapMemMP_Handle | handle,
 |  | Ptr | stats
 | ) |  |

Get memory statistics.

Parameters:
[in] | handle | Handle to previously created/opened instance.
[out] | stats | Memory statistics structure
See also:
Void HeapMemMP_restore ( HeapMemMP_Handle handle )

Restore an instance to it's original created state.

This function restores an instance to its original created state. Any memory previously allocated from the heap is no longer valid after this API is called. This function does not check whether there is allocated memory or not.

Parameters:
[in] handle Handle to previously created/opened instance.


SysLink Application Programming Interface (API): HeapMemMP.h Source File

HeapMemMP.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2012, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * */
00072 #ifndef ti_ipc_HeapMemMP__include
00073 #define ti_ipc_HeapMemMP__include
00074
00075 #if defined (__cplusplus)
00076 extern "C" {
00077 #endif
00078
00079 #include <ti/ipc/GateMP.h>
00080
00081 /* =============================================================================
00082  *  All success and failure codes for the module
00083  * =============================================================================
00084  */
00085
00090 #define HeapMemMP_S_BUSY               2
00091
00096 #define HeapMemMP_S_ALREADYSETUP       1
00097
00102 #define HeapMemMP_S_SUCCESS            0
00103
00108 #define HeapMemMP_E_FAIL              -1
00109
00114 #define HeapMemMP_E_INVALIDARG        -2
00115
00120 #define HeapMemMP_E_MEMORY            -3
00121
00126 #define HeapMemMP_E_ALREADYEXISTS     -4
00127
00132 #define HeapMemMP_E_NOTFOUND          -5
00133
00138 #define HeapMemMP_E_TIMEOUT           -6
00139
00144 #define HeapMemMP_E_INVALIDSTATE      -7
00145
00149 #define HeapMemMP_E_OSFAILURE         -8
00150
00154 #define HeapMemMP_E_RESOURCE          -9
00155
00159 #define HeapMemMP_E_RESTART           -10
00160
00161 /* =============================================================================
00162  *  Structures & Enums
00163  * =============================================================================
00164  */
00165
00169 typedef struct HeapMemMP_Object *HeapMemMP_Handle;
00170
00174 typedef struct HeapMemMP_Params {
00175     String name;
00186     UInt16 regionId;
00194     Ptr sharedAddr;
00205     SizeT sharedBufSize;
00219     GateMP_Handle gate;
00226 } HeapMemMP_Params;
00227
00231 typedef struct HeapMemMP_ExtendedStats {
00232     Ptr   buf;
00235     SizeT size;
00237 } HeapMemMP_ExtendedStats;
00238
00239 /* =============================================================================
00240  *  HeapMemMP Module-wide Functions
00241  * =============================================================================
00242  */
00243
00253 Int HeapMemMP_close(HeapMemMP_Handle *handlePtr);
00254
00262 HeapMemMP_Handle HeapMemMP_create(const HeapMemMP_Params *params);
00263
00269 Int HeapMemMP_delete(HeapMemMP_Handle *handlePtr);
00270
00295 Int HeapMemMP_open(String name, HeapMemMP_Handle *handlePtr);
00296
00298 Int HeapMemMP_openByAddr(Ptr sharedAddr, HeapMemMP_Handle *handlePtr);
00299
00308 Void HeapMemMP_Params_init(HeapMemMP_Params *params);
00309
00319 SizeT HeapMemMP_sharedMemReq(const HeapMemMP_Params *params);
00320
00323 /* =============================================================================
00324  *  HeapMemMP Per-instance Functions
00325  * =============================================================================
00326  */
00327
00353 Void *HeapMemMP_alloc(HeapMemMP_Handle handle, SizeT size, SizeT align);
00354
00372 Void HeapMemMP_free(HeapMemMP_Handle handle, Ptr block, SizeT size);
00373
00386 Void HeapMemMP_getExtendedStats(HeapMemMP_Handle handle,
00387                                 HeapMemMP_ExtendedStats *stats);
00388
00397 Void HeapMemMP_getStats(HeapMemMP_Handle handle, Ptr stats);
00398
00409 Void HeapMemMP_restore(HeapMemMP_Handle handle);
00410
00411 #if defined (__cplusplus)
00412 }
00413 #endif /* defined (__cplusplus) */
00414 #endif /* ti_ipc_HeapMemMP__include */
00415
00416 /*
00417  */
00418
00419 /*
00420  *  @(#) ti.ipc; 1, 0, 0, 0,1; 5-22-2012 16:16:05; /db/vtree/library/trees/ipc/ipc-h32/src/ xlibrary
00421
00422  */
00423


SysLink Application Programming Interface (API): HeapMultiBufMP.h File Reference

Data Structures | Defines | Typedefs | Functions

HeapMultiBufMP.h File Reference

Detailed Description

Multiple fixed size buffer heap implementation.

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

The HeapMultiBufMP manager provides functions to allocate and free storage from a shared memory heap of type HeapMultiBufMP which inherits from IHeap. HeapMultiBufMP manages multiple fixed-size memory buffers. Each buffer contains a fixed number of allocatable memory 'blocks' of the same size. HeapMultiBufMP is intended as a fast and deterministic memory manager which can service requests for blocks of arbitrary size.

An example HeapMultiBufMP instance might have sixteen 32-byte blocks in one buffer, and four 128-byte blocks in another buffer. A request for memory will be serviced by the smallest possible block, so a request for 100 bytes would receive a 128-byte block in our example.

Allocating from HeapMultiBufMP will try to return a block from the first buffer which has:

1. A block size that is >= to the requested size

AND

2. An alignment that is >= to the requested alignment

Buffer configuration for a new instance is primarily supplied via the HeapMultiBufMP_Params::bucketEntries instance configuration parameter. Once buckets are adjusted for size and alignment, buffers with equal sizes and alignments are combined.

Block Sizes and Alignment

  • A buffer with a requested alignment of 0 will receive the target- specific minimum alignment
  • If cache is enabled for the particular shared region in which the shared buffer is to be placed, then the minimum alignment for each buffer is equal to the cache line size of the shared region.
  • The actual block sizes will be a multiple of the alignment. For example, if a buffer is configured to have 56-byte blocks with an alignment of 32, HeapMultiBufMP will actually create 64-byte blocks. When providing the buffer for a dynamice create, make sure it is large enough to take this into account.
  • Multiple buffers with the same block size ARE allowed. This may occur, for example, if sizeof is used to specify the block sizes.
  • If any buffers have both the same block size and alignment, they will be merged. If this is a problem, consider managing these buffers directly with HeapBufMP objects.

In addition to the buffer configuration, a HeapMultiBufMP_Params::name and a HeapMultiBufMP_Params::regionId (from which shared memory is allocated) must be supplied when creating an instance.

Once an instance is created, an HeapMultiBufMP_open can be performed using the name that was supplied in the HeapMultiBufMP_create. The open is used to gain access to the same HeapMultiBufMP instance. Generally an instance is created on one processor and opened on the other processor(s). The open returns (by reference) a HeapMultiBufMP instance handle like the create, however the open does not modify the shared memory.

HeapMultiBufMP_open will return HeapMultiBufMP_E_FAIL if called before the instance is created.

The HeapMultiBufMP header should be included in an application as follows:

  #include <ti/ipc/HeapMultiBufMP.h>
Version:
0.00.01

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

#include <ti/ipc/GateMP.h>
Include dependency graph for HeapMultiBufMP.h:

Go to the source code of this file.

Data Structures

struct | HeapMultiBufMP_Bucket
Structure for bucket configuration. More...
struct | HeapMultiBufMP_Params
Structure defining parameters for the HeapMultiBufMP module. More...
struct | HeapMultiBufMP_ExtendedStats
Stats structure for the HeapMultiBufMP_getExtendedStats API. More...

Defines

#define | HeapMultiBufMP_S_BUSY 2
The resource is still in use.
#define | HeapMultiBufMP_S_ALREADYSETUP 1
The module has been already setup.
#define | HeapMultiBufMP_S_SUCCESS 0
#define | HeapMultiBufMP_E_FAIL -1
#define | HeapMultiBufMP_E_INVALIDARG -2
Argument passed to function is invalid.
#define | HeapMultiBufMP_E_MEMORY -3
Operation resulted in memory failure.
#define | HeapMultiBufMP_E_ALREADYEXISTS -4
The specified entity already exists.
#define | HeapMultiBufMP_E_NOTFOUND -5
Unable to find the specified entity.
#define | HeapMultiBufMP_E_TIMEOUT -6
Operation timed out.
#define | HeapMultiBufMP_E_INVALIDSTATE -7
Module is not initialized.
#define | HeapMultiBufMP_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | HeapMultiBufMP_E_RESOURCE -9
Specified resource is not available.
#define | HeapMultiBufMP_E_RESTART -10
Operation was interrupted. Please restart the operation.
#define | HeapMultiBufMP_MAXBUCKETS ((UInt)8)
Maximum number of buffer buckets supported.

Typedefs

typedef struct
HeapMultiBufMP_Object * 		HeapMultiBufMP_Handle
HeapMultiBufMP_Handle type.
typedef struct
HeapMultiBufMP_Bucket 		HeapMultiBufMP_Bucket
Structure for bucket configuration.
typedef struct
HeapMultiBufMP_Params 		HeapMultiBufMP_Params
Structure defining parameters for the HeapMultiBufMP module.
typedef struct
HeapMultiBufMP_ExtendedStats 		HeapMultiBufMP_ExtendedStats
Stats structure for the HeapMultiBufMP_getExtendedStats API.

Functions

Int | HeapMultiBufMP_close (HeapMultiBufMP_Handle *handlePtr)
Close a HeapMultiBufMP instance.
HeapMultiBufMP_Handle | HeapMultiBufMP_create (const HeapMultiBufMP_Params *params)
Create a HeapMultiBufMP instance.
Int | HeapMultiBufMP_delete (HeapMultiBufMP_Handle *handlePtr)
Delete a created HeapMultiBufMP instance.
Int | HeapMultiBufMP_open (String name, HeapMultiBufMP_Handle *handlePtr)
Open a created HeapMultiBufMP instance.
Void | HeapMultiBufMP_Params_init (HeapMultiBufMP_Params *params)
Initialize a HeapMultiBufMP parameters struct.
Void * | HeapMultiBufMP_alloc (HeapMultiBufMP_Handle handle, SizeT size, SizeT align)
Allocate a block of memory of specified size and alignment.
Void | HeapMultiBufMP_free (HeapMultiBufMP_Handle handle, Ptr block, SizeT size)
Frees a block of memory.
Void | HeapMultiBufMP_getExtendedStats (HeapMultiBufMP_Handle handle, HeapMultiBufMP_ExtendedStats *stats)
Get extended memory statistics.
Void | HeapMultiBufMP_getStats (HeapMultiBufMP_Handle handle, Ptr stats)
Get memory statistics.

Define Documentation

#define HeapMultiBufMP_S_BUSY 2

The resource is still in use.

#define HeapMultiBufMP_S_ALREADYSETUP 1

The module has been already setup.

#define HeapMultiBufMP_S_SUCCESS 0
#define HeapMultiBufMP_E_FAIL -1
#define HeapMultiBufMP_E_INVALIDARG -2

Argument passed to function is invalid.

#define HeapMultiBufMP_E_MEMORY -3

Operation resulted in memory failure.

#define HeapMultiBufMP_E_ALREADYEXISTS -4

The specified entity already exists.

#define HeapMultiBufMP_E_NOTFOUND -5

Unable to find the specified entity.

#define HeapMultiBufMP_E_TIMEOUT -6

Operation timed out.

#define HeapMultiBufMP_E_INVALIDSTATE -7

Module is not initialized.

#define HeapMultiBufMP_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define HeapMultiBufMP_E_RESOURCE -9

Specified resource is not available.

#define HeapMultiBufMP_E_RESTART -10

Operation was interrupted. Please restart the operation.

#define HeapMultiBufMP_MAXBUCKETS ((UInt)8)

Maximum number of buffer buckets supported.

Typedef Documentation

typedef struct HeapMultiBufMP_Object* HeapMultiBufMP_Handle

HeapMultiBufMP_Handle type.

typedef struct HeapMultiBufMP_Bucket HeapMultiBufMP_Bucket

Structure for bucket configuration.

An array of buckets is a required parameter to create any HeapMultiBufMP instance. The fields of each bucket correspond to the attributes of each buffer in the HeapMultiBufMP. The actual block sizes and alignments may be adjusted per the process described at HeapMultiBufMP_Params::bucketEntries.

typedef struct HeapMultiBufMP_Params HeapMultiBufMP_Params

Structure defining parameters for the HeapMultiBufMP module.

typedef struct HeapMultiBufMP_ExtendedStats HeapMultiBufMP_ExtendedStats

Stats structure for the HeapMultiBufMP_getExtendedStats API.

Function Documentation

Int HeapMultiBufMP_close ( HeapMultiBufMP_Handle * handlePtr )

Close a HeapMultiBufMP instance.

Closing an instance will free local memory consumed by the opened instance. All opened instances should be closed before the instance is deleted.

Parameters:
handlePtr Pointer to handle returned from HeapMultiBufMP_open
See also:
HeapMultiBufMP_open
HeapMultiBufMP_Handle HeapMultiBufMP_create ( const HeapMultiBufMP_Params * params )

Create a HeapMultiBufMP instance.

Parameters:
params HeapMultiBufMP parameters
Returns:
HeapMultiBufMP Handle
Int HeapMultiBufMP_delete ( HeapMultiBufMP_Handle * handlePtr )

Delete a created HeapMultiBufMP instance.

Parameters:
handlePtr Pointer to handle to delete.
Int HeapMultiBufMP_open | ( | String | name,
 |  | HeapMultiBufMP_Handle * | handlePtr
 | ) |  |

Open a created HeapMultiBufMP instance.

Once an instance is created, an open can be performed. The open is used to gain access to the same HeapMultiBufMP instance. Generally an instance is created on one processor and opened on the other processor.

The open returns a HeapMultiBufMP instance handle like the create, however the open does not initialize the shared memory. The supplied name is used to identify the created instance.

Call HeapMultiBufMP_close when the opened instance is not longer needed.

Parameters:
name | Name of created HeapMultiBufMP instance
handlePtr | Pointer to HeapMultiBufMP handle to be opened
Returns:
HeapMultiBufMP status
  • HeapMultiBufMP_S_SUCCESS: Heap successfully opened
  • HeapMultiBufMP_E_NOTFOUND: Heap is not yet ready to be opened.
  • HeapMultiBufMP_E_FAIL: A general failure has occurred
See also:
HeapMultiBufMP_close
Void HeapMultiBufMP_Params_init ( HeapMultiBufMP_Params * params )

Initialize a HeapMultiBufMP parameters struct.

Parameters:
[out] params Pointer to GateMP parameters
Void* HeapMultiBufMP_alloc | ( | HeapMultiBufMP_Handle | handle,
 |  | SizeT | size,
 |  | SizeT | align
 | ) |  |

Allocate a block of memory of specified size and alignment.

Parameters:
handle | Handle to previously created/opened instance.
size | Size to be allocated (in MADUs)
align | Alignment for allocation (power of 2)
See also:
HeapMultiBufMP_free
Void HeapMultiBufMP_free | ( | HeapMultiBufMP_Handle | handle,
 |  | Ptr | block,
 |  | SizeT | size
 | ) |  |

Frees a block of memory.

Parameters:
handle | Handle to previously created/opened instance.
block | Block of memory to be freed.
size | Size to be freed (in MADUs)
See also:
HeapMultiBufMP_alloc
Void HeapMultiBufMP_getExtendedStats | ( | HeapMultiBufMP_Handle | handle,
 |  | HeapMultiBufMP_ExtendedStats * | stats
 | ) |  |

Get extended memory statistics.

This function retrieves the extended statistics for a HeapMultiBufMP instance. It does not retrieve the standard Memory_Stats information. Refer to HeapMultiBufMP_ExtendedStats for more information regarding what information is returned.

Parameters:
handle | Handle to previously created/opened instance.
[out] | stats | ExtendedStats structure
See also:
Void HeapMultiBufMP_getStats | ( | HeapMultiBufMP_Handle | handle,
 |  | Ptr | stats
 | ) |  |

Get memory statistics.

Parameters:
handle | Handle to previously created/opened instance.
[out] | stats | Memory statistics structure
See also:


SysLink Application Programming Interface (API): HeapMultiBufMP.h Source File

HeapMultiBufMP.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2012, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * */
00105 #ifndef ti_ipc_HeapMultiBufMP__include
00106 #define ti_ipc_HeapMultiBufMP__include
00107
00108 #if defined (__cplusplus)
00109 extern "C" {
00110 #endif
00111
00112 #include <ti/ipc/GateMP.h>
00113
00114 /* =============================================================================
00115  *  All success and failure codes for the module
00116  * =============================================================================
00117  */
00118
00123 #define HeapMultiBufMP_S_BUSY               2
00124
00129 #define HeapMultiBufMP_S_ALREADYSETUP       1
00130
00135 #define HeapMultiBufMP_S_SUCCESS            0
00136
00141 #define HeapMultiBufMP_E_FAIL              -1
00142
00147 #define HeapMultiBufMP_E_INVALIDARG        -2
00148
00153 #define HeapMultiBufMP_E_MEMORY            -3
00154
00159 #define HeapMultiBufMP_E_ALREADYEXISTS     -4
00160
00165 #define HeapMultiBufMP_E_NOTFOUND          -5
00166
00171 #define HeapMultiBufMP_E_TIMEOUT           -6
00172
00177 #define HeapMultiBufMP_E_INVALIDSTATE      -7
00178
00182 #define HeapMultiBufMP_E_OSFAILURE         -8
00183
00187 #define HeapMultiBufMP_E_RESOURCE          -9
00188
00192 #define HeapMultiBufMP_E_RESTART           -10
00193
00194 /* =============================================================================
00195  *  Macros
00196  * =============================================================================
00197  */
00198
00203 #define HeapMultiBufMP_MAXBUCKETS          ((UInt)8)
00204
00205 /* =============================================================================
00206  *  Structures & Enums
00207  * =============================================================================
00208  */
00209
00213 typedef struct HeapMultiBufMP_Object *HeapMultiBufMP_Handle;
00214
00224 typedef struct HeapMultiBufMP_Bucket {
00225     SizeT blockSize;
00226     UInt numBlocks;
00227     SizeT align;
00228 } HeapMultiBufMP_Bucket;
00229
00233 typedef struct HeapMultiBufMP_Params {
00234     GateMP_Handle gate;
00241     Bool exact;
00248     String name;
00259     Int numBuckets;
00265     HeapMultiBufMP_Bucket *bucketEntries;
00283     UInt16 regionId;
00291     Ptr sharedAddr;
00302 } HeapMultiBufMP_Params;
00303
00307 typedef struct HeapMultiBufMP_ExtendedStats {
00308     UInt numBuckets;
00311     UInt numBlocks          [HeapMultiBufMP_MAXBUCKETS];
00314     UInt blockSize          [HeapMultiBufMP_MAXBUCKETS];
00317     UInt align              [HeapMultiBufMP_MAXBUCKETS];
00320     UInt maxAllocatedBlocks [HeapMultiBufMP_MAXBUCKETS];
00325     UInt numAllocatedBlocks [HeapMultiBufMP_MAXBUCKETS];
00330 } HeapMultiBufMP_ExtendedStats;
00331
00332 /* =============================================================================
00333  *  HeapMultiBufMP Module-wide Functions
00334  * =============================================================================
00335  */
00336
00349 Int HeapMultiBufMP_close(HeapMultiBufMP_Handle *handlePtr);
00350
00358 HeapMultiBufMP_Handle HeapMultiBufMP_create(const HeapMultiBufMP_Params *params);
00359
00365 Int HeapMultiBufMP_delete(HeapMultiBufMP_Handle *handlePtr);
00366
00391 Int HeapMultiBufMP_open(String name, HeapMultiBufMP_Handle *handlePtr);
00392
00394 Int HeapMultiBufMP_openByAddr(Ptr sharedAddr, HeapMultiBufMP_Handle *handlePtr);
00395
00404 Void HeapMultiBufMP_Params_init(HeapMultiBufMP_Params *params);
00405
00415 SizeT HeapMultiBufMP_sharedMemReq(const HeapMultiBufMP_Params *params);
00416
00419 /* =============================================================================
00420  *  HeapMultiBufMP Per-instance Functions
00421  * =============================================================================
00422  */
00423
00433 Void *HeapMultiBufMP_alloc(HeapMultiBufMP_Handle handle, SizeT size,
00434                            SizeT align);
00435
00445 Void HeapMultiBufMP_free(HeapMultiBufMP_Handle handle, Ptr block, SizeT size);
00446
00460 Void HeapMultiBufMP_getExtendedStats(HeapMultiBufMP_Handle handle,
00461                                      HeapMultiBufMP_ExtendedStats *stats);
00462
00471 Void HeapMultiBufMP_getStats(HeapMultiBufMP_Handle handle, Ptr stats);
00472
00473 #if defined (__cplusplus)
00474 }
00475 #endif /* defined (__cplusplus) */
00476 #endif /* ti_ipc_HeapMultiBufMP__include */
00477
00478 /*
00479  */
00480
00481 /*
00482  *  @(#) ti.ipc; 1, 0, 0, 0,1; 5-22-2012 16:16:05; /db/vtree/library/trees/ipc/ipc-h32/src/ xlibrary
00483
00484  */
00485


SysLink Application Programming Interface (API): HeapQueueMgr.h File Reference

Data Structures | Defines | Typedefs | Functions

HeapQueueMgr.h File Reference

Detailed Description

Multi-processor fixed-size buffer heap using hardware queues.

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

Heap implementation that manages fixed size buffers that can be used in a multiprocessor system with shared memory.

The HeapQueueMgr manager provides functions to allocate and free storage from a heap of type HeapQueueMgr which inherits from IHeap. HeapQueueMgr manages a single fixed-size buffer, split into equally sized allocatable blocks.

The HeapQueueMgr manager is intended as a very fast memory manager which can only allocate blocks of a single size. It is ideal for managing a heap that is only used for allocating a single type of object, or for objects that have very similar sizes.

The HeapQueueMgr module uses a NameServer instance to store instance information when an instance is created. The name supplied must be unique for all HeapQueueMgr instances.

The HeapQueueMgr_create call initializes the shared memory as needed. Once an instance is created, a HeapQueueMgr_open can be performed. The open is used to gain access to the same HeapQueueMgr instance. Generally an instance is created on one processor and opened on the other processor(s).

The open returns a HeapQueueMgr instance handle like the create, however the open does not modify the shared memory.

The HeapBufQueueMgr header should be included in an application as follows:

  #include <ti/ipc/HeapBufQueueMgr.h>
Version:
0.00.01
#include <ti/ipc/GateMP.h>
Include dependency graph for HeapQueueMgr.h:

Go to the source code of this file.

Data Structures

struct | HeapQueueMgr_Params
Structure defining parameters for the HeapQueueMgr module. More...

Defines

#define | HeapQueueMgr_S_BUSY 2
The resource is still in use.
#define | HeapQueueMgr_S_ALREADYSETUP 1
The module has been already setup.
#define | HeapQueueMgr_S_SUCCESS 0
Operation is successful.
#define | HeapQueueMgr_E_FAIL -1
Generic failure.
#define | HeapQueueMgr_E_INVALIDARG -2
Argument passed to function is invalid.
#define | HeapQueueMgr_E_MEMORY -3
Operation resulted in memory failure.
#define | HeapQueueMgr_E_ALREADYEXISTS -4
The specified entity already exists.
#define | HeapQueueMgr_E_NOTFOUND -5
Unable to find the specified entity.
#define | HeapQueueMgr_E_TIMEOUT -6
Operation timed out.
#define | HeapQueueMgr_E_INVALIDSTATE -7
Module is not initialized.
#define | HeapQueueMgr_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | HeapQueueMgr_E_RESOURCE -9
Specified resource is not available.
#define | HeapQueueMgr_E_RESTART -10
Operation was interrupted. Please restart the operation.

Typedefs

typedef struct
HeapQueueMgr_Object * 		HeapQueueMgr_Handle
HeapQueueMgr_Handle type.
typedef struct HeapQueueMgr_Params | HeapQueueMgr_Params
Structure defining parameters for the HeapQueueMgr module.

Functions

Int | HeapQueueMgr_close (HeapQueueMgr_Handle *handlePtr)
Close a HeapQueueMgr instance.
HeapQueueMgr_Handle | HeapQueueMgr_create (const HeapQueueMgr_Params *params)
Create a HeapQueueMgr instance.
Int | HeapQueueMgr_delete (HeapQueueMgr_Handle *handlePtr)
Delete a created HeapQueueMgr instance.
Int | HeapQueueMgr_open (String name, HeapQueueMgr_Handle *handlePtr)
Open a created HeapQueueMgr instance.
Void | HeapQueueMgr_Params_init (HeapQueueMgr_Params *params)
Initialize a HeapQueueMgr parameters struct.
Void * | HeapQueueMgr_alloc (HeapQueueMgr_Handle handle, SizeT size, SizeT align)
Allocate a block of memory of specified size and alignment.
Void | HeapQueueMgr_free (HeapQueueMgr_Handle handle, Ptr block, SizeT size)
Frees a block of memory.
Void | HeapQueueMgr_getStats (HeapQueueMgr_Handle handle, Ptr stats)
Get memory statistics.

Define Documentation

#define HeapQueueMgr_S_BUSY 2

The resource is still in use.

#define HeapQueueMgr_S_ALREADYSETUP 1

The module has been already setup.

#define HeapQueueMgr_S_SUCCESS 0

Operation is successful.

#define HeapQueueMgr_E_FAIL -1

Generic failure.

#define HeapQueueMgr_E_INVALIDARG -2

Argument passed to function is invalid.

#define HeapQueueMgr_E_MEMORY -3

Operation resulted in memory failure.

#define HeapQueueMgr_E_ALREADYEXISTS -4

The specified entity already exists.

#define HeapQueueMgr_E_NOTFOUND -5

Unable to find the specified entity.

#define HeapQueueMgr_E_TIMEOUT -6

Operation timed out.

#define HeapQueueMgr_E_INVALIDSTATE -7

Module is not initialized.

#define HeapQueueMgr_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define HeapQueueMgr_E_RESOURCE -9

Specified resource is not available.

#define HeapQueueMgr_E_RESTART -10

Operation was interrupted. Please restart the operation.

Typedef Documentation

typedef struct HeapQueueMgr_Object* HeapQueueMgr_Handle

HeapQueueMgr_Handle type.

typedef struct HeapQueueMgr_Params HeapQueueMgr_Params

Structure defining parameters for the HeapQueueMgr module.

Function Documentation

Int HeapQueueMgr_close ( HeapQueueMgr_Handle * handlePtr )

Close a HeapQueueMgr instance.

Closing an instance will free local memory consumed by the opened instance. All opened instances should be closed before the instance is deleted.

Parameters:
handlePtr Pointer to handle returned from HeapQueueMgr_open
See also:
HeapQueueMgr_open
HeapQueueMgr_Handle HeapQueueMgr_create ( const HeapQueueMgr_Params * params )

Create a HeapQueueMgr instance.

Parameters:
params HeapQueueMgr parameters
Returns:
HeapQueueMgr Handle
Int HeapQueueMgr_delete ( HeapQueueMgr_Handle * handlePtr )

Delete a created HeapQueueMgr instance.

Parameters:
handlePtr Pointer to handle to delete.
Int HeapQueueMgr_open | ( | String | name,
 |  | HeapQueueMgr_Handle * | handlePtr
 | ) |  |

Open a created HeapQueueMgr instance.

Once an instance is created, an open can be performed. The open is used to gain access to the same HeapQueueMgr instance. Generally an instance is created on one processor and opened on the other processor.

The open returns a HeapQueueMgr instance handle like the create, however the open does not initialize the shared memory. The supplied name is used to identify the created instance.

Call HeapQueueMgr_close when the opened instance is not longer needed.

Parameters:
name | Name of created HeapQueueMgr instance
handlePtr | Pointer to HeapQueueMgr handle to be opened
Returns:
HeapQueueMgr status:
  • HeapQueueMgr_S_SUCCESS: Heap successfully opened
  • HeapQueueMgr_E_NOTFOUND: Heap is not yet ready to be opened.
  • HeapQueueMgr_E_FAIL: A general failure has occurred
See also:
HeapQueueMgr_close
Void HeapQueueMgr_Params_init ( HeapQueueMgr_Params * params )

Initialize a HeapQueueMgr parameters struct.

Parameters:
[out] params Pointer to GateMP parameters
Void* HeapQueueMgr_alloc | ( | HeapQueueMgr_Handle | handle,
 |  | SizeT | size,
 |  | SizeT | align
 | ) |  |

Allocate a block of memory of specified size and alignment.

The actual block returned may be larger than requested to satisfy alignment requirements.

HeapQueueMgr_alloc will lock the heap using the HeapQueueMgr gate while it traverses the list of free blocks to find a large enough block for the request.

Guidelines for using large heaps and multiple alloc() calls.

  • If possible, allocate larger blocks first. Previous allocations of small memory blocks can reduce the size of the blocks available for larger memory allocations.
  • Realize that alloc() can fail even if the heap contains a sufficient absolute amount of unalloccated space. This is because the largest free memory block may be smaller than total amount of unallocated memory.
Parameters:
handle | Handle to previously created/opened instance.
size | Size to be allocated (in MADUs)
align | Alignment for allocation (power of 2)
See also:
HeapQueueMgr_free
Void HeapQueueMgr_free | ( | HeapQueueMgr_Handle | handle,
 |  | Ptr | block,
 |  | SizeT | size
 | ) |  |

Frees a block of memory.

free() places the memory block specified by addr and size back into the free pool of the heap specified. The newly freed block is combined with any adjacent free blocks. The space is then available for further allocation by alloc().

HeapQueueMgr_free will lock the heap using the HeapQueueMgr gate if one is specified or the system GateMP if not.

Parameters:
handle | Handle to previously created/opened instance.
block | Block of memory to be freed.
size | Size to be freed (in MADUs)
See also:
HeapQueueMgr_alloc
Void HeapQueueMgr_getStats | ( | HeapQueueMgr_Handle | handle,
 |  | Ptr | stats
 | ) |  |

Get memory statistics.

Parameters:
[in] | handle | Handle to previously created/opened instance.
[out] | stats | Memory statistics structure
See also:


SysLink Application Programming Interface (API): HeapQueueMgr.h Source File

HeapQueueMgr.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2012, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * */
00072 #ifndef ti_ipc_HeapQueueMgr__include
00073 #define ti_ipc_HeapQueueMgr__include
00074
00075 #if defined (__cplusplus)
00076 extern "C" {
00077 #endif
00078
00079 #include <ti/ipc/GateMP.h>
00080
00081 /* =============================================================================
00082  *  All success and failure codes for the module
00083  * =============================================================================
00084  */
00085
00090 #define HeapQueueMgr_S_BUSY               2
00091
00096 #define HeapQueueMgr_S_ALREADYSETUP       1
00097
00102 #define HeapQueueMgr_S_SUCCESS            0
00103
00108 #define HeapQueueMgr_E_FAIL              -1
00109
00114 #define HeapQueueMgr_E_INVALIDARG        -2
00115
00120 #define HeapQueueMgr_E_MEMORY            -3
00121
00126 #define HeapQueueMgr_E_ALREADYEXISTS     -4
00127
00132 #define HeapQueueMgr_E_NOTFOUND          -5
00133
00138 #define HeapQueueMgr_E_TIMEOUT           -6
00139
00144 #define HeapQueueMgr_E_INVALIDSTATE      -7
00145
00149 #define HeapQueueMgr_E_OSFAILURE         -8
00150
00154 #define HeapQueueMgr_E_RESOURCE          -9
00155
00159 #define HeapQueueMgr_E_RESTART           -10
00160
00161 /* =============================================================================
00162  *  Structures & Enums
00163  * =============================================================================
00164  */
00165
00169 typedef struct HeapQueueMgr_Object *HeapQueueMgr_Handle;
00170
00174 typedef struct HeapQueueMgr_Params {
00175     String name;
00186     UInt16 regionId;
00194     Ptr sharedAddr;
00205     SizeT blockSize;
00218     UInt numBlocks;
00224 } HeapQueueMgr_Params;
00225
00226
00227 /* =============================================================================
00228  *  HeapQueueMgr Module-wide Functions
00229  * =============================================================================
00230  */
00231
00243 Int HeapQueueMgr_close(HeapQueueMgr_Handle *handlePtr);
00244
00252 HeapQueueMgr_Handle HeapQueueMgr_create(const HeapQueueMgr_Params *params);
00253
00259 Int HeapQueueMgr_delete(HeapQueueMgr_Handle *handlePtr);
00260
00285 Int HeapQueueMgr_open(String name, HeapQueueMgr_Handle *handlePtr);
00286
00288 Int HeapQueueMgr_openByAddr(Ptr sharedAddr, HeapQueueMgr_Handle *handlePtr);
00289
00298 Void HeapQueueMgr_Params_init(HeapQueueMgr_Params *params);
00299
00309 SizeT HeapQueueMgr_sharedMemReq(const HeapQueueMgr_Params *params);
00310
00313 /* =============================================================================
00314  *  HeapQueueMgr Per-instance Functions
00315  * =============================================================================
00316  */
00317
00343 Void *HeapQueueMgr_alloc(HeapQueueMgr_Handle handle, SizeT size,
00344                          SizeT align);
00345
00363 Void HeapQueueMgr_free(HeapQueueMgr_Handle handle, Ptr block, SizeT size);
00364
00373 Void HeapQueueMgr_getStats(HeapQueueMgr_Handle handle, Ptr stats);
00374
00375 #if defined (__cplusplus)
00376 }
00377 #endif /* defined (__cplusplus) */
00378 #endif /* ti_ipc_HeapQueueMgr__include */
00379
00380 /*
00381  */
00382
00383 /*
00384  *  @(#) ti.ipc; 1, 0, 0, 0,1; 5-22-2012 16:16:05; /db/vtree/library/trees/ipc/ipc-h32/src/ xlibrary
00385
00386  */
00387


SysLink Application Programming Interface (API): IGateProvider.h File Reference

Data Structures | Defines | Typedefs

IGateProvider.h File Reference

Detailed Description

Interface implemented by all gate providers.

Gates are used serialize access to data structures that are used by more than one thread.

Gates are responsible for ensuring that only one out of multiple threads can access a data structure at a time. There are important scheduling latency and performance considerations that affect the "type" of gate used to protect each data structure. For example, the best way to protect a shared counter is to simply disable all interrupts before the update and restore the interrupt state after the update; disabling all interrupts prevents all thread switching, so the update is guaranteed to be "atomic". Although highly efficient, this method of creating atomic sections causes serious system latencies when the time required to update the data structure can't be bounded.

For example, a memory manager's list of free blocks can grow indefinitely long during periods of high fragmentation. Searching such a list with interrupts disabled would cause system latencies to also become unbounded. In this case, the best solution is to provide a gate that suspends the execution of threads that try to enter a gate that has already been entered; i.e., the gate "blocks" the thread until the thread already in the gate leaves. The time required to enter and leave the gate is greater than simply enabling and restoring interrupts, but since the time spent within the gate is relatively large, the overhead caused by entering and leaving gates will not become a significant percentage of overall system time. More importantly, threads that do not need to access the shared data structure are completely unaffected by threads that do access it.

#include <ti/syslink/utils/Trace.h>
Include dependency graph for IGateProvider.h:

Go to the source code of this file.

Data Structures

struct | IGateProvider_Object

Defines

#define | IGateProvider_NULL (IGateProvider_Handle)0xFFFFFFFF
#define | IGateProvider_Q_BLOCKING 1
#define | IGateProvider_Q_PREEMPTING 2
#define | IGateProvider_SuperObject
#define | IGateProvider_ObjectInitializer(x, y)

Typedefs

typedef IArg(* | IGateProvider_ENTER )(Void *)
typedef Void(* | IGateProvider_LEAVE )(Void *, IArg)
typedef struct IGateProvider_Object | IGateProvider_Object
typedef struct
IGateProvider_Object * 		IGateProvider_Handle

Define Documentation

#define IGateProvider_NULL (IGateProvider_Handle)0xFFFFFFFF

Invalid Igate

#define IGateProvider_Q_BLOCKING 1

======== IGateProvider_Q_BLOCKING ======== Blocking quality

Gates with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.

#define IGateProvider_Q_PREEMPTING 2

======== IGateProvider_Q_PREEMPTING ======== Preempting quality

Gates with this "quality" allow other threads to preempt the thread that has already entered the gate.

#define IGateProvider_SuperObject
Value:
IGateProvider_ENTER enter;      \
        IGateProvider_LEAVE leave

======== IGateProvider_SuperObject ======== Object embedded in other Gate modules. (Inheritance)

#define IGateProvider_ObjectInitializer | ( | x,
 |  | y
 | ) |
Value:
((IGateProvider_Handle)(x))->enter = (IGateProvider_ENTER)y##_enter;   \
        ((IGateProvider_Handle)(x))->leave = (IGateProvider_LEAVE)y##_leave;

Typedef Documentation

typedef IArg(* IGateProvider_ENTER)(Void *)

Prototype of enter function

typedef Void(* IGateProvider_LEAVE)(Void *, IArg)

Prototype of leave function

typedef struct IGateProvider_Object IGateProvider_Object

Structure for generic gate instance

typedef struct IGateProvider_Object * IGateProvider_Handle


SysLink Application Programming Interface (API): IGateProvider.h Source File

IGateProvider.h

Go to the documentation of this file.
00001
00037 /*
00038  *  ============================================================================
00039  *
00040  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00041  *
00042  *  Redistribution and use in source and binary forms, with or without
00043  *  modification, are permitted provided that the following conditions
00044  *  are met:
00045  *
00046  *  *  Redistributions of source code must retain the above copyright
00047  *     notice, this list of conditions and the following disclaimer.
00048  *
00049  *  *  Redistributions in binary form must reproduce the above copyright
00050  *     notice, this list of conditions and the following disclaimer in the
00051  *     documentation and/or other materials provided with the distribution.
00052  *
00053  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00054  *     its contributors may be used to endorse or promote products derived
00055  *     from this software without specific prior written permission.
00056  *
00057  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00058  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00059  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00060  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00061  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00062  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00063  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00064  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00065  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00066  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00067  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00068  *  Contact information for paper mail:
00069  *  Texas Instruments
00070  *  Post Office Box 655303
00071  *  Dallas, Texas 75265
00072  *  Contact information:
00073  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00074  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00075  *  ============================================================================
00076  *
00077  */
00078
00079
00080
00081 #ifndef __IGATEPROVIDER_H__
00082 #define __IGATEPROVIDER_H__
00083
00084 #include <ti/syslink/utils/Trace.h>
00085
00086 #if defined (__cplusplus)
00087 extern "C" {
00088 #endif
00089
00090
00091 /* -----------------------------------------------------------------------------
00092  *  Macros
00093  * -----------------------------------------------------------------------------
00094  */
00096 #define IGateProvider_NULL      (IGateProvider_Handle)0xFFFFFFFF
00097
00105 #define IGateProvider_Q_BLOCKING 1
00106
00114 #define IGateProvider_Q_PREEMPTING 2
00115
00120 #define IGateProvider_SuperObject       \
00121         IGateProvider_ENTER enter;      \
00122         IGateProvider_LEAVE leave
00123
00124
00128 #define IGateProvider_ObjectInitializer(x,y)                                   \
00129         ((IGateProvider_Handle)(x))->enter = (IGateProvider_ENTER)y##_enter;   \
00130         ((IGateProvider_Handle)(x))->leave = (IGateProvider_LEAVE)y##_leave;
00131
00132 /* -----------------------------------------------------------------------------
00133  *  Defines
00134  * -----------------------------------------------------------------------------
00135  */
00137 typedef IArg (*IGateProvider_ENTER) (Void *);
00138
00140 typedef Void (*IGateProvider_LEAVE) (Void *, IArg);
00141
00142
00143 /* -----------------------------------------------------------------------------
00144  *  Structs & Enums
00145  * -----------------------------------------------------------------------------
00146  */
00150 typedef struct IGateProvider_Object {
00151         IGateProvider_SuperObject;
00152 } IGateProvider_Object, *IGateProvider_Handle;
00153
00154
00155 /* -----------------------------------------------------------------------------
00156  *  APIs
00157  * -----------------------------------------------------------------------------
00158  */
00179 static inline IArg IGateProvider_enter (IGateProvider_Handle  handle)
00180 {
00181     IArg key = 0;
00182
00183     GT_assert (curTrace, ((IGateProvider_Object *) handle != NULL));
00184     if (handle != 0x0 && handle != IGateProvider_NULL) { //fix
00185         key = (handle->enter) ((void *)handle);
00186     }
00187     return key;
00188 }
00189
00190
00207 static inline Void IGateProvider_leave (IGateProvider_Handle  handle, IArg key)
00208 {
00209     GT_assert (curTrace, ((IGateProvider_Object *) handle != NULL));
00210     if (handle != 0x0 && handle != IGateProvider_NULL) //fix
00211         (handle->leave) ((void *)handle, key);
00212 }
00213
00214
00215 #if defined (__cplusplus)
00216 }
00217 #endif /* defined (__cplusplus) */
00218
00219
00220 #endif /* ifndef __IGATEPROVIDER_H__ */
00221


SysLink Application Programming Interface (API): IHeap.h File Reference

Data Structures | Typedefs

IHeap.h File Reference

Detailed Description

Defines Heap based memory allocator.

Heap implementation that manages fixed size buffers that can be used in a multiprocessor system with shared memory.

The Heap manager provides functions to allocate and free storage from a heap of type Heap which inherits from IHeap. Heap manages a single fixed-size buffer, split into equally sized allocable blocks.

The Heap manager is intended as a very fast memory manager which can only allocate blocks of a single size. It is ideal for managing a heap that is only used for allocating a single type of object, or for objects that have very similar sizes.

This module is instance based. Each instance requires shared memory (for the buffers and other internal state). This is specified via the sharedAddr parameter to the create. The proper sharedAddrSize parameter can be determined via the sharedMemReq call. Note: the parameters to this function must be the same that will used to create the instance.

The Heap module uses a NameServer instance to store instance information when an instance is created and the name parameter is non-NULL. If a name is supplied, it must be unique for all Heap instances.

The create initializes the shared memory as needed. The shared memory must be initialized to 0 before the Heap instance is created or opened.

Once an instance is created, an open can be performed. The open is used to gain access to the same Heap instance. Generally an instance is created on one processor and opened on the other processor(s).

The open returns a Heap instance handle like the create, however the open does not modify the shared memory.

There are two options when opening the instance: -Supply the same name as specified in the create. The Heap module queries the NameServer to get the needed information. -Supply the same sharedAddr value as specified in the create.

If the open is called before the instance is created, open returns NULL.

Constraints: -Align parameter must be a power of 2. -The buffer passed to dynamically create a Heap must be aligned according to the alignment parameter, and must be large enough to account for the actual block size after it has been rounded up to a multiple of the alignment.

#include <ti/syslink/utils/MemoryDefs.h>
#include <ti/syslink/utils/Trace.h>
Include dependency graph for IHeap.h:

Go to the source code of this file.

Data Structures

struct | IHeap_Object_tag
Structure for the Handle for the Heap. More...

Typedefs

typedef struct IHeap_Object_tag | IHeap_Object
Forward declaration of structure defining object for the Heap module.
typedef IHeap_Object * | IHeap_Handle
Handle for the Heap Buf.
typedef Ptr(* | IHeap_allocFxn )(IHeap_Handle handle, SizeT size, SizeT align)
Type for function pointer to allocate a memory block.
typedef Void(* | IHeap_freeFxn )(IHeap_Handle handle, Ptr block, SizeT size)
Type for function pointer to free a memory block.
typedef Void(* | IHeap_getStatsFxn )(IHeap_Handle handle, Memory_Stats *stats)
Type for function pointer to get memory related statistics.
typedef Bool(* | IHeap_isBlockingFxn )(IHeap_Handle handle)
typedef Ptr(* | IHeap_getKnlHandleFxn )(IHeap_Handle handle)
Type for function pointer to get handle to kernel object.

Typedef Documentation

typedef struct IHeap_Object_tag IHeap_Object

Forward declaration of structure defining object for the Heap module.

typedef IHeap_Object* IHeap_Handle

Handle for the Heap Buf.

typedef Ptr(* IHeap_allocFxn)(IHeap_Handle handle, SizeT size, SizeT align)

Type for function pointer to allocate a memory block.

typedef Void(* IHeap_freeFxn)(IHeap_Handle handle, Ptr block, SizeT size)

Type for function pointer to free a memory block.

typedef Void(* IHeap_getStatsFxn)(IHeap_Handle handle, Memory_Stats *stats)

Type for function pointer to get memory related statistics.

typedef Bool(* IHeap_isBlockingFxn)(IHeap_Handle handle)
typedef Ptr(* IHeap_getKnlHandleFxn)(IHeap_Handle handle)

Type for function pointer to get handle to kernel object.


SysLink Application Programming Interface (API): IHeap.h Source File

IHeap.h

Go to the documentation of this file.
00001
00061 /*
00062  *  ============================================================================
00063  *
00064  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00065  *
00066  *  Redistribution and use in source and binary forms, with or without
00067  *  modification, are permitted provided that the following conditions
00068  *  are met:
00069  *
00070  *  *  Redistributions of source code must retain the above copyright
00071  *     notice, this list of conditions and the following disclaimer.
00072  *
00073  *  *  Redistributions in binary form must reproduce the above copyright
00074  *     notice, this list of conditions and the following disclaimer in the
00075  *     documentation and/or other materials provided with the distribution.
00076  *
00077  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00078  *     its contributors may be used to endorse or promote products derived
00079  *     from this software without specific prior written permission.
00080  *
00081  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00082  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00083  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00084  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00085  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00086  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00087  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00088  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00089  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00090  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00091  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00092  *  Contact information for paper mail:
00093  *  Texas Instruments
00094  *  Post Office Box 655303
00095  *  Dallas, Texas 75265
00096  *  Contact information:
00097  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00098  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00099  *  ============================================================================
00100  *
00101  */
00102
00103
00104
00105 #ifndef HEAP_H_0x7033
00106 #define HEAP_H_0x7033
00107
00108
00109 /* OSAL and utils */
00110 #include <ti/syslink/utils/MemoryDefs.h>
00111 #include <ti/syslink/utils/Trace.h>
00112
00113
00114 #if defined (__cplusplus)
00115 extern "C" {
00116 #endif
00117
00118
00119 /* =============================================================================
00120  *  Forward declarations
00121  * =============================================================================
00122  */
00126 typedef struct IHeap_Object_tag IHeap_Object;
00127
00131 typedef IHeap_Object * IHeap_Handle;
00132
00133
00134 /* =============================================================================
00135  *  Function pointer types for heap operations
00136  * =============================================================================
00137  */
00139 typedef Ptr (*IHeap_allocFxn) (IHeap_Handle    handle,
00140                                SizeT           size,
00141                                SizeT           align);
00142
00144 typedef Void (*IHeap_freeFxn) (IHeap_Handle handle,
00145                                Ptr          block,
00146                                SizeT        size);
00147
00149 typedef Void (*IHeap_getStatsFxn) (IHeap_Handle    handle,
00150                                    Memory_Stats  * stats);
00151
00152 /*
00153  * ! @brief Type for function pointer to indicate whether the heap may block
00154  *          during an alloc or free call
00155  */
00156 typedef Bool (*IHeap_isBlockingFxn) (IHeap_Handle handle);
00157
00159 typedef Ptr (*IHeap_getKnlHandleFxn) (IHeap_Handle handle);
00160
00161
00162 /* =============================================================================
00163  * Structures & Enums
00164  * =============================================================================
00165  */
00169 struct IHeap_Object_tag {
00170     IHeap_allocFxn               alloc;
00172     IHeap_freeFxn                free;
00174     IHeap_getStatsFxn            getStats;
00176     IHeap_isBlockingFxn          isBlocking;
00178     IHeap_getKnlHandleFxn        getKnlHandle;
00180     Ptr                          obj;
00182 };
00183
00184
00185 /* =============================================================================
00186  *  APIs
00187  * =============================================================================
00188  */
00200 static inline Ptr IHeap_alloc (IHeap_Handle    handle,
00201                                SizeT           size,
00202                                SizeT           align)
00203 {
00204     Ptr buffer;
00205
00206     GT_assert (curTrace, (((IHeap_Object *) handle)->alloc != NULL));
00207     buffer = ((IHeap_Object *) handle)->alloc (handle, size, align);
00208     return (buffer);
00209 }
00210
00211
00221 static inline Void IHeap_free (IHeap_Handle handle,
00222                                Ptr          block,
00223                                SizeT        size)
00224 {
00225     GT_assert (curTrace, (((IHeap_Object *) handle)->free != NULL));
00226     ((IHeap_Object *) handle)->free (handle, block, size);
00227 }
00228
00229
00238 static inline Void IHeap_getStats (IHeap_Handle    handle,
00239                                    Memory_Stats  * stats)
00240 {
00241     GT_assert (curTrace, (((IHeap_Object *) handle)->getStats != NULL));
00242     ((IHeap_Object *) handle)->getStats (handle, stats);
00243 }
00244
00245
00256 static inline Bool IHeap_isBlocking (IHeap_Handle    handle)
00257 {
00258     Bool isBlocking;
00259     GT_assert (curTrace, (((IHeap_Object *) handle)->isBlocking != NULL));
00260     isBlocking = ((IHeap_Object *) handle)->isBlocking (handle);
00261     return (isBlocking);
00262 }
00263
00264
00276 static inline Ptr IHeap_getKnlHandle (IHeap_Handle    handle)
00277 {
00278     Ptr knlHandle;
00279     GT_assert (curTrace, (((IHeap_Object *) handle)->getKnlHandle != NULL));
00280     knlHandle = ((IHeap_Object *) handle)->getKnlHandle (handle);
00281     return (knlHandle);
00282 }
00283
00284
00285 #if defined (__cplusplus)
00286 }
00287 #endif /* defined (__cplusplus) */
00288
00289
00290 #endif /* HEAP_H_0x7033 */
00291


SysLink Application Programming Interface (API): Ipc.h File Reference

Defines | Functions

Ipc.h File Reference

Detailed Description

Ipc Manager.

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

This module is primarily used to configure IPC, synchronize processors, and initialize the IPC runtime. The memory for SharedRegion zero must be valid before Ipc_start() can be called. Ipc_start() must be called before any other IPC APIs are used.

The Ipc header should be included in an application as follows:

  #include <ti/ipc/Ipc.h>

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

Go to the source code of this file.

Defines

#define | Ipc_S_BUSY 2
The resource is still in use.
#define | Ipc_S_ALREADYSETUP 1
The module has been already setup.
#define | Ipc_S_SUCCESS 0
Operation is successful.
#define | Ipc_E_FAIL -1
Generic failure.
#define | Ipc_E_INVALIDARG -2
Argument passed to function is invalid.
#define | Ipc_E_MEMORY -3
Operation resulted in memory failure.
#define | Ipc_E_ALREADYEXISTS -4
The specified entity already exists.
#define | Ipc_E_NOTFOUND -5
Unable to find the specified entity.
#define | Ipc_E_TIMEOUT -6
Operation timed out.
#define | Ipc_E_INVALIDSTATE -7
Module is not initialized or in an invalid state.
#define | Ipc_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | Ipc_E_RESOURCE -9
Specified resource is not available.
#define | Ipc_E_RESTART -10
Operation was interrupted. Please restart the operation.
#define | Ipc_E_NOTREADY -11
Operation was not ready.

Functions

Int | Ipc_attach (UInt16 remoteProcId)
Attach to remote processor.
Int | Ipc_detach (UInt16 remoteProcId)
Detach from the remote processor.
Bool | Ipc_isAttached (UInt16 remoteProcId)
Query whether attached to a remote processor.
Int | Ipc_readConfig (UInt16 remoteProcId, UInt32 tag, Ptr cfg, SizeT size)
Reads the config entry from the config area.
Int | Ipc_start (Void)
Reserves memory, creates default GateMP and HeapMemMP.
Int | Ipc_stop (Void)
Resets the Ipc state.
Int | Ipc_writeConfig (UInt16 remoteProcId, UInt32 tag, Ptr cfg, SizeT size)
Writes the config entry to the config area.

Define Documentation

#define Ipc_S_BUSY 2

The resource is still in use.

#define Ipc_S_ALREADYSETUP 1

The module has been already setup.

#define Ipc_S_SUCCESS 0

Operation is successful.

#define Ipc_E_FAIL -1

Generic failure.

#define Ipc_E_INVALIDARG -2

Argument passed to function is invalid.

#define Ipc_E_MEMORY -3

Operation resulted in memory failure.

#define Ipc_E_ALREADYEXISTS -4

The specified entity already exists.

#define Ipc_E_NOTFOUND -5

Unable to find the specified entity.

#define Ipc_E_TIMEOUT -6

Operation timed out.

#define Ipc_E_INVALIDSTATE -7

Module is not initialized or in an invalid state.

#define Ipc_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define Ipc_E_RESOURCE -9

Specified resource is not available.

#define Ipc_E_RESTART -10

Operation was interrupted. Please restart the operation.

#define Ipc_E_NOTREADY -11

Operation was not ready.

Function Documentation

Int Ipc_attach ( UInt16 remoteProcId )

Attach to remote processor.

This function uses shared memory to synchronize self with the remote processor. Both processors must call this function to attach to each other. Ipc_start() must be called before calling Ipc_attach(). A processor must attach to the owner of SharedRegion zero before it can successfully attach to another processor. Attempting to attach to another processor first returns Ipc_E_FAIL.

This function opens the default GateMP and SharedRegion zero heap. The Notify, NameServerRemoteNotify, and MessageQ transport instances are created for communicating with the specified remote processor in SharedRegion zero heap. The user's Ipc attach function is called.

For BIOS, this function should be called within a 'while' loop within a Task. A Task_sleep() or Task_yield() should be called within the loop to allow other threads in the system to execute. This function needs to be called in a loop because the remote processor may not be in a ready state.

Note: For BIOS, if the config parameter Ipc.procSync is set to Ipc.ProcSync_ALL, there is no need to call this function as it is internally called by Ipc_start().

  while (Ipc_attach(remoteProcId) < 0) {
      Task_sleep(1);
  }
Parameters:
remoteProcId remote processor's MultiProc id
Returns:
Status
  • Ipc_S_SUCCESS: attach was successful
  • Ipc_S_ALREADYSETUP: already attached
  • Ipc_E_MEMORY: operation failed due to a memory error
  • Ipc_E_FAIL: General failure
  • Ipc_E_NOTREADY: remote processor not ready
See also:
Ipc_detach Ipc_isAttached
Int Ipc_detach ( UInt16 remoteProcId )

Detach from the remote processor.

A processor must detach from all other processors before it can successfully detach from the owner of SharedRegion zero. Attempting to detach from the owner of SharedRegion zero first returns Ipc_E_FAIL.

If a processor successfully attached to a remote processor 'N' times, it must call Ipc_detach 'N' times to be completely detached. Ipc_detach returns Ipc_S_BUSY for the first 'N - 1' times its called. Ipc_detach returns Ipc_S_SUCCESS, if successful, on the 'N' time its called. If called on a remote processor that is detached, Ipc_S_SUCCESS is returned.

This function should be called within a loop to make sure the processor successfully detached from the remote processor. If called from the processor with the bigger procId, this function closes the instances created for communicating with the specified remote processor. If called from the processor with the smaller procId, this function returns Ipc_E_NOTREADY while the processor with the bigger procId has not finished detaching. Once the processor with the bigger procId is finished detaching, this function deletes the instances created for communicating with the specified remote processor.

For BIOS, this function should be called within a 'while' loop in a Task because the slave may have to wait for the master to detach. Furthermore, a Task_sleep() or Task_yield() should be called within the same 'while' loop to allow other threads in the system to execute.

  while (TRUE) {
      status = Ipc_detach(remoteProcId);
      if (status == Ipc_E_NOTREADY) {
          Task_sleep(1);
      }
      else if (status < 0) {
          System_printf("Ipc_detach failed \n");
          break;
      }
      else {
          break;
      }
  }
Parameters:
remoteProcId remote processor's MultiProc id
Returns:
Status
  • Ipc_S_SUCCESS: operation was successful
  • Ipc_S_BUSY: attach count != 0
  • Ipc_E_FAIL: operation failed
  • Ipc_E_NOTREADY: processor not ready to detach
See also:
Ipc_attach Ipc_isAttached
Bool Ipc_isAttached ( UInt16 remoteProcId )

Query whether attached to a remote processor.

Returns TRUE if attached to a remote processor and FALSE otherwise. If remoteProcId == MultiProc_self(), FALSE is always returned.

Parameters:
remoteProcId remote processor's MultiProc id
Returns:
TRUE if attached, FALSE if not attached
See also:
Ipc_attach Ipc_detach
Int Ipc_readConfig | ( | UInt16 | remoteProcId,
 |  | UInt32 | tag,
 |  | Ptr | cfg,
 |  | SizeT | size
 | ) |  |

Reads the config entry from the config area.

For more information about this API, refer to the documentation for Ipc_writeConfig

Parameters:
remoteProcId | remote processor's MultiProc id
tag | tag to identify a config entry
cfg | address where the entry will be copied
size | size of config entry
Returns:
Status
  • Ipc_S_SUCCESS: operation was successful
  • Ipc_E_FAIL: operation failed
See also:
Ipc_writeConfig
Int Ipc_start ( Void )

Reserves memory, creates default GateMP and HeapMemMP.

This function needs to be called before Ipc_attach(). It should only be called once, unless the return value is Ipc_E_NOTREADY. This indicates that either the SharedRegion zero is not valid or has not been setup yet so Ipc_start may be called again. Once sucessfully started, subsequent calls returns Ipc_S_ALREADYSETUP.

Ipc reserves some shared memory in SharedRegion zero for synchronization. GateMP reserves some shared memory for managing the gates and for the default GateMP. The same amount of memory must be reserved by each processor, but only the owner of SharedRegion zero clears the reserved memory and creates the default GateMP. The default heap for each SharedRegion is created by the owner of each SharedRegion.

Note: For BIOS, if the config parameter Ipc.procSync is set to Ipc.ProcSync_ALL, this function calls Ipc_attach() internally.

Returns:
Status
  • Ipc_S_SUCCESS: operation was successful
  • Ipc_S_ALREADYSETUP: already successfully called
  • Ipc_E_NOTREADY: shared memory is not ready
  • Ipc_E_FAIL: operation failed
Int Ipc_stop ( Void )

Resets the Ipc state.

This function should be called only once and only after detaching from all processors. Once called, Ipc is placed back to the same state as it was before Ipc_start() was called.

Returns:
Status
  • Ipc_S_SUCCESS: operation was successful
Int Ipc_writeConfig | ( | UInt16 | remoteProcId,
 |  | UInt32 | tag,
 |  | Ptr | cfg,
 |  | SizeT | size
 | ) |  |

Writes the config entry to the config area.

The Ipc_writeConfig and Ipc_readConfig APIs are used to pass configuration information from one core to another. This 'information' is passed via a pointer to shared memory with a given size and is identified via a unique tag. A typical use case of this API would be passing configuration information from a Slave core to the Host at startup-time. For example, if MessageQ is used, this information might include the queue name, message heap sizes, etc.

The APIs will write into SharedRegion 0 (SR0) and will use the tag to uniquely identify the structure (cfg) and size written into SR0 which both sides must agree on.

Parameters:
remoteProcId | remote processor's MultiProc id
tag | tag to identify a config entry
cfg | address where the entry will be copied
size | size of config entry
Returns:
Status
  • Ipc_S_SUCCESS: if operation was successful
  • Ipc_E_FAIL: if operation failed
See also:
Ipc_readConfig


SysLink Application Programming Interface (API): Ipc.h Source File

Ipc.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2012, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * */
00050 #ifndef ti_ipc_Ipc__include
00051 #define ti_ipc_Ipc__include
00052
00053 #if defined (__cplusplus)
00054 extern "C" {
00055 #endif
00056
00057 /* =============================================================================
00058  *  All success and failure codes for the module
00059  * =============================================================================
00060  */
00061
00066 #define Ipc_S_BUSY              2
00067
00072 #define Ipc_S_ALREADYSETUP      1
00073
00078 #define Ipc_S_SUCCESS           0
00079
00084 #define Ipc_E_FAIL             -1
00085
00090 #define Ipc_E_INVALIDARG       -2
00091
00096 #define Ipc_E_MEMORY           -3
00097
00102 #define Ipc_E_ALREADYEXISTS    -4
00103
00108 #define Ipc_E_NOTFOUND         -5
00109
00114 #define Ipc_E_TIMEOUT          -6
00115
00120 #define Ipc_E_INVALIDSTATE     -7
00121
00126 #define Ipc_E_OSFAILURE        -8
00127
00132 #define Ipc_E_RESOURCE         -9
00133
00138 #define Ipc_E_RESTART          -10
00139
00144 #define Ipc_E_NOTREADY         -11
00145
00146
00147 /* =============================================================================
00148  *  Ipc Module-wide Functions
00149  * =============================================================================
00150  */
00151
00195 Int Ipc_attach(UInt16 remoteProcId);
00196
00252 Int Ipc_detach(UInt16 remoteProcId);
00253
00266 Bool Ipc_isAttached(UInt16 remoteProcId);
00267
00285 Int Ipc_readConfig(UInt16 remoteProcId, UInt32 tag, Ptr cfg, SizeT size);
00286
00312 Int Ipc_start(Void);
00313
00324 Int Ipc_stop(Void);
00325
00352 Int Ipc_writeConfig(UInt16 remoteProcId, UInt32 tag, Ptr cfg, SizeT size);
00353
00354 #if defined (__cplusplus)
00355 }
00356 #endif /* defined (__cplusplus) */
00357
00358 #endif /* ti_ipc_Ipc__include */
00359
00360 /*
00361  */
00362
00363 /*
00364  *  @(#) ti.ipc; 1, 0, 0, 0,1; 5-22-2012 16:16:05; /db/vtree/library/trees/ipc/ipc-h32/src/ xlibrary
00365
00366  */
00367


SysLink Application Programming Interface (API): IpcHost.h File Reference

Defines | Functions

IpcHost.h File Reference

Detailed Description

This file contains APIs and defines that are used by applications only on the host-side of the device.

Remarks:
The typical flow for an IPC-using application is to first load the processor (typically via slaveloader or the ProcMgr APIs), and then use the Ipc_control() API to attach/detach from the running slave.
Example:
      // invoke the SysLink load callback
      remoteProcId = MultiProc_getId("DSP");
      status = Ipc_control(remoteProcId, Ipc_CONTROLCMD_LOADCALLBACK, NULL);

      // invoke the SysLink start callback
      status = Ipc_control(remoteProcId, Ipc_CONTROLCMD_STARTCALLBACK, NULL);

      // IPC is established, app-specific code is here

      // invoke the SysLink stop callback
      status = Ipc_control(remoteProcId, Ipc_CONTROLCMD_STOPCALLBACK, NULL);

Go to the source code of this file.

Defines

#define | Ipc_CONTROLCMD_LOADCALLBACK (0xBABE0000)
Control command ID for load callback.
#define | Ipc_CONTROLCMD_STARTCALLBACK (0xBABE0001)
Control command ID for start callback.
#define | Ipc_CONTROLCMD_STOPCALLBACK (0xBABE0002)
Control command ID for stop callback.

Functions

Int | Ipc_control (UInt16 procId, Int32 cmdId, Ptr arg)
Perform IPC-related control operations with a specific slave.
Int | Ipc_runtimeId (UInt8 *rtid)
Return a runtime id for the given application key.

Define Documentation

#define Ipc_CONTROLCMD_LOADCALLBACK (0xBABE0000)

Control command ID for load callback.

Remarks:
This command must be sent (via Ipc_control()) before using IPC with the slave, and after loading the slave.
This call ensures resources (e.g. Shared Region 0) are visible to the slave (for example, by enabling the slave-side MMU). This call then typically enables the slave-side call to Ipc_start() to succeed.
When ProcMgr is used to load the slave (the typical case), the arg passed to Ipc_control() should be NULL.
When ProcMgr is not used to load the slave (supported, but not the typical case), the arg passed to Ipc_control() must be a pointer to the slave-side address of the _Ipc_ResetVector symbol. This is often obtained by inspecting the slave-side executable's .map file.
See also:
Ipc_control()
#define Ipc_CONTROLCMD_STARTCALLBACK (0xBABE0001)

Control command ID for start callback.

Remarks:
This command must be sent (via Ipc_control()) before using IPC with the slave, and after sending the Ipc_CONTROLCMD_LOADCALLBACK command.
This call performs a handshake with the slave processor, typically enabling the slave-side call to Ipc_attach() to succeed.
When sending this command, the arg passed to Ipc_control() should be NULL.
See also:
Ipc_control()
#define Ipc_CONTROLCMD_STOPCALLBACK (0xBABE0002)

Control command ID for stop callback.

Remarks:
This command must be sent (via Ipc_control()) to detach from an attached slave.
This call first performs a handshake with the slave processor, typically enabling the slave-side calls to Ipc_detach() and Ipc_stop() to succeed. It then may make resources (e.g. Shared Region 0) inaccessible to the slave (for example by disabling the slave's MMU).
When ProcMgr is used to load the slave (the typical case), the arg passed to Ipc_control() should be NULL.
When ProcMgr is not used to load the slave (supported, but not the typical case), the arg passed to Ipc_control() must be a pointer to the slave-side address of the _Ipc_ResetVector symbol. This is often obtained by inspecting the slave-side executable's .map file.
See also:
Ipc_control()

Function Documentation

Int Ipc_control | ( | UInt16 | procId,
 |  | Int32 | cmdId,
 |  | Ptr | arg
 | ) |  |

Perform IPC-related control operations with a specific slave.

Parameters:
[in] | procId | Remote processor ID
[in] | cmdId | Command ID
[in] | arg | Argument. The value of arg depends on the command being sent in cmdId.
Remarks:
Each specific cmdId describes its usage of the arg param.
See also:
Ipc_CONTROLCMD_LOADCALLBACK
Ipc_CONTROLCMD_STARTCALLBACK
Ipc_CONTROLCMD_STOPCALLBACK
Int Ipc_runtimeId ( UInt8 * rtid )

Return a runtime id for the given application key.

When the application calls SysLink_setup(), there is an internal runtime id assigned to the application's process id. Use this API to retrieve the assigned runtime id. This API may be called multiple times but will always return the same runtime id for the current process id. This ensures that all levels of the software stack will be assigned the same runtime id.

There are 255 available runtime ids: 1 - 255. Runtime ids are allocated by looking for the next larger unused runtime id. The search will wrap around as needed.

Parameters:
[out] rtid Remote processor ID
Return values:
Ipc_S_SUCCESS | Operation succeeded
Ipc_E_FAIL | No more runtime ids available


SysLink Application Programming Interface (API): IpcHost.h Source File

IpcHost.h

Go to the documentation of this file.
00001
00009 /*
00010  *  ============================================================================
00011  *
00012  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00013  *
00014  *  Redistribution and use in source and binary forms, with or without
00015  *  modification, are permitted provided that the following conditions
00016  *  are met:
00017  *
00018  *  *  Redistributions of source code must retain the above copyright
00019  *     notice, this list of conditions and the following disclaimer.
00020  *
00021  *  *  Redistributions in binary form must reproduce the above copyright
00022  *     notice, this list of conditions and the following disclaimer in the
00023  *     documentation and/or other materials provided with the distribution.
00024  *
00025  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00026  *     its contributors may be used to endorse or promote products derived
00027  *     from this software without specific prior written permission.
00028  *
00029  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00030  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00031  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00032  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00033  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00034  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00035  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00036  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00037  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00038  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00039  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00040  *  Contact information for paper mail:
00041  *  Texas Instruments
00042  *  Post Office Box 655303
00043  *  Dallas, Texas 75265
00044  *  Contact information:
00045  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00046  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00047  *  ============================================================================
00048  *
00049  */
00050
00051
00052
00053 #ifndef _IPCHOST_H__
00054 #define _IPCHOST_H__
00055
00056
00057 #if defined (__cplusplus)
00058 extern "C" {
00059 #endif
00060
00108 #define Ipc_CONTROLCMD_LOADCALLBACK  (0xBABE0000)
00109
00110
00127 #define Ipc_CONTROLCMD_STARTCALLBACK (0xBABE0001)
00128
00129
00153 #define Ipc_CONTROLCMD_STOPCALLBACK  (0xBABE0002)
00154
00155
00170 Int Ipc_control (UInt16 procId, Int32 cmdId, Ptr arg);
00171
00191 Int Ipc_runtimeId(UInt8 *rtid);
00192
00193 #if defined (__cplusplus)
00194 }
00195 #endif /* defined (__cplusplus) */
00196
00197
00198 #endif /* _IPCHOST_H__ */


SysLink Application Programming Interface (API): IpcMemMgr.h File Reference

Data Structures | Defines | Typedefs | Enumerations | Functions

IpcMemMgr.h File Reference

Detailed Description

IPC Memory Manager.

This abstracts the IPC Memory Management interface. Supported functions include alloc, free, and copy. Additional features:

1. Process wide shared memory allocation. 2. Provides APIs to allocate kmalloc/vmalloc memory. 3. mmap/unmap. 4. translate

#include <ti/syslink/osal/OsalTypes.h>
Include dependency graph for IpcMemMgr.h:

Go to the source code of this file.

Data Structures

struct | IpcMemMgr_Config_t
Structure defining config parameters for overall System. More...

Defines

#define | IpcMemMgr_MODULEID (0x434D)
Unique module ID.
#define | IpcMemMgr_S_NOTLAST 2
#define | IpcMemMgr_S_ALREADYSETUP 1
#define | IpcMemMgr_S_SUCCESS 0
#define | IpcMemMgr_E_FAIL -1
#define | IpcMemMgr_E_INVALIDSTATE -2
#define | IpcMemMgr_E_INVALIDARG -3
#define | IpcMemMgr_E_MEMORY -4
#define | IpcMemMgr_E_OSFAILURE -5
#define | IpcMemMgr_E_TOOMANYNAMEDALLOCS -6
#define | IpcMemMgr_E_NOTFOUND -7
#define | IpcMemMgr_E_WRONGSIZE -8
#define | IpcMemMgr_SHAREDMEMNAME "/syslink_shm"
#define | IpcMemMgr_MAXNAMEDBUFFERS 256
#define | IpcMemMgr_MAX_NAMELEN 63

Typedefs

typedef struct IpcMemMgr_Config_t | IpcMemMgr_Config
Structure defining config parameters for overall System.
typedef UInt32 | IpcMemMgr_SHPtr
SharedRegion pointer type.

Enumerations

enum IpcMemMgr_MemType {
IpcMemMgr_ALLOCTYPE_PSHMEM = 0x00000,
IpcMemMgr_ALLOCTYPE_PHYS_CACHE = 0x00001,
IpcMemMgr_ALLOCTYPE_PHYS_NOCACHE = 0x00002,
IpcMemMgr_ALLOCTYPE_END = 0x00003
}

Functions

Void | IpcMemMgr_getConfig (IpcMemMgr_Config *config)
Int | IpcMemMgr_setup (IpcMemMgr_Config *cfg)
Int | IpcMemMgr_destroy (Void)
Ptr | IpcMemMgr_alloc (SizeT size)
Int | IpcMemMgr_acquire (String name, SizeT size, Ptr *addr, Bool *newAlloc)
Void | IpcMemMgr_free (Ptr adr, SizeT size)
Int | IpcMemMgr_release (String name)
Ptr | IpcMemMgr_getPtr (UInt32 offset)
UInt32 | IpcMemMgr_getOffset (Ptr vaddr)
Ptr | IpcMemMgr_allocShmemHeap (String name, UInt32 size, UInt32 align)
Int | IpcMemMgr_freeShmemHeap (Ptr buf, UInt32 size)
Int | IpcMemMgr_freeShmemHeapByName (String name)
IArg | IpcMemMgr_enterGate (Void)
Void | IpcMemMgr_leaveGate (IArg key)

Define Documentation

#define IpcMemMgr_MODULEID (0x434D)

Unique module ID.

#define IpcMemMgr_S_NOTLAST 2
#define IpcMemMgr_S_ALREADYSETUP 1
#define IpcMemMgr_S_SUCCESS 0
#define IpcMemMgr_E_FAIL -1
#define IpcMemMgr_E_INVALIDSTATE -2
#define IpcMemMgr_E_INVALIDARG -3
#define IpcMemMgr_E_MEMORY -4
#define IpcMemMgr_E_OSFAILURE -5
#define IpcMemMgr_E_TOOMANYNAMEDALLOCS -6
#define IpcMemMgr_E_NOTFOUND -7
#define IpcMemMgr_E_WRONGSIZE -8
#define IpcMemMgr_SHAREDMEMNAME "/syslink_shm"
#define IpcMemMgr_MAXNAMEDBUFFERS 256
#define IpcMemMgr_MAX_NAMELEN 63

Typedef Documentation

typedef struct IpcMemMgr_Config_t IpcMemMgr_Config

Structure defining config parameters for overall System.

typedef UInt32 IpcMemMgr_SHPtr

SharedRegion pointer type.

Enumeration Type Documentation

enum IpcMemMgr_MemType
Enumerator:
IpcMemMgr_ALLOCTYPE_PSHMEM
IpcMemMgr_ALLOCTYPE_PHYS_CACHE
IpcMemMgr_ALLOCTYPE_PHYS_NOCACHE
IpcMemMgr_ALLOCTYPE_END

Function Documentation

Void IpcMemMgr_getConfig ( IpcMemMgr_Config * config )
Int IpcMemMgr_setup ( IpcMemMgr_Config * cfg )
Int IpcMemMgr_destroy ( Void )
Ptr IpcMemMgr_alloc ( SizeT size )
Int IpcMemMgr_acquire | ( | String | name,
 |  | SizeT | size,
 |  | Ptr * | addr,
 |  | Bool * | newAlloc
 | ) |  |
Void IpcMemMgr_free | ( | Ptr | adr,
 |  | SizeT | size
 | ) |  |
Int IpcMemMgr_release ( String name )
Ptr IpcMemMgr_getPtr ( UInt32 offset )
UInt32 IpcMemMgr_getOffset ( Ptr vaddr )
Ptr IpcMemMgr_allocShmemHeap | ( | String | name,
 |  | UInt32 | size,
 |  | UInt32 | align
 | ) |  |
Int IpcMemMgr_freeShmemHeap | ( | Ptr | buf,
 |  | UInt32 | size
 | ) |  |
Int IpcMemMgr_freeShmemHeapByName ( String name )
IArg IpcMemMgr_enterGate ( Void )
Void IpcMemMgr_leaveGate ( IArg key )


SysLink Application Programming Interface (API): IpcMemMgr.h Source File

IpcMemMgr.h

Go to the documentation of this file.
00001
00016 /*
00017  *  ============================================================================
00018  *
00019  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00020  *
00021  *  Redistribution and use in source and binary forms, with or without
00022  *  modification, are permitted provided that the following conditions
00023  *  are met:
00024  *
00025  *  *  Redistributions of source code must retain the above copyright
00026  *     notice, this list of conditions and the following disclaimer.
00027  *
00028  *  *  Redistributions in binary form must reproduce the above copyright
00029  *     notice, this list of conditions and the following disclaimer in the
00030  *     documentation and/or other materials provided with the distribution.
00031  *
00032  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00033  *     its contributors may be used to endorse or promote products derived
00034  *     from this software without specific prior written permission.
00035  *
00036  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00037  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00038  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00039  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00040  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00041  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00042  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00043  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00044  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00045  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00046  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00047  *  Contact information for paper mail:
00048  *  Texas Instruments
00049  *  Post Office Box 655303
00050  *  Dallas, Texas 75265
00051  *  Contact information:
00052  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00053  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00054  *  ============================================================================
00055  *
00056  */
00057
00058
00059 #ifndef ti_syslink_utils_IpcMemMgr__include
00060 #define ti_syslink_utils_IpcMemMgr__include
00061
00062 #include <ti/syslink/osal/OsalTypes.h>
00063
00064 #if defined (__cplusplus)
00065 extern "C" {
00066 #endif
00067
00068
00069 /* =============================================================================
00070  * Macros
00071  * =============================================================================
00072  */
00076 #define IpcMemMgr_MODULEID               (0x434D)
00077
00078 #define IpcMemMgr_S_NOTLAST              2
00079 #define IpcMemMgr_S_ALREADYSETUP         1
00080 #define IpcMemMgr_S_SUCCESS              0
00081 #define IpcMemMgr_E_FAIL                -1
00082 #define IpcMemMgr_E_INVALIDSTATE        -2
00083 #define IpcMemMgr_E_INVALIDARG          -3
00084 #define IpcMemMgr_E_MEMORY              -4
00085 #define IpcMemMgr_E_OSFAILURE           -5
00086 #define IpcMemMgr_E_TOOMANYNAMEDALLOCS  -6
00087 #define IpcMemMgr_E_NOTFOUND            -7
00088 #define IpcMemMgr_E_WRONGSIZE           -8
00089
00090 #define IpcMemMgr_SHAREDMEMNAME         "/syslink_shm"
00091 #define IpcMemMgr_MAXNAMEDBUFFERS       256     /* max named buffers    */
00092 #define IpcMemMgr_MAX_NAMELEN           63      /* max name length      */
00093
00094
00095 /* =============================================================================
00096  * Struct & Enums
00097  * =============================================================================
00098  */
00099 /* Memory type */
00100 typedef enum {
00101     IpcMemMgr_ALLOCTYPE_PSHMEM          = 0x00000,
00102     IpcMemMgr_ALLOCTYPE_PHYS_CACHE      = 0x00001,
00103     IpcMemMgr_ALLOCTYPE_PHYS_NOCACHE    = 0x00002,
00104     IpcMemMgr_ALLOCTYPE_END             = 0x00003,
00105 } IpcMemMgr_MemType;
00106
00110 typedef struct IpcMemMgr_Config_t {
00111     UInt32      size;
00113     UInt32      minAlign;
00114     /* minimum alignement for the buffer allocations */
00115     UInt32      gateOffset;
00116     /* shared memory offset for the process gate */
00117 } IpcMemMgr_Config;
00118
00122 typedef UInt32 IpcMemMgr_SHPtr;
00123
00124 /* =============================================================================
00125  * APIs
00126  * =============================================================================
00127  */
00128 /* Function to setup the system memory maanger */
00129 Void IpcMemMgr_getConfig(IpcMemMgr_Config * config);
00130
00131 /* setup the ipc memory manager module */
00132 Int IpcMemMgr_setup(IpcMemMgr_Config *cfg);
00133
00134 /* destroy the ipc memory manager module */
00135 Int IpcMemMgr_destroy(Void);
00136
00137 /* allocate anonymous shared memory */
00138 // Ptr IpcMemMgr_alloc(UInt32 size, UInt32 reqAlign, IpcMemMgr_MemType memType);
00139 Ptr IpcMemMgr_alloc(SizeT size);
00140
00141 /* allocate memory by name */
00142 //Int IpcMemMgr_allocByName(String name, SizeT size, Ptr *addr, Bool *newAlloc);
00143 Int IpcMemMgr_acquire(String name, SizeT size, Ptr *addr, Bool *newAlloc);
00144
00145 /* free memory anonymous memory */
00146 Void IpcMemMgr_free(Ptr adr, SizeT size);
00147
00148 /* free memory by name */
00149 // Int IpcMemMgr_freeByName(String name);
00150 Int IpcMemMgr_release(String name);
00151
00152 /* map memory based on kernel virtual address */
00153 /* Ptr IpcMemMgr_map(Ptr hint, Ptr buf, UInt32 size); */
00154
00155 /* unmap memory */
00156 /* Int IpcMemMgr_unmap(Ptr buf, UInt32 size); */
00157
00158 /*
00159  *  ======== IpcMemMgr_getPtr ========
00160  *  Convert the given shared memory offset into a local address pointer.
00161  */
00162 Ptr IpcMemMgr_getPtr(UInt32 offset);
00163
00164 /*
00165  *  ======== IpcMemMgr_getOffset ========
00166  *  Convert the given local address pointer into an offset from the
00167  *  shared memory base address.
00168  */
00169 UInt32 IpcMemMgr_getOffset(Ptr vaddr);
00170
00171 /* allocate inter-process shared memory */
00172 Ptr IpcMemMgr_allocShmemHeap(String name, UInt32 size, UInt32 align);
00173
00174 /* free inter-process shared memory */
00175 Int IpcMemMgr_freeShmemHeap(Ptr buf, UInt32 size);
00176
00177 /* free inter-process shared memory by name */
00178 Int IpcMemMgr_freeShmemHeapByName(String name);
00179
00180 IArg IpcMemMgr_enterGate(Void);
00181
00182 Void IpcMemMgr_leaveGate(IArg key);
00183
00184
00185 #if defined (__cplusplus)
00186 }
00187 #endif
00188
00189 #endif /* ti_syslink_utils_IpcMemMgr__include */


SysLink Application Programming Interface (API): List.h File Reference

Data Structures | Defines | Typedefs | Functions

List.h File Reference

Detailed Description

Creates a doubly linked list. It works as utils for other modules.

Go to the source code of this file.

Data Structures

struct | List_Elem_tag
Structure defining object for the list element. More...
struct | List_Object_tag
Structure defining object for the list. More...
struct | List_Params_tag
Structure defining params for the list. More...

Defines

#define | List_traverse(x, y)
Traverse the full list till the last element.

Typedefs

typedef struct List_Elem_tag | List_Elem
Structure defining object for the list element.
typedef struct List_Object_tag | List_Object
Structure defining object for the list.
typedef List_Object * | List_Handle
Defines List handle type.
typedef struct List_Params_tag | List_Params
Structure defining params for the list.

Functions

Void | List_Params_init (List_Params *params)
Initialize this config-params structure with supplier-specified defaults before instance creation.
List_Handle | List_create (List_Params *params, Error_Block *eb)
Function to create a list object.
Void | List_delete (List_Handle *handlePtr)
Function to delete a list object.
Void | List_construct (List_Object *obj, List_Params *params)
Function to construct a list object. This function is used when memory for the list object is not to be allocated by the List API.
Void | List_destruct (List_Object *obj)
Function to destruct a list object.
Void | List_elemClear (List_Elem *elem)
Function to clear element contents.
Bool | List_empty (List_Handle handle)
Function to check if list is empty.
Ptr | List_get (List_Handle handle)
Function to get first element of List.
Void | List_put (List_Handle handle, List_Elem *elem)
Function to insert element at the end of List.
Ptr | List_next (List_Handle handle, List_Elem *elem)
Function to traverse to the next element in the list (non atomic)
Ptr | List_prev (List_Handle handle, List_Elem *elem)
Function to traverse to the previous element in the list (non atomic)
Void | List_insert (List_Handle handle, List_Elem *newElem, List_Elem *curElem)
Function to insert element before the existing element in the list.
Void | List_remove (List_Handle handle, List_Elem *elem)
Function to removes element from the List.
Void | List_putHead (List_Handle handle, List_Elem *elem)
Function to put the element before head.
Ptr | List_dequeue (List_Handle handle)
Get element from front of List (non-atomic)
Void | List_enqueue (List_Handle handle, List_Elem *elem)
Put element at end of List (non-atomic)
Void | List_enqueueHead (List_Handle handle, List_Elem *elem)
Put element at head of List (non-atomic)

Define Documentation

#define List_traverse | ( | x,
 |  | y
 | ) |
Value:
for(x = (List_Elem *)((List_Object *)y)->elem.next; \
                               (UInt32) x != (UInt32)&((List_Object *)y)->elem;\
                                x = x->next)

Traverse the full list till the last element.

Typedef Documentation

typedef struct List_Elem_tag List_Elem

Structure defining object for the list element.

typedef struct List_Object_tag List_Object

Structure defining object for the list.

typedef List_Object* List_Handle

Defines List handle type.

typedef struct List_Params_tag List_Params

Structure defining params for the list.

Function Documentation

Void List_Params_init ( List_Params * params )

Initialize this config-params structure with supplier-specified defaults before instance creation.

Parameters:
params Instance config-params structure.
See also:
List_create
List_Handle List_create | ( | List_Params * | params,
 |  | Error_Block * | eb
 | ) |  |

Function to create a list object.

Parameters:
params | Pointer to list creation parameters. If NULL is passed, default parameters are used.
eb | Unused
Return values:
List-handle Handle to the list object
See also:
List_delete
Void List_delete ( List_Handle * handlePtr )

Function to delete a list object.

Parameters:
handlePtr Pointer to the list handle
See also:
List_delete
Void List_construct | ( | List_Object * | obj,
 |  | List_Params * | params
 | ) |  |

Function to construct a list object. This function is used when memory for the list object is not to be allocated by the List API.

Parameters:
obj | Pointer to the list object to be constructed
params | Pointer to list construction parameters. If NULL is passed, default parameters are used.
See also:
List_destruct
Void List_destruct ( List_Object * obj )

Function to destruct a list object.

Parameters:
obj Pointer to the list object to be destructed
See also:
List_construct
Void List_elemClear ( List_Elem * elem )

Function to clear element contents.

Parameters:
elem Element to be cleared
See also:
Bool List_empty ( List_Handle handle )

Function to check if list is empty.

Parameters:
handle Pointer to the list
Return values:
TRUE | List is empty
FALSE | List is not empty
See also:
Ptr List_get ( List_Handle handle )

Function to get first element of List.

Parameters:
handle Pointer to the list
Return values:
NULL | Operation failed
Valid-pointer | Pointer to first element
See also:
List_put
Void List_put | ( | List_Handle | handle,
 |  | List_Elem * | elem
 | ) |  |

Function to insert element at the end of List.

Parameters:
handle | Pointer to the list
elem | Element to be inserted
See also:
List_get
Ptr List_next | ( | List_Handle | handle,
 |  | List_Elem * | elem
 | ) |  |

Function to traverse to the next element in the list (non atomic)

Parameters:
handle | Pointer to the list
elem | Pointer to the current element
Return values:
NULL | Operation failed
Valid-pointer | Pointer to next element
See also:
List_prev
Ptr List_prev | ( | List_Handle | handle,
 |  | List_Elem * | elem
 | ) |  |

Function to traverse to the previous element in the list (non atomic)

Parameters:
handle | Pointer to the list
elem | Pointer to the current element
Return values:
NULL | Operation failed
Valid-pointer | Pointer to previous element
See also:
List_next
Void List_insert | ( | List_Handle | handle,
 |  | List_Elem * | newElem,
 |  | List_Elem * | curElem
 | ) |  |

Function to insert element before the existing element in the list.

Parameters:
handle | Pointer to the list
newElem | Element to be inserted
curElem | Existing element before which new one is to be inserted
See also:
List_remove
Void List_remove | ( | List_Handle | handle,
 |  | List_Elem * | elem
 | ) |  |

Function to removes element from the List.

Parameters:
handle | Pointer to the list
elem | Element to be removed
See also:
List_insert
Void List_putHead | ( | List_Handle | handle,
 |  | List_Elem * | elem
 | ) |  |

Function to put the element before head.

Parameters:
handle | Pointer to the list
elem | Element to be added at the head
See also:
List_put
Ptr List_dequeue ( List_Handle handle )

Get element from front of List (non-atomic)

Parameters:
handle Pointer to the list
Return values:
NULL | Operation failed
Valid-pointer | Pointer to removed element
See also:
List_enqueue, List_enqueueHead
Void List_enqueue | ( | List_Handle | handle,
 |  | List_Elem * | elem
 | ) |  |

Put element at end of List (non-atomic)

Parameters:
handle | Pointer to the list
elem | Element to be put
See also:
List_dequeue
Void List_enqueueHead | ( | List_Handle | handle,
 |  | List_Elem * | elem
 | ) |  |

Put element at head of List (non-atomic)

Parameters:
handle | Pointer to the list
elem | Element to be added
See also:
List_dequeue


SysLink Application Programming Interface (API): List.h Source File

List.h

Go to the documentation of this file.
00001
00009 /*
00010  *  ============================================================================
00011  *
00012  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00013  *
00014  *  Redistribution and use in source and binary forms, with or without
00015  *  modification, are permitted provided that the following conditions
00016  *  are met:
00017  *
00018  *  *  Redistributions of source code must retain the above copyright
00019  *     notice, this list of conditions and the following disclaimer.
00020  *
00021  *  *  Redistributions in binary form must reproduce the above copyright
00022  *     notice, this list of conditions and the following disclaimer in the
00023  *     documentation and/or other materials provided with the distribution.
00024  *
00025  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00026  *     its contributors may be used to endorse or promote products derived
00027  *     from this software without specific prior written permission.
00028  *
00029  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00030  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00031  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00032  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00033  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00034  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00035  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00036  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00037  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00038  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00039  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00040  *  Contact information for paper mail:
00041  *  Texas Instruments
00042  *  Post Office Box 655303
00043  *  Dallas, Texas 75265
00044  *  Contact information:
00045  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00046  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00047  *  ============================================================================
00048  *
00049  */
00050
00051
00052
00053 #ifndef LIST_H_0XB734
00054 #define LIST_H_0XB734
00055
00056
00057
00058 #if defined (__cplusplus)
00059 extern "C" {
00060 #endif
00061
00062
00063 /* =============================================================================
00064  *  Macros and types
00065  * =============================================================================
00066  */
00071 #define List_traverse(x,y) for(x = (List_Elem *)((List_Object *)y)->elem.next; \
00072                                (UInt32) x != (UInt32)&((List_Object *)y)->elem;\
00073                                 x = x->next)
00074
00078 typedef struct List_Elem_tag {
00079     struct List_Elem_tag *  next;
00080     struct List_Elem_tag *  prev;
00081 } List_Elem;
00082
00086 typedef struct List_Object_tag {
00087     List_Elem            elem;
00089 } List_Object;
00090
00092 typedef List_Object * List_Handle;
00093
00097 typedef struct List_Params_tag {
00098     UInt32        temp;
00099 } List_Params;
00100
00101
00102 /* =============================================================================
00103  *  APIs
00104  * =============================================================================
00105  */
00114 Void List_Params_init (List_Params * params);
00115
00127 List_Handle List_create (List_Params * params, Error_Block *eb);
00128
00136 Void List_delete (List_Handle * handlePtr);
00137
00149 Void List_construct (List_Object * obj, List_Params * params);
00150
00158 Void List_destruct (List_Object * obj);
00159
00167 Void List_elemClear (List_Elem * elem);
00168
00179 Bool List_empty (List_Handle handle);
00180
00191 Ptr List_get (List_Handle handle);
00192
00201 Void List_put (List_Handle handle, List_Elem * elem);
00202
00215 Ptr List_next (List_Handle handle, List_Elem * elem);
00216
00229 Ptr List_prev (List_Handle handle, List_Elem * elem);
00230
00241 Void List_insert (List_Handle handle, List_Elem * newElem, List_Elem * curElem);
00242
00251 Void List_remove (List_Handle handle, List_Elem * elem);
00252
00261 Void List_putHead (List_Handle handle, List_Elem * elem);
00262
00273 Ptr List_dequeue (List_Handle handle);
00274
00283 Void List_enqueue (List_Handle handle, List_Elem * elem);
00284
00293 Void List_enqueueHead (List_Handle handle, List_Elem * elem);
00294
00295
00296 #if defined (__cplusplus)
00297 }
00298 #endif /* defined (__cplusplus) */
00299
00300
00301 #endif /* LIST_H_0XB734 */


SysLink Application Programming Interface (API): ListMP.h File Reference

Data Structures | Defines | Typedefs | Functions

ListMP.h File Reference

Detailed Description

Multiple processor shared memory list.

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

ListMP is a doubly linked-list based module designed to be used in a multi-processor environment. It provides a way for multiple processors to create, access, and manipulate the same link list in shared memory.

The ListMP module uses a NameServer instance to store information about an instance during create. Each ListMP instance is created by specifying a name and region id. The name supplied must be unique for all ListMP instances in the system.

ListMP_create() is used to create an instance of a ListMP. Shared memory is modified during create. Once created, an instance may be opened by calling ListMP_open(). Open does not modify any shared memory. Open() should be called only when global interrupts are enabled.

To use a ListMP instance, a ListMP_Elem must be embedded as the very first element of a structure. ListMP does not provide cache coherency for the buffer put onto the link list. ListMP only provides cache coherency for the ListMP_Elem fields. The buffer should be written back before being placed on a ListMP, if cache coherency is required.

The ListMP header should be included in an application as follows:

  #include <ti/ipc/ListMP.h>

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

#include <ti/ipc/SharedRegion.h>
#include <ti/ipc/GateMP.h>
Include dependency graph for ListMP.h:

Go to the source code of this file.

Data Structures

struct | ListMP_Elem
Structure defining a ListMP element. More...
struct | ListMP_Params
Structure defining parameter structure for ListMP_create(). More...

Defines

#define | ListMP_S_BUSY 2
The resource is still in use.
#define | ListMP_S_ALREADYSETUP 1
The module has been already setup.
#define | ListMP_S_SUCCESS 0
Operation is successful.
#define | ListMP_E_FAIL -1
Generic failure.
#define | ListMP_E_INVALIDARG -2
Argument passed to function is invalid.
#define | ListMP_E_MEMORY -3
Operation resulted in memory failure.
#define | ListMP_E_ALREADYEXISTS -4
The specified entity already exists.
#define | ListMP_E_NOTFOUND -5
Unable to find the specified entity.
#define | ListMP_E_TIMEOUT -6
Operation timed out.
#define | ListMP_E_INVALIDSTATE -7
Module is not initialized.
#define | ListMP_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | ListMP_E_RESOURCE -9
Specified resource is not available.
#define | ListMP_E_RESTART -10
Operation was interrupted. Please restart the operation.

Typedefs

typedef struct ListMP_Object * | ListMP_Handle
ListMP_Handle type.
typedef struct ListMP_Elem | ListMP_Elem
Structure defining a ListMP element.
typedef struct ListMP_Params | ListMP_Params
Structure defining parameter structure for ListMP_create().

Functions

Void | ListMP_Params_init (ListMP_Params *params)
Initializes ListMP parameters.
ListMP_Handle | ListMP_create (const ListMP_Params *params)
Creates and initializes ListMP module.
Int | ListMP_close (ListMP_Handle *handlePtr)
Close an opened ListMP instance.
Int | ListMP_delete (ListMP_Handle *handlePtr)
Deletes a ListMP instance.
Int | ListMP_open (String name, ListMP_Handle *handlePtr)
Open a created ListMP instance.
Bool | ListMP_empty (ListMP_Handle handle)
Determines if a ListMP instance is empty.
GateMP_Handle | ListMP_getGate (ListMP_Handle handle)
Retrieves the GateMP handle associated with the ListMP instance.
Ptr | ListMP_getHead (ListMP_Handle handle)
Get an element from front of a ListMP instance.
Ptr | ListMP_getTail (ListMP_Handle handle)
Get an element from back of a ListMP instance.
Int | ListMP_insert (ListMP_Handle handle, ListMP_Elem *newElem, ListMP_Elem *curElem)
Insert an element into a ListMP instance.
Ptr | ListMP_next (ListMP_Handle handle, ListMP_Elem *elem)
Return the next element in a ListMP instance (non-atomic)
Ptr | ListMP_prev (ListMP_Handle handle, ListMP_Elem *elem)
Return the previous element in ListMP instance (non-atomic)
Int | ListMP_putHead (ListMP_Handle handle, ListMP_Elem *elem)
Put an element at head of a ListMP instance.
Int | ListMP_putTail (ListMP_Handle handle, ListMP_Elem *elem)
Put an element at back of a ListMP instance.
Int | ListMP_remove (ListMP_Handle handle, ListMP_Elem *elem)
Remove an element from a ListMP instance.

Define Documentation

#define ListMP_S_BUSY 2

The resource is still in use.

#define ListMP_S_ALREADYSETUP 1

The module has been already setup.

#define ListMP_S_SUCCESS 0

Operation is successful.

#define ListMP_E_FAIL -1

Generic failure.

#define ListMP_E_INVALIDARG -2

Argument passed to function is invalid.

#define ListMP_E_MEMORY -3

Operation resulted in memory failure.

#define ListMP_E_ALREADYEXISTS -4

The specified entity already exists.

#define ListMP_E_NOTFOUND -5

Unable to find the specified entity.

#define ListMP_E_TIMEOUT -6

Operation timed out.

#define ListMP_E_INVALIDSTATE -7

Module is not initialized.

#define ListMP_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define ListMP_E_RESOURCE -9

Specified resource is not available.

#define ListMP_E_RESTART -10

Operation was interrupted. Please restart the operation.

Typedef Documentation

typedef struct ListMP_Object* ListMP_Handle

ListMP_Handle type.

typedef struct ListMP_Elem ListMP_Elem

Structure defining a ListMP element.

typedef struct ListMP_Params ListMP_Params

Structure defining parameter structure for ListMP_create().

Function Documentation

Void ListMP_Params_init ( ListMP_Params * params )

Initializes ListMP parameters.

Parameters:
params Instance param structure.
ListMP_Handle ListMP_create ( const ListMP_Params * params )

Creates and initializes ListMP module.

Parameters:
params Instance param structure.
Returns:
a ListMP instance handle
See also:
ListMP_delete
Int ListMP_close ( ListMP_Handle * handlePtr )

Close an opened ListMP instance.

Closing an instance will free local memory consumed by the opened instance. Instances that are opened should be closed before the instance is deleted. If using NameServer, the instance name will be removed from the NameServer instance.

Parameters:
handlePtr Pointer to a ListMP instance
Returns:
Status
  • ListMP_S_SUCCESS: ListMP successfully closed
  • ListMP_E_FAIL: A general failure has occurred
See also:
ListMP_open
Int ListMP_delete ( ListMP_Handle * handlePtr )

Deletes a ListMP instance.

Parameters:
handlePtr Pointer to ListMP instance
Returns:
Status
  • ListMP_S_SUCCESS: ListMP successfully deleted
    • ListMP_E_FAIL: ListMP delete failed
See also:
ListMP_create
Int ListMP_open | ( | String | name,
 |  | ListMP_Handle * | handlePtr
 | ) |  |

Open a created ListMP instance.

An open can be performed on a previously created instance. Open is used to gain access to the same ListMP instance. Generally an instance is created on one processor and opened on other processors but it can be opened on the same processor too. Open returns a ListMP instance handle like create, but it does not initialize any shared memory.

The open call searches the local ListMP NameServer table first for a matching name. If no local match is found, it will search all remote ListMP NameServer tables for a matching name.

A status value of ListMP_S_SUCCESS is returned if a matching ListMP instance is found. A ListMP_E_FAIL is returned if no matching instance is found. Generally this means the ListMP instance has not yet been created. A more specific status error is returned if an error was raised.

Call close() when the opened instance is no longer needed.

Parameters:
name | Name of created ListMP instance
handlePtr | pointer to the handle if a handle was found.
Returns:
Status
  • ListMP_S_SUCCESS: ListMP successfully opened
  • ListMP_E_NOTFOUND: ListMP is not yet ready to be opened.
  • ListMP_E_FAIL: A general failure has occurred
See also:
ListMP_create
Bool ListMP_empty ( ListMP_Handle handle )

Determines if a ListMP instance is empty.

Parameters:
handle a ListMP handle.
Returns:
TRUE if 'next' element points to head, otherwise FALSE
GateMP_Handle ListMP_getGate ( ListMP_Handle handle )

Retrieves the GateMP handle associated with the ListMP instance.

Parameters:
handle a ListMP handle.
Returns:
GateMP handle for ListMP instance.
Ptr ListMP_getHead ( ListMP_Handle handle )

Get an element from front of a ListMP instance.

Atomically removes the element from the front of a ListMP instance and returns a pointer to it. Uses ListMP_Params::gate for critical region management.

Parameters:
handle a ListMP handle.
Returns:
pointer to former first element.
Ptr ListMP_getTail ( ListMP_Handle handle )

Get an element from back of a ListMP instance.

Atomically removes the element from the back of a ListMP instance and returns a pointer to it. Uses ListMP_Params::gate for critical region management.

Parameters:
handle a ListMP handle.
Returns:
pointer to former last element
Int ListMP_insert | ( | ListMP_Handle | handle,
 |  | ListMP_Elem * | newElem,
 |  | ListMP_Elem * | curElem
 | ) |  |

Insert an element into a ListMP instance.

Atomically inserts `newElem` in the instance in front of `curElem`. To place an element at the back of a ListMP instance, use ListMP_putTail. To place an element at the front of a ListMP instance, use ListMP_putHead.

The following code shows an example.

  ListMP_Elem elem, curElem;

  ListMP_insert(listHandle, &elem, &curElem);  // insert before curElem
Parameters:
handle | a ListMP handle.
newElem | new element to insert into the ListMP.
curElem | current element in the ListMP.
Returns:
Status
  • ListMP_S_SUCCESS: if operation was successful
  • ListMP_E_FAIL: if operation failed
Ptr ListMP_next | ( | ListMP_Handle | handle,
 |  | ListMP_Elem * | elem
 | ) |  |

Return the next element in a ListMP instance (non-atomic)

Is useful in searching a ListMP instance. It does not remove any items from the ListMP instance. The caller should protect the ListMP instance from being changed while using this call since it is non-atomic.

To look at the first `elem` on the ListMP, use NULL as the `elem` argument.

The following code shows an example. The scanning of a ListMP instance should be protected against other threads that modify the ListMP.

  ListMP_Elem   *elem = NULL;
  GateMP_Handle gate;
  IArg          key;

  // get the gate for the ListMP instance
  gate = ListMP_getGate(listHandle);

  // Begin protection against modification of the ListMP.
  key = GateMP_enter(gate);

  while ((elem = ListMP_next(ListMPHandle, elem)) != NULL) {
      //act on elem as needed. For example call ListMP_remove().
  }

  // End protection against modification of the ListMP.
  GateMP_leave(gate, key);
Parameters:
handle | a ListMP handle.
elem | element in ListMP or NULL to start at the head
Returns:
next element in ListMP instance or NULL to denote end.
Ptr ListMP_prev | ( | ListMP_Handle | handle,
 |  | ListMP_Elem * | elem
 | ) |  |

Return the previous element in ListMP instance (non-atomic)

Useful in searching a ListMP instance in reverse order. It does not remove any items from the ListMP instance. The caller should protect the ListMP instance from being changed while using this call since it is non-atomic.

To look at the last `elem` on the ListMP instance, use NULL as the `elem` argument.

The following code shows an example. The scanning of a ListMP instance should be protected against other threads that modify the instance.

  ListMP_Elem  *elem = NULL;
  GateMP_Handle gate;
  IArg          key;

  // get the gate for the ListMP instance
  gate = ListMP_getGate(listHandle);

  // Begin protection against modification of the ListMP.
  key = GateMP_enter(gate);

  while ((elem = ListMP_prev(listHandle, elem)) != NULL) {
      //act on elem as needed. For example call ListMP_remove().
  }

  // End protection against modification of the ListMP.
  GateMP_leave(gate, key);
Parameters:
handle | a ListMP handle.
elem | element in ListMP or NULL to start at the end
Returns:
previous element in ListMP or NULL if empty.
Int ListMP_putHead | ( | ListMP_Handle | handle,
 |  | ListMP_Elem * | elem
 | ) |  |

Put an element at head of a ListMP instance.

Atomically places the element at the front of a ListMP instance. Uses ListMP_Params::gate for critical region management.

Parameters:
handle | a ListMP handle
elem | pointer to new ListMP element
Returns:
Status
  • ListMP_S_SUCCESS: if operation was successful
  • ListMP_E_FAIL: if operation failed
Int ListMP_putTail | ( | ListMP_Handle | handle,
 |  | ListMP_Elem * | elem
 | ) |  |

Put an element at back of a ListMP instance.

Atomically places the element at the back of a ListMP instance. Uses ListMP_Params::gate for critical region management.

Parameters:
handle | a ListMP handle
elem | pointer to new ListMP element
Returns:
Status
  • ListMP_S_SUCCESS: if operation was successful
  • ListMP_E_FAIL: if operation failed
Int ListMP_remove | ( | ListMP_Handle | handle,
 |  | ListMP_Elem * | elem
 | ) |  |

Remove an element from a ListMP instance.

Atomically removes an element from a ListMP.

The `elem` parameter is a pointer to an existing element to be removed from a ListMP instance.

Parameters:
handle | a ListMP handle
elem | element in ListMP
Returns:
Status
  • ListMP_S_SUCCESS: if operation was successful
  • ListMP_E_FAIL: if operation failed


SysLink Application Programming Interface (API): ListMP.h Source File

ListMP.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2012, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * */
00068 #ifndef ti_ipc_ListMP__include
00069 #define ti_ipc_ListMP__include
00070
00071 #include <ti/ipc/SharedRegion.h>
00072 #include <ti/ipc/GateMP.h>
00073
00074 #if defined (__cplusplus)
00075 extern "C" {
00076 #endif
00077
00078 /* =============================================================================
00079  *  All success and failure codes for the module
00080  * =============================================================================
00081  */
00082
00087 #define ListMP_S_BUSY            2
00088
00093 #define ListMP_S_ALREADYSETUP    1
00094
00099 #define ListMP_S_SUCCESS         0
00100
00105 #define ListMP_E_FAIL           -1
00106
00111 #define ListMP_E_INVALIDARG     -2
00112
00117 #define ListMP_E_MEMORY         -3
00118
00123 #define ListMP_E_ALREADYEXISTS  -4
00124
00129 #define ListMP_E_NOTFOUND       -5
00130
00135 #define ListMP_E_TIMEOUT        -6
00136
00141 #define ListMP_E_INVALIDSTATE   -7
00142
00147 #define ListMP_E_OSFAILURE      -8
00148
00153 #define ListMP_E_RESOURCE       -9
00154
00159 #define ListMP_E_RESTART        -10
00160
00161 /* =============================================================================
00162  *  Structures & Enums
00163  * =============================================================================
00164  */
00165
00169 typedef struct ListMP_Object *ListMP_Handle;
00170
00174 typedef struct ListMP_Elem {
00175     volatile SharedRegion_SRPtr next;
00178     volatile SharedRegion_SRPtr prev;
00181 } ListMP_Elem;
00182
00186 typedef struct ListMP_Params {
00187     GateMP_Handle gate;
00195     Ptr sharedAddr;
00205     String name;
00216     UInt16 regionId;
00224 } ListMP_Params;
00225
00226 /* =============================================================================
00227  *  ListMP Module-wide Functions
00228  * =============================================================================
00229  */
00230
00236 Void ListMP_Params_init(ListMP_Params *params);
00237
00247 ListMP_Handle ListMP_create(const ListMP_Params *params);
00248
00265 Int ListMP_close(ListMP_Handle *handlePtr);
00266
00278 Int ListMP_delete(ListMP_Handle *handlePtr);
00279
00312 Int ListMP_open(String name, ListMP_Handle *handlePtr);
00313
00342 Int ListMP_openByAddr(Ptr sharedAddr, ListMP_Handle *handlePtr);
00343
00358 SizeT ListMP_sharedMemReq(const ListMP_Params *params);
00359
00362 /* =============================================================================
00363  *  ListMP Per-instance Functions
00364  * =============================================================================
00365  */
00366
00374 Bool ListMP_empty(ListMP_Handle handle);
00375
00383 GateMP_Handle ListMP_getGate(ListMP_Handle handle);
00384
00396 Ptr ListMP_getHead(ListMP_Handle handle);
00397
00409 Ptr ListMP_getTail(ListMP_Handle handle);
00410
00435 Int ListMP_insert(ListMP_Handle handle,
00436                   ListMP_Elem *newElem,
00437                   ListMP_Elem *curElem);
00438
00478 Ptr ListMP_next(ListMP_Handle handle, ListMP_Elem *elem);
00479
00518 Ptr ListMP_prev(ListMP_Handle handle, ListMP_Elem *elem);
00519
00533 Int ListMP_putHead(ListMP_Handle handle, ListMP_Elem *elem);
00534
00548 Int ListMP_putTail(ListMP_Handle handle, ListMP_Elem *elem);
00549
00565 Int ListMP_remove(ListMP_Handle handle, ListMP_Elem *elem);
00566
00567 #if defined (__cplusplus)
00568 }
00569 #endif /* defined (__cplusplus) */
00570
00571 #endif /* ti_ipc_ListMP__include */
00572
00573 /*
00574  */
00575
00576 /*
00577  *  @(#) ti.ipc; 1, 0, 0, 0,1; 5-22-2012 16:16:05; /db/vtree/library/trees/ipc/ipc-h32/src/ xlibrary
00578
00579  */
00580


SysLink Application Programming Interface (API): Memory.h File Reference

Defines | Functions

Memory.h File Reference

Detailed Description

Memory manager interface definitions.

This abstracts the Memory management interface to be used with SysLink code. Allocation, Freeing-up, copy and address translate are supported for the memory management.

#include <ti/syslink/utils/MemoryDefs.h>
#include <ti/syslink/utils/MemoryOS.h>
#include <ti/syslink/utils/_Memory.h>
#include <ti/syslink/utils/IHeap.h>
Include dependency graph for Memory.h:

Go to the source code of this file.

Defines

#define | Memory_Q_BLOCKING 1
Blocking quality Heaps with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.
#define | Memory_copy MemoryOS_copy
Copies the data between memory areas.
#define | Memory_set MemoryOS_set
Set the specific value in the said memory area.

Functions

Ptr | Memory_alloc (IHeap_Handle heap, SizeT size, SizeT align, Ptr eb)
Allocates the specified number of bytes.
Ptr | Memory_calloc (IHeap_Handle heap, SizeT size, SizeT align, Ptr eb)
Allocates the specified number of bytes and memory is set to zero.
Void | Memory_free (IHeap_Handle heap, Ptr block, SizeT size)
Frees up the specified chunk of memory.
Void | Memory_getStats (IHeap_Handle heap, Memory_Stats *stats)
Function to obtain statistics from a heap.
Bool | Memory_query (IHeap_Handle heap, Int qual)
Function to test for a particular IHeap quality.
SizeT | Memory_getMaxDefaultTypeAlign (Void)
Function to get memory alignment.
Ptr | Memory_valloc (IHeap_Handle heap, SizeT size, SizeT align, Char value, Ptr eb)
Allocates the specified number of bytes and memory is set to the specified value.

Define Documentation

#define Memory_Q_BLOCKING 1

Blocking quality Heaps with this "quality" may cause the calling thread to block; i.e., suspend execution until another thread leaves the gate.

#define Memory_copy MemoryOS_copy

Copies the data between memory areas.

#define Memory_set MemoryOS_set

Set the specific value in the said memory area.

Function Documentation

Ptr Memory_alloc | ( | IHeap_Handle | heap,
 |  | SizeT | size,
 |  | SizeT | align,
 |  | Ptr | eb
 | ) |  |

Allocates the specified number of bytes.

Parameters:
heap | Handle to the heap from which the memory is to be allocated. Specify NULL to allocate from local memory.
size | Amount of memory to be allocated.
align | Alignment constraints (power of 2)
eb | Not used. Pass as NULL.
Return values:
Pointer | Success: Pointer to allocated buffer
NULL | Failed to allocate memory
See also:
Memory_calloc
Ptr Memory_calloc | ( | IHeap_Handle | heap,
 |  | SizeT | size,
 |  | SizeT | align,
 |  | Ptr | eb
 | ) |  |

Allocates the specified number of bytes and memory is set to zero.

Parameters:
heap | Handle to the heap from which the memory is to be allocated. Specify NULL to allocate from local memory.
size | Amount of memory to be allocated.
align | Alignment constraints (power of 2)
eb | Not used. Pass as NULL.
Return values:
Pointer | Success: Pointer to allocated buffer
NULL | Failed to allocate memory
See also:
Memory_alloc, MemoryOS_calloc
Void Memory_free | ( | IHeap_Handle | heap,
 |  | Ptr | block,
 |  | SizeT | size
 | ) |  |

Frees up the specified chunk of memory.

Parameters:
heap | Handle to the heap
block | Block of memory to be freed
size | Amount of memory to be freed
See also:
IHeap_free, MemoryOS_free
Void Memory_getStats | ( | IHeap_Handle | heap,
 |  | Memory_Stats * | stats
 | ) |  |

Function to obtain statistics from a heap.

Parameters:
heap | Handle to the heap
stats | Pointer to the Memory stats structure to be filled.
See also:
Bool Memory_query | ( | IHeap_Handle | heap,
 |  | Int | qual
 | ) |  |

Function to test for a particular IHeap quality.

Parameters:
heap | Handle to the heap
qual | Quality to be queried.
See also:
Memory_Q_BLOCKING
SizeT Memory_getMaxDefaultTypeAlign ( Void )

Function to get memory alignment.

Return values:
Alignment Maximum default alignment
Ptr Memory_valloc | ( | IHeap_Handle | heap,
 |  | SizeT | size,
 |  | SizeT | align,
 |  | Char | value,
 |  | Ptr | eb
 | ) |  |

Allocates the specified number of bytes and memory is set to the specified value.

Parameters:
heap | Handle to the heap from which the memory is to be allocated. Specify NULL to allocate from local memory.
size | Amount of memory to be allocated.
align | Alignment constraints (power of 2)
value | Value to be set for all bytes in the buffer
eb | Not used. Pass as NULL.
Return values:
Pointer | Success: Pointer to allocated buffer
NULL | Failed to allocate memory
See also:
Memory_alloc, MemoryOS_calloc


SysLink Application Programming Interface (API): Memory.h Source File

Memory.h

Go to the documentation of this file.
00001
00012 /*
00013  *  ============================================================================
00014  *
00015  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00016  *
00017  *  Redistribution and use in source and binary forms, with or without
00018  *  modification, are permitted provided that the following conditions
00019  *  are met:
00020  *
00021  *  *  Redistributions of source code must retain the above copyright
00022  *     notice, this list of conditions and the following disclaimer.
00023  *
00024  *  *  Redistributions in binary form must reproduce the above copyright
00025  *     notice, this list of conditions and the following disclaimer in the
00026  *     documentation and/or other materials provided with the distribution.
00027  *
00028  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00029  *     its contributors may be used to endorse or promote products derived
00030  *     from this software without specific prior written permission.
00031  *
00032  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00033  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00034  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00035  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00036  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00037  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00038  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00039  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00040  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00041  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00042  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00043  *  Contact information for paper mail:
00044  *  Texas Instruments
00045  *  Post Office Box 655303
00046  *  Dallas, Texas 75265
00047  *  Contact information:
00048  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00049  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00050  *  ============================================================================
00051  *
00052  */
00053
00054
00055
00056 #ifndef MEMORY_H_0xC97E
00057 #define MEMORY_H_0xC97E
00058
00059
00060 /*-------------------------   OSAL and utils   -----------------------------  */
00061 #include <ti/syslink/utils/MemoryDefs.h>
00062 #include <ti/syslink/utils/MemoryOS.h>
00063 #include <ti/syslink/utils/_Memory.h>
00064
00065 /* Module headers */
00066 #include <ti/syslink/utils/IHeap.h>
00067
00068
00069 #if defined (__cplusplus)
00070 extern "C" {
00071 #endif
00072
00073
00074 /* =============================================================================
00075  * Macros
00076  * =============================================================================
00077  */
00083 #define Memory_Q_BLOCKING 1
00084
00085 /* =============================================================================
00086  * Structures & Enums. See MemoryDefs.h
00087  * =============================================================================
00088  */
00089
00090 /* =============================================================================
00091  *  APIs
00092  * =============================================================================
00093  */
00108 Ptr Memory_alloc (IHeap_Handle heap, SizeT size, SizeT align, Ptr eb);
00109
00125 Ptr Memory_calloc (IHeap_Handle heap, SizeT size, SizeT align, Ptr eb);
00126
00136 Void Memory_free (IHeap_Handle heap, Ptr block, SizeT size);
00137
00146 Void Memory_getStats (IHeap_Handle heap, Memory_Stats * stats);
00147
00156 Bool Memory_query (IHeap_Handle heap, Int qual);
00157
00163 SizeT Memory_getMaxDefaultTypeAlign (Void);
00164
00181 Ptr Memory_valloc (IHeap_Handle heap,
00182                    SizeT        size,
00183                    SizeT        align,
00184                    Char         value,
00185                    Ptr          eb);
00186
00187
00188 /* =============================================================================
00189  *  APIs that are added for MemoryOS
00190  * =============================================================================
00191  */
00192
00196 #define Memory_copy          MemoryOS_copy
00197
00201 #define Memory_set           MemoryOS_set
00202
00203
00204 #if defined (__cplusplus)
00205 }
00206 #endif /* defined (__cplusplus) */
00207
00208 #endif /* ifndef MEMORY_H_0xC97E */


SysLink Application Programming Interface (API): MemoryDefs.h File Reference

Data Structures | Typedefs | Enumerations

MemoryDefs.h File Reference

Detailed Description

Definitions for Memory module.

This provides macros and type definitions for the Memory module.

#include <ti/syslink/utils/_MemoryDefs.h>
Include dependency graph for MemoryDefs.h:

Go to the source code of this file.

Data Structures

struct | Memory_Stats_tag
Structure defining memory related statistics. More...

Typedefs

typedef struct Memory_Stats_tag | Memory_Stats
Structure defining memory related statistics.

Enumerations

enum MemoryOS_CacheFlags {
MemoryOS_CacheFlags_Default = 0x00000000,
MemoryOS_CacheFlags_Cached = 0x00010000,
MemoryOS_CacheFlags_Uncached = 0x00020000,
MemoryOS_CacheFlags_EndValue = 0x00030000
}

Enumerates the types of Caching for memory regions.

More...
enum MemoryOS_MemTypeFlags {
MemoryOS_MemTypeFlags_Default = 0x00000000,
MemoryOS_MemTypeFlags_Physical = 0x00000001,
MemoryOS_MemTypeFlags_Dma = 0x00000002,
MemoryOS_MemTypeFlags_EndValue = 0x00000003
}

Enumerates the types of memory allocation.

More...

Typedef Documentation

typedef struct Memory_Stats_tag Memory_Stats

Structure defining memory related statistics.

Enumeration Type Documentation

enum MemoryOS_CacheFlags

Enumerates the types of Caching for memory regions.

Enumerator:
MemoryOS_CacheFlags_Default

Default flags - Cached

MemoryOS_CacheFlags_Cached

Cached memory

MemoryOS_CacheFlags_Uncached

Uncached memory

MemoryOS_CacheFlags_EndValue

End delimiter indicating start of invalid values for this enum

enum MemoryOS_MemTypeFlags

Enumerates the types of memory allocation.

Enumerator:
MemoryOS_MemTypeFlags_Default

Default flags - virtually contiguous

MemoryOS_MemTypeFlags_Physical

Physically contiguous

MemoryOS_MemTypeFlags_Dma

Physically contiguous

MemoryOS_MemTypeFlags_EndValue

End delimiter indicating start of invalid values for this enum


SysLink Application Programming Interface (API): MemoryDefs.h Source File

MemoryDefs.h

Go to the documentation of this file.
00001
00010 /*
00011  *  ============================================================================
00012  *
00013  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00014  *
00015  *  Redistribution and use in source and binary forms, with or without
00016  *  modification, are permitted provided that the following conditions
00017  *  are met:
00018  *
00019  *  *  Redistributions of source code must retain the above copyright
00020  *     notice, this list of conditions and the following disclaimer.
00021  *
00022  *  *  Redistributions in binary form must reproduce the above copyright
00023  *     notice, this list of conditions and the following disclaimer in the
00024  *     documentation and/or other materials provided with the distribution.
00025  *
00026  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00027  *     its contributors may be used to endorse or promote products derived
00028  *     from this software without specific prior written permission.
00029  *
00030  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00031  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00032  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00033  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00034  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00035  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00036  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00037  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00038  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00039  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00040  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00041  *  Contact information for paper mail:
00042  *  Texas Instruments
00043  *  Post Office Box 655303
00044  *  Dallas, Texas 75265
00045  *  Contact information:
00046  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00047  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00048  *  ============================================================================
00049  *
00050  */
00051
00052
00053
00054 #ifndef MEMORYDEFS_H_0x73E4
00055 #define MEMORYDEFS_H_0x73E4
00056
00057 #include <ti/syslink/utils/_MemoryDefs.h>
00058
00059 #if defined (__cplusplus)
00060 extern "C" {
00061 #endif
00062
00063
00064 /* =============================================================================
00065  *  Macros and types
00066  * =============================================================================
00067  */
00071 typedef struct Memory_Stats_tag {
00072     UInt32 totalSize;
00074     UInt32 totalFreeSize;
00076     UInt32 largestFreeSize;
00078 } Memory_Stats;
00079
00083 typedef enum {
00084     MemoryOS_CacheFlags_Default           = 0x00000000,
00086     MemoryOS_CacheFlags_Cached            = 0x00010000,
00088     MemoryOS_CacheFlags_Uncached          = 0x00020000,
00090     MemoryOS_CacheFlags_EndValue          = 0x00030000
00092 } MemoryOS_CacheFlags;
00093
00097 typedef enum {
00098     MemoryOS_MemTypeFlags_Default         = 0x00000000,
00100     MemoryOS_MemTypeFlags_Physical        = 0x00000001,
00102     MemoryOS_MemTypeFlags_Dma             = 0x00000002,
00104     MemoryOS_MemTypeFlags_EndValue        = 0x00000003
00106 } MemoryOS_MemTypeFlags;
00107
00108
00109 #if defined (__cplusplus)
00110 }
00111 #endif /* defined (__cplusplus) */
00112
00113 #endif /* ifndef MEMORYDEFS_H_0x73E4 */


SysLink Application Programming Interface (API): MemoryOS.h File Reference

Functions

MemoryOS.h File Reference

Detailed Description

Memory abstraction APIs for local memory allocation.

This provides a direct access to local memory allocation, which does not require creation of a Heap.

#include <ti/syslink/utils/MemoryDefs.h>
#include <ti/syslink/utils/_MemoryOS.h>
Include dependency graph for MemoryOS.h:

Go to the source code of this file.

Functions

Int32 | MemoryOS_setup (void)
Int32 | MemoryOS_destroy (void)
Ptr | MemoryOS_alloc (UInt32 size, UInt32 align, UInt32 flags)
Ptr | MemoryOS_calloc (UInt32 size, UInt32 align, UInt32 flags)
Void | MemoryOS_free (Ptr ptr, UInt32 size, UInt32 flags)
Ptr | MemoryOS_copy (Ptr dst, Ptr src, UInt32 len)
Ptr | MemoryOS_set (Ptr buf, Int value, UInt32 len)
Ptr | MemoryOS_translate (Ptr srcAddr, Memory_XltFlags flags)

Function Documentation

Int32 MemoryOS_setup ( void )
Int32 MemoryOS_destroy ( void )
Ptr MemoryOS_alloc | ( | UInt32 | size,
 |  | UInt32 | align,
 |  | UInt32 | flags
 | ) |  |
Ptr MemoryOS_calloc | ( | UInt32 | size,
 |  | UInt32 | align,
 |  | UInt32 | flags
 | ) |  |
Void MemoryOS_free | ( | Ptr | ptr,
 |  | UInt32 | size,
 |  | UInt32 | flags
 | ) |  |
Ptr MemoryOS_copy | ( | Ptr | dst,
 |  | Ptr | src,
 |  | UInt32 | len
 | ) |  |
Ptr MemoryOS_set | ( | Ptr | buf,
 |  | Int | value,
 |  | UInt32 | len
 | ) |  |
Ptr MemoryOS_translate | ( | Ptr | srcAddr,
 |  | Memory_XltFlags | flags
 | ) |  |


SysLink Application Programming Interface (API): MemoryOS.h Source File

MemoryOS.h

Go to the documentation of this file.
00001
00011 /*
00012  *  ============================================================================
00013  *
00014  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00015  *
00016  *  Redistribution and use in source and binary forms, with or without
00017  *  modification, are permitted provided that the following conditions
00018  *  are met:
00019  *
00020  *  *  Redistributions of source code must retain the above copyright
00021  *     notice, this list of conditions and the following disclaimer.
00022  *
00023  *  *  Redistributions in binary form must reproduce the above copyright
00024  *     notice, this list of conditions and the following disclaimer in the
00025  *     documentation and/or other materials provided with the distribution.
00026  *
00027  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00028  *     its contributors may be used to endorse or promote products derived
00029  *     from this software without specific prior written permission.
00030  *
00031  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00032  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00033  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00034  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00035  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00036  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00037  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00038  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00039  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00040  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00041  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00042  *  Contact information for paper mail:
00043  *  Texas Instruments
00044  *  Post Office Box 655303
00045  *  Dallas, Texas 75265
00046  *  Contact information:
00047  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00048  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00049  *  ============================================================================
00050  *
00051  */
00052
00053
00054
00055 #ifndef MEMORYOS_H_0x97D2
00056 #define MEMORYOS_H_0x97D2
00057
00058 #include <ti/syslink/utils/MemoryDefs.h>
00059 /* OSAL and utils */
00060 #include <ti/syslink/utils/_MemoryOS.h>
00061
00062 #if defined (__cplusplus)
00063 extern "C" {
00064 #endif
00065
00066
00067 /* =============================================================================
00068  *  Macros and types
00069  *  See MemoryDefs.h
00070  * =============================================================================
00071  */
00072 /* =============================================================================
00073  *  APIs
00074  * =============================================================================
00075  */
00076 /* Initialize the memory os module. */
00077 Int32 MemoryOS_setup (void);
00078
00079 /* Finalize the memory os module. */
00080 Int32 MemoryOS_destroy (void);
00081
00082 /* Allocates the specified number of bytes of type specified through flags. */
00083 Ptr MemoryOS_alloc (UInt32 size, UInt32 align, UInt32 flags);
00084
00085 /* Allocates the specified number of bytes and memory is set to zero. */
00086 Ptr MemoryOS_calloc (UInt32 size, UInt32 align, UInt32 flags);
00087
00088 /* Frees local memory */
00089 Void MemoryOS_free (Ptr ptr, UInt32 size, UInt32 flags);
00090
00091 /* Copies the data between memory areas. Returns the number of bytes copied. */
00092 Ptr MemoryOS_copy (Ptr dst, Ptr src, UInt32 len);
00093
00094 /* Set the specified values to the allocated  memory area */
00095 Ptr MemoryOS_set (Ptr buf, Int value, UInt32 len);
00096
00097 /* Translate API */
00098 Ptr MemoryOS_translate (Ptr srcAddr, Memory_XltFlags flags);
00099
00100 /* TBD: Add APIs for Memory_move, Scatter-Gather & translateAddr. */
00101
00102
00103 #if defined (__cplusplus)
00104 }
00105 #endif /* defined (__cplusplus) */
00106
00107 #endif /* ifndef MEMORYOS_H_0x97D2 */


SysLink Application Programming Interface (API): MessageQ.h File Reference

Data Structures | Defines | Typedefs | Enumerations | Functions

MessageQ.h File Reference

Detailed Description

MessageQ Manager.

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

The MessageQ module supports the structured sending and receiving of variable length messages. This module can be used for homogeneous (DSP to DSP) or heterogeneous (Arm to DSP) multi-processor messaging.

MessageQ provides more sophisticated messaging than other modules. It is typically used for complex situations such as multi-processor messaging.

The following are key features of the MessageQ module:

  • Writers and readers can be relocated to another processor with no runtime code changes.
  • Timeouts are allowed when receiving messages.
  • Readers can determine the writer and reply back.
  • Receiving a message is deterministic when the timeout is zero.
  • Messages can reside on any message queue.
  • Supports zero-copy transfers.
  • Can send and receive from any type of thread.
  • Notification mechanism is specified by application.
  • Allows QoS (quality of service) on message buffer pools. For example, using specific buffer pools for specific message queues.

Messages are sent and received by being placed on and removed from a message queue. A reader is a thread that gets (reads) messages from a message queue. A writer is a thread that puts (writes) a message to a message queue. Each message queue has one reader and can have many writers. A thread may read from or write to multiple message queues.

Conceptually, the reader thread owns a message queue. The reader thread creates a message queue. The writer threads open a created message queue to get access to them.

Message queues are identified by a system-wide unique name. Internally, MessageQ uses the NameServer module for managing these names. The names are used for opening a message queue.

Messages must be allocated from the MessageQ module. Once a message is allocated, it can be sent to any message queue. Once a message is sent, the writer loses ownership of the message and should not attempt to modify the message. Once the reader receives the message, it owns the message. It may either free the message or re-use the message.

Messages in a message queue can be of variable length. The only requirement is that the first field in the definition of a message must be a #MessageQ_MsgHeader structure. For example:

  typedef struct MyMsg {
      MessageQ_MsgHeader header;
      ...
  } MyMsg;

The MessageQ API uses the MessageQ_MsgHeader internally. Your application should not modify or directly access the fields in the MessageQ_MsgHeader.

All messages sent via the MessageQ module must be allocated from a heap. The heap can also be used for other memory allocation not related to MessageQ.

An application can use multiple heaps. The purpose of having multiple heaps is to allow an application to regulate its message usage. For example, an application can allocate critical messages from one heap of fast on-chip memory and non-critical messages from another heap of slower external memory.

The MessageQ_registerHeap API is used to assign a MessageQ heapId to a heap. When allocating a message, the heapId is used, not the heap handle. This heapId is actually placed into the message (part of the #MessageQ_MsgHeader). Care must be taken when assigning heapIds. Refer to the MessageQ_registerHeap API description for more details.

MessageQ also supports the usage of messages that are not allocated via the MessageQ_alloc function. Please refer to the MessageQ_staticMsgInit function description for more details.

MessageQ supports reads/writes of different thread models. This is accomplished by having the creator of the message queue specify a synchronizer via the MessageQ_Params::synchronizer configuration parameter. The synchronizer is signaled whenever the MessageQ_put is called. The synchronizer waits if MessageQ_get is called and there are no messages.

Since ISyncs are binary, the reader must drain the message queue of all messages before waiting for another signal. For example, if the reader was a SYSBIOS Swi, the synchronizer instance could be a SyncSwi. If a MessageQ_put was called, the Swi_post() would be called. The Swi would run and it must call MessageQ_get until no messages are returned.

The MessageQ header should be included in an application as follows:

  #include <ti/ipc/MessageQ.h>
Version:
0.00.01

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

#include <ti/ipc/MultiProc.h>
Include dependency graph for MessageQ.h:

Go to the source code of this file.

Data Structures

struct | MessageQ_Params
Structure defining parameters for the MessageQ module. More...
struct | MessageQ_MsgHeader
Required first field in every message. More...

Defines

#define | MessageQ_S_BUSY 2
The resource is still in use.
#define | MessageQ_S_ALREADYSETUP 1
The module has been already setup.
#define | MessageQ_S_SUCCESS 0
Operation is successful.
#define | MessageQ_E_FAIL -1
Operation is not successful.
#define | MessageQ_E_INVALIDARG -2
There is an invalid argument.
#define | MessageQ_E_MEMORY -3
Operation resulted in memory failure.
#define | MessageQ_E_ALREADYEXISTS -4
The specified entity already exists.
#define | MessageQ_E_NOTFOUND -5
Unable to find the specified entity.
#define | MessageQ_E_TIMEOUT -6
Operation timed out.
#define | MessageQ_E_INVALIDSTATE -7
Module is not initialized.
#define | MessageQ_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | MessageQ_E_RESOURCE -9
Specified resource is not available.
#define | MessageQ_E_RESTART -10
Operation was interrupted. Please restart the operation.
#define | MessageQ_E_INVALIDMSG -11
An invalid message was encountered.
#define | MessageQ_E_NOTOWNER -12
Not the owner.
#define | MessageQ_E_REMOTEACTIVE -13
Operation resulted in error.
#define | MessageQ_E_INVALIDHEAPID -14
An invalid heap id was encountered.
#define | MessageQ_E_INVALIDPROCID -15
An invalid MultiProc id was encountered.
#define | MessageQ_E_MAXREACHED -16
The max has been reached.
#define | MessageQ_E_UNREGISTEREDHEAPID -17
Attempting to use an unregistered heap id.
#define | MessageQ_E_CANNOTFREESTATICMSG -18
Trying to free a statically initialized message.
#define | MessageQ_E_UNBLOCKED -19
MessageQ was unblocked.
#define | MessageQ_FOREVER ~(0)
Used as the timeout value to specify wait forever.
#define | MessageQ_INVALIDMSGID 0xffff
Invalid message id.
#define | MessageQ_INVALIDMESSAGEQ 0xffff
Invalid message queue.
#define | MessageQ_PRIORITYMASK 0x3
Mask to extract priority setting.
#define | MessageQ_getDstQueue(msg)
Extract the destination queue from a message.
#define | MessageQ_getMsgId(msg) (((MessageQ_Msg) (msg))->msgId)
Retrieves the message ID of a message.
#define | MessageQ_getMsgSize(msg) (((MessageQ_Msg) (msg))->msgSize)
Returns the size of the specified message. This function is helpful when re-using a message.
#define | MessageQ_getMsgPri(msg) ((((MessageQ_Msg) (msg))->flags & MessageQ_PRIORITYMASK))
Gets the message priority of a message.
#define | MessageQ_getProcId(queueId) ((UInt16)((queueId) >> 16))
Returns the MultiProc processor id on which the queue resides.
#define | MessageQ_getReplyQueue(msg)
Retrieves the embedded source message queue from a message.
#define | MessageQ_setMsgId(msg, id) ((MessageQ_Msg) (msg))->msgId = (id)
Sets the message id in a message.
#define | MessageQ_setMsgPri(msg, priority) (((MessageQ_Msg) (msg))->flags = ((priority) & MessageQ_PRIORITYMASK))
Sets the message priority of a message.

Typedefs

typedef UInt32 | MessageQ_QueueId
Type used with MessageQ_[open/set/get]ReplyQueue and MessageQ_put.
typedef UInt16 | MessageQ_QueueIndex
Local queue index.
typedef struct MessageQ_Object * | MessageQ_Handle
MessageQ_Handle type.
typedef MessageQ_MsgHeader * | MessageQ_Msg
Typedef for ease of use.

Enumerations

enum MessageQ_Priority {
MessageQ_NORMALPRI = 0,
MessageQ_HIGHPRI = 1,
MessageQ_RESERVEDPRI = 2,
MessageQ_URGENTPRI = 3
}

Message priority.

More...

Functions

Void | MessageQ_Params_init (MessageQ_Params *params)
Initialize MessageQ_Params.
MessageQ_Handle | MessageQ_create (String name, const MessageQ_Params *params)
Create a MessageQ instance.
Int | MessageQ_delete (MessageQ_Handle *handlePtr)
Delete a created MessageQ instance.
Int | MessageQ_open (String name, MessageQ_QueueId *queueId)
Open a message queue.
Int | MessageQ_close (MessageQ_QueueId *queueId)
Close the opened handle.
MessageQ_Msg | MessageQ_alloc (UInt16 heapId, UInt32 size)
Allocates a message from the heap.
Int | MessageQ_free (MessageQ_Msg msg)
Frees a message back to the heap.
Int | MessageQ_registerHeap (Ptr heap, UInt16 heapId)
Register a heap with MessageQ.
Int | MessageQ_unregisterHeap (UInt16 heapId)
Unregister a heap with MessageQ.
Void | MessageQ_setMsgTrace (MessageQ_Msg msg, Bool traceFlag)
Sets the message tracing flag on a given message.
Void | MessageQ_staticMsgInit (MessageQ_Msg msg, UInt32 size)
Initializes a message not obtained from MessageQ_alloc.
Int | MessageQ_get (MessageQ_Handle handle, MessageQ_Msg *msg, UInt timeout)
Gets a message from the message queue.
Int | MessageQ_put (MessageQ_QueueId queueId, MessageQ_Msg msg)
Place a message onto a message queue.
Int | MessageQ_count (MessageQ_Handle handle)
Returns the number of messages in a message queue.
UInt32 | MessageQ_getQueueId (MessageQ_Handle handle)
Returns the QueueId associated with the handle.
Void | MessageQ_setReplyQueue (MessageQ_Handle handle, MessageQ_Msg msg)
Embeds a source message queue into a message.
Void | MessageQ_unblock (MessageQ_Handle handle)
Unblocks a MessageQ.

Define Documentation

#define MessageQ_S_BUSY 2

The resource is still in use.

#define MessageQ_S_ALREADYSETUP 1

The module has been already setup.

#define MessageQ_S_SUCCESS 0

Operation is successful.

#define MessageQ_E_FAIL -1

Operation is not successful.

#define MessageQ_E_INVALIDARG -2

There is an invalid argument.

#define MessageQ_E_MEMORY -3

Operation resulted in memory failure.

#define MessageQ_E_ALREADYEXISTS -4

The specified entity already exists.

#define MessageQ_E_NOTFOUND -5

Unable to find the specified entity.

#define MessageQ_E_TIMEOUT -6

Operation timed out.

#define MessageQ_E_INVALIDSTATE -7

Module is not initialized.

#define MessageQ_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define MessageQ_E_RESOURCE -9

Specified resource is not available.

#define MessageQ_E_RESTART -10

Operation was interrupted. Please restart the operation.

#define MessageQ_E_INVALIDMSG -11

An invalid message was encountered.

#define MessageQ_E_NOTOWNER -12

Not the owner.

#define MessageQ_E_REMOTEACTIVE -13

Operation resulted in error.

#define MessageQ_E_INVALIDHEAPID -14

An invalid heap id was encountered.

#define MessageQ_E_INVALIDPROCID -15

An invalid MultiProc id was encountered.

#define MessageQ_E_MAXREACHED -16

The max has been reached.

#define MessageQ_E_UNREGISTEREDHEAPID -17

Attempting to use an unregistered heap id.

#define MessageQ_E_CANNOTFREESTATICMSG -18

Trying to free a statically initialized message.

#define MessageQ_E_UNBLOCKED -19

MessageQ was unblocked.

#define MessageQ_FOREVER ~(0)

Used as the timeout value to specify wait forever.

#define MessageQ_INVALIDMSGID 0xffff

Invalid message id.

#define MessageQ_INVALIDMESSAGEQ 0xffff

Invalid message queue.

#define MessageQ_PRIORITYMASK 0x3

Mask to extract priority setting.

#define MessageQ_getDstQueue ( msg )
Value:
((msg)->dstId == (MessageQ_QueueIndex)MessageQ_INVALIDMESSAGEQ) ?     \
            (MessageQ_QueueId)MessageQ_INVALIDMESSAGEQ :                      \
            (MessageQ_QueueId)(((MessageQ_QueueId)MultiProc_self() << 16u)    \
            | (((MessageQ_Msg)(msg))->dstId))

Extract the destination queue from a message.

Can only be used on the same processor where the destination queue resides. This function should only be used by Message Queue Transport writers.

Parameters:
msg Message
Return values:
Destination-Queue-ID Destination message queue.
#define MessageQ_getMsgId ( msg ) (((MessageQ_Msg) (msg))->msgId)

Retrieves the message ID of a message.

This function retrieves the message ID from the message. The MessageQ_setMsgId function is used to insert the message ID.

The message id is part of the MessageQ_MsgHeader header and is in every MessageQ message. All message ids are initialized to MessageQ_INVALIDMSGID in the MessageQ_alloc and MessageQ_staticMsgInit calls.

Parameters:
msg Message
Return values:
size Message ID from the message
#define MessageQ_getMsgSize ( msg ) (((MessageQ_Msg) (msg))->msgSize)

Returns the size of the specified message. This function is helpful when re-using a message.

Parameters:
msg Message
Return values:
size Size of the message
#define MessageQ_getMsgPri ( msg ) ((((MessageQ_Msg) (msg))->flags & MessageQ_PRIORITYMASK))

Gets the message priority of a message.

Return values:
priority Priority of the message
#define MessageQ_getProcId ( queueId ) ((UInt16)((queueId) >> 16))

Returns the MultiProc processor id on which the queue resides.

Message queues reside on the processor that created them. This function allows the caller to determined on which processor the queue resides.

Parameters:
[in] queueId Unique id that identifies the queue
Return values:
procId The MultiProc id on which the queue resides
#define MessageQ_getReplyQueue ( msg )
Value:
(MessageQ_QueueId)((((MessageQ_Msg) (msg))->replyProc << 16u) \
                | ((MessageQ_Msg)(msg))->replyId)

Retrieves the embedded source message queue from a message.

This function along with the MessageQ_setReplyQueue} function can be used instead of the open function. The sender of a message can embed a messageQ into the message with the MessageQ_setReplyQueue function. The receiver of the message can extract the message queue ID with this function.

This method is particularing useful in a client/server relationship where the server does not want to know who the clients are. The clients can embed their message queue into the message to the server and the server extracts it and uses it to reply.

Parameters:
msg Message
Return values:
Reply-Queue Reply Message Queue ID
#define MessageQ_setMsgId | ( | msg,
 |  | id
 | ) | ((MessageQ_Msg) (msg))->msgId = (id)

Sets the message id in a message.

This function sets the message ID in the message. The MessageQ_getMsgId function is used to retrieve the message ID. The message id is part of the MessageQ_MsgHeader header and is in every MessageQ message. All message ids are initialized to MessageQ_INVALIDMSGID in the MessageQ_alloc and MessageQ_staticMsgInit calls.

Parameters:
msg | Message
id | Message id
#define MessageQ_setMsgPri | ( | msg,
 |  | priority
 | ) | (((MessageQ_Msg) (msg))->flags = ((priority) & MessageQ_PRIORITYMASK))

Sets the message priority of a message.

Parameters:
msg | Message
priority | Priority of message to be set.

Typedef Documentation

typedef UInt32 MessageQ_QueueId

Type used with MessageQ_[open/set/get]ReplyQueue and MessageQ_put.

typedef UInt16 MessageQ_QueueIndex

Local queue index.

typedef struct MessageQ_Object* MessageQ_Handle

MessageQ_Handle type.

typedef MessageQ_MsgHeader* MessageQ_Msg

Typedef for ease of use.

Enumeration Type Documentation

enum MessageQ_Priority

Message priority.

Enumerator:
MessageQ_NORMALPRI

Normal Priority

MessageQ_HIGHPRI

High Priority

MessageQ_RESERVEDPRI

Reserved Priorit

MessageQ_URGENTPRI

Urgent Priority

Function Documentation

Void MessageQ_Params_init ( MessageQ_Params * params )

Initialize MessageQ_Params.

Parameters:
[in] params Parameters required to create a MessageQ
MessageQ_Handle MessageQ_create | ( | String | name,
 |  | const MessageQ_Params * | params
 | ) |  |

Create a MessageQ instance.

The name supplied here does not have to be in persistent memory. The maximum length of the string supplied here, including the '\0' terminator is '32' by default.

There are no verifications to ensure that the name supplied in MessageQ_create is unique across all processors. Caution must be exercised to ensure that each processor uses a unique name.

Parameters:
[in] | name | Name of the queue
[in] | params | Initialized MessageQ parameters
Returns:
MessageQ Handle
Int MessageQ_delete ( MessageQ_Handle * handlePtr )

Delete a created MessageQ instance.

This function deletes a created message queue instance. If the message queue is non-empty, any messages remaining in the queue will not be freed and will be lost.

Parameters:
[in,out] handlePtr Pointer to handle to delete.
Returns:
MessageQ status:
  • MessageQ_E_FAIL: delete failed
  • MessageQ_S_SUCCESS: delete successful
Int MessageQ_open | ( | String | name,
 |  | MessageQ_QueueId * | queueId
 | ) |  |

Open a message queue.

MessageQ_open is used to retrieve the queue id for a queue that has been created either locally or remotely. Note that the queueId is simply a 32 bit value that uniquely identifies a queue. Therefore, it is also possible to put a message on a queue whose queueId has been retrieved using any other method.

Parameters:
[in] | name | Name of queue to open
[out] | queueId | QueueId that can be used in MessageQ_put
Returns:
MessageQ status:
  • MessageQ_E_NOTFOUND: open failed (name not found on any processor)
  • MessageQ_S_SUCCESS: open successful
Int MessageQ_close ( MessageQ_QueueId * queueId )

Close the opened handle.

Only close a queueId that was returned from MessageQ_open.

Parameters:
[in] queueId Pointer to queueId to close
Returns:
MessageQ status:
  • MessageQ_E_FAIL: close failed
  • MessageQ_S_SUCCESS: close successful
MessageQ_Msg MessageQ_alloc | ( | UInt16 | heapId,
 |  | UInt32 | size
 | ) |  |

Allocates a message from the heap.

This function allocates a message from the heap associated with the heapId. The first field of the message must be a #MessageQ_MsgHeader structure. For example:

      typedef struct MyMsg {
         MessageQ_MsgHeader header;
         ...
      } MyMsg;
Parameters:
[in] | heapId | heapId
[in] | size | size of requested message (including the #MessageQ_MsgHeader).
Returns:
Allocated message or NULL if no memory.
Int MessageQ_free ( MessageQ_Msg msg )

Frees a message back to the heap.

Frees the message back to the heap that was used to allocate it.

Parameters:
[in] msg Message to free.
Returns:
MessageQ status:
  • MessageQ_E_FAIL: failed to free message
  • MessageQ_S_SUCCESS: successfully freed the message
Int MessageQ_registerHeap | ( | Ptr | heap,
 |  | UInt16 | heapId
 | ) |  |

Register a heap with MessageQ.

This function registers a heap with MessageQ. The user selects a unique heapId associated with this heap. When a message is allocated via the MessageQ_alloc function, the heapId is specified. Internally, MessageQ uses the heapId to access the heap.

Care must be taken when assigning heapIds. Internally MessageQ stores the heapId into the message. When the message is freed (via MessageQ_free), the heapId is used to determine which heap to use. On systems with shared memory the heapIds must match on corresponding processors. For example, assume there is a heap called myHeap which acts on shared memory and processors 0 and 1 both use this heap. When you register the heap with MessageQ, the same heapId must be used on both processor 0 and 1.

If a heap is already registered for the specified heapId, no action is taken and MessageQ_E_ALREADYEXISTS is returned.

Parameters:
[in] | heap | Heap to register
[in] | heapId | heapId associated with the heap
Returns:
MessageQ status:
  • MessageQ_S_SUCCESS: heap successfully registered
  • MessageQ_E_ALREADYEXISTS: heap already exists with heapId
Int MessageQ_unregisterHeap ( UInt16 heapId )

Unregister a heap with MessageQ.

This function unregisters the heap associated with the heapId. Care must be taken to ensure that there are no outstanding messages allocated from this heap. If there are outstanding messages, an attempt to free the message will result in non-deterministic results.

Parameters:
[in] heapId Heap to unregister
Returns:
MessageQ status:
  • MessageQ_S_SUCCESS: heap successfully unregistered
Void MessageQ_setMsgTrace | ( | MessageQ_Msg | msg,
 |  | Bool | traceFlag
 | ) |  |

Sets the message tracing flag on a given message.

This function enables message tracing for a message. Tracing is offered in the form of Log messages that are output during operations on the message (i.e. MessageQ_free, MessageQ_put, etc).

Parameters:
msg | Message
traceFlag | Message trace flag (TRUE = tracing enabled)
Void MessageQ_staticMsgInit | ( | MessageQ_Msg | msg,
 |  | UInt32 | size
 | ) |  |

Initializes a message not obtained from MessageQ_alloc.

There are several fields in the #MessageQ_MsgHeader that are initialized by the MessageQ_alloc function. The staticMsgInit can be used to initialize these fields for messages that are not allocated from MessageQ.

There is one strict constraint with using messages not allocated from MessageQ. The message cannot be freed via MessageQ_free function. This includes

  • The application calling MessageQ_free on the same processor
  • The application calling MessageQ_free on a different processor
  • The application cannot send the message to another processor where the transport might call MessageQ_free on the message. For example, copy based transport call MessageQ_free after sending the message. If a staticMsgInit'd msg is passed to MessageQ_free an assert will occur
Parameters:
msg | Message to initialize
[in] | size | Size of the message in MAUs
Int MessageQ_get | ( | MessageQ_Handle | handle,
 |  | MessageQ_Msg * | msg,
 |  | UInt | timeout
 | ) |  |

Gets a message from the message queue.

This function returns a status. It also returns a message in msg. If no message is available, it blocks on the synchronizer object until the synchronizer is signaled or a timeout occurs. The synchronizer is signaled, when Message_put is called on the MessageQ handle. If a timeout occurs, the msg is set to NULL and the status is MessageQ_E_TIMEOUT. If a timeout of zero is specified, the function returns immediately and if no message is available, the msg is set to NULL and the status is MessageQ_E_TIMEOUT. The MessageQ_E_UNBLOCKED status is return, if MessageQ_unblock is called on the MessageQ handle. If a message is successfully retrieved, the msg is set to the message and a MessageQ_S_SUCCESS status is returned.

Parameters:
[in] | handle | MessageQ handle
[out] | msg | Pointer to the message
[in] | timeout | Maximum duration to wait for a message in microseconds.
Returns:
MessageQ status:
  • MessageQ_S_SUCCESS: Message successfully returned
  • MessageQ_E_TIMEOUT: MessageQ_get timed out
  • MessageQ_E_UNBLOCKED: MessageQ_get was unblocked
  • MessageQ_E_FAIL: A general failure has occurred
See also:
MessageQ_put MessageQ_unblock
Int MessageQ_put | ( | MessageQ_QueueId | queueId,
 |  | MessageQ_Msg | msg
 | ) |  |

Place a message onto a message queue.

This call places the message onto the specified message queue. The message queue could be local or remote. The MessageQ module manages the delivery.

In the case where the queue is remote, MessageQ does not guarantee that the message is actually delivered before the MessageQ_put() call returns

The queue id must have been returned from one of the following functions:

  • MessageQ_open
  • MessageQ_getReplyQueue
  • MessageQ_getDstQueue

After the message is placed onto the final destination, the queue's MessageQ_Params::synchronizer signal function is called.

The application loses ownership of the message once put() is called.

Parameters:
[in] | queueId | Destination MessageQ
[in] | msg | Message to be sent.
Returns:
Status of the call.
  • MessageQ_S_SUCCESS denotes success.
  • MessageQ_E_FAIL denotes failure. The put was not successful. The caller still owns the message.
Int MessageQ_count ( MessageQ_Handle handle )

Returns the number of messages in a message queue.

This function returns the number of messages in a message queue.

Parameters:
[in] handle MessageQ handle
Returns:
Number of messages in the message queue.
UInt32 MessageQ_getQueueId ( MessageQ_Handle handle )

Returns the QueueId associated with the handle.

Since the MessageQ_put function takes a QueueId, the creator of a message queue cannot send a message to itself without retrieving the QueueId. This function extracts the QueueId from the object.

Parameters:
[in] handle MessageQ handle
Returns:
QueueId associated to the object
Void MessageQ_setReplyQueue | ( | MessageQ_Handle | handle,
 |  | MessageQ_Msg | msg
 | ) |  |

Embeds a source message queue into a message.

This function along with the MessageQ_getReplyQueue function can be used instead of the MessageQ_open function. The sender of a message can embed a messageQ into the message with this function. The receiver of the message can extract the message queue id with the MessageQ_getReplyQueue function.

This method is particularly useful in a client/server relationship where the server does not want to know who the clients are. The clients can embed their message queue into the message to the server and the server extracts it and uses it to reply.

Parameters:
handle | MessageQ handle
msg | Message to embed queue into
Void MessageQ_unblock ( MessageQ_Handle handle )

Unblocks a MessageQ.

Unblocks a reader thread that is blocked on a MessageQ_get. The MessageQ_get call will return with status MessageQ_E_UNBLOCKED indicating that it returned due to a MessageQ_unblock rather than a timeout or a received message. This call should only be used during a shutdown sequence in order to ensure that there is no blocked reader on a queue before deleting the queue. A queue may not be used after it has been unblocked.

MessageQ_unblock works by raising a flag in the queue indicating that it is unblocked and then signaling the synchronizer that is configured with the target queue. If MessageQ_unblock is called upon a queue that has no blocked listeners, then any subsequent MessageQ_get will not block and will immediately return MessageQ_E_UNBLOCKED regardless of whether there is a message on the queue.

Restrictions:

  • A queue may not be used after it has been unblocked.
  • MessageQ_unblock may only be called on a local queue.
  • May only be used with a queue configured with a blocking synchronizer.
Parameters:
[in] handle MessageQ handle
See also:
MessageQ_get


SysLink Application Programming Interface (API): MessageQ.h Source File

MessageQ.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2012, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * */
00032
00136 #ifndef ti_ipc_MessageQ__include
00137 #define ti_ipc_MessageQ__include
00138
00139 #include <ti/ipc/MultiProc.h>
00140
00141 #if defined (__cplusplus)
00142 extern "C" {
00143 #endif
00144
00145 /* =============================================================================
00146  *  All success and failure codes for the module
00147  * =============================================================================
00148  */
00149
00154 #define MessageQ_S_BUSY                  2
00155
00160 #define MessageQ_S_ALREADYSETUP          1
00161
00166 #define MessageQ_S_SUCCESS               0
00167
00172 #define MessageQ_E_FAIL                 -1
00173
00178 #define MessageQ_E_INVALIDARG           -2
00179
00184 #define MessageQ_E_MEMORY               -3
00185
00190 #define MessageQ_E_ALREADYEXISTS        -4
00191
00196 #define MessageQ_E_NOTFOUND             -5
00197
00202 #define MessageQ_E_TIMEOUT              -6
00203
00208 #define MessageQ_E_INVALIDSTATE         -7
00209
00214 #define MessageQ_E_OSFAILURE            -8
00215
00220 #define MessageQ_E_RESOURCE             -9
00221
00226 #define MessageQ_E_RESTART              -10
00227
00232 #define MessageQ_E_INVALIDMSG           -11
00233
00238 #define MessageQ_E_NOTOWNER             -12
00239
00244 #define MessageQ_E_REMOTEACTIVE         -13
00245
00250 #define MessageQ_E_INVALIDHEAPID        -14
00251
00256 #define MessageQ_E_INVALIDPROCID        -15
00257
00262 #define MessageQ_E_MAXREACHED           -16
00263
00268 #define MessageQ_E_UNREGISTEREDHEAPID   -17
00269
00274 #define MessageQ_E_CANNOTFREESTATICMSG  -18
00275
00280 #define MessageQ_E_UNBLOCKED            -19
00281
00282 /* =============================================================================
00283  *  Macros
00284  * =============================================================================
00285  */
00286
00290 #define MessageQ_FOREVER                ~(0)
00291
00295 #define MessageQ_INVALIDMSGID           0xffff
00296
00300 #define MessageQ_INVALIDMESSAGEQ        0xffff
00301
00305 #define MessageQ_PRIORITYMASK           0x3
00306
00317 #define MessageQ_getDstQueue(msg)                                             \
00318         ((msg)->dstId == (MessageQ_QueueIndex)MessageQ_INVALIDMESSAGEQ) ?     \
00319             (MessageQ_QueueId)MessageQ_INVALIDMESSAGEQ :                      \
00320             (MessageQ_QueueId)(((MessageQ_QueueId)MultiProc_self() << 16u)    \
00321             | (((MessageQ_Msg)(msg))->dstId))
00322
00323
00338 #define MessageQ_getMsgId(msg) (((MessageQ_Msg) (msg))->msgId)
00339
00348 #define MessageQ_getMsgSize(msg) (((MessageQ_Msg) (msg))->msgSize)
00349
00355 #define MessageQ_getMsgPri(msg)        \
00356                  ((((MessageQ_Msg) (msg))->flags & MessageQ_PRIORITYMASK))
00357
00368 #define MessageQ_getProcId(queueId)     \
00369                  ((UInt16)((queueId) >> 16))
00370
00388 #define MessageQ_getReplyQueue(msg)           \
00389                 (MessageQ_QueueId)((((MessageQ_Msg) (msg))->replyProc << 16u) \
00390                 | ((MessageQ_Msg)(msg))->replyId)
00391
00404 #define MessageQ_setMsgId(msg, id) ((MessageQ_Msg) (msg))->msgId = (id)
00405
00412 #define MessageQ_setMsgPri(msg, priority) \
00413         (((MessageQ_Msg) (msg))->flags = ((priority) & MessageQ_PRIORITYMASK))
00414
00415 /* =============================================================================
00416  *  Structures & Enums
00417  * =============================================================================
00418  */
00419
00424 typedef UInt32 MessageQ_QueueId;
00425
00429 typedef UInt16 MessageQ_QueueIndex;
00430
00434 typedef struct MessageQ_Object *MessageQ_Handle;
00435
00439 typedef struct {
00440     Void *synchronizer;
00449 } MessageQ_Params;
00450
00454 typedef struct {
00455     Bits32       reserved0;
00456     Bits32       reserved1;
00457     Bits32       msgSize;
00458     Bits16       flags;
00459     Bits16       msgId;
00460     Bits16       dstId;
00461     Bits16       dstProc;
00462     Bits16       replyId;
00463     Bits16       replyProc;
00464     Bits16       srcProc;
00465     Bits16       heapId;
00466     Bits16       seqNum;
00467     Bits16       reserved;
00468 } MessageQ_MsgHeader;
00469
00473 typedef MessageQ_MsgHeader *MessageQ_Msg;
00474
00478 typedef enum {
00479     MessageQ_NORMALPRI      = 0,
00480     MessageQ_HIGHPRI        = 1,
00481     MessageQ_RESERVEDPRI    = 2,
00482     MessageQ_URGENTPRI      = 3
00483 } MessageQ_Priority;
00484
00485
00486 /* =============================================================================
00487  *  MessageQ Module-wide Functions
00488  * =============================================================================
00489  */
00490
00496 Void MessageQ_Params_init(MessageQ_Params *params);
00497
00514 MessageQ_Handle MessageQ_create(String name, const MessageQ_Params *params);
00515
00529 Int MessageQ_delete(MessageQ_Handle *handlePtr);
00530
00548 Int MessageQ_open(String name, MessageQ_QueueId *queueId);
00549
00561 Int MessageQ_close(MessageQ_QueueId *queueId);
00562
00582 MessageQ_Msg MessageQ_alloc(UInt16 heapId, UInt32 size);
00583
00595 Int MessageQ_free(MessageQ_Msg msg);
00596
00624 Int MessageQ_registerHeap(Ptr heap, UInt16 heapId);
00625
00639 Int MessageQ_unregisterHeap(UInt16 heapId);
00640
00651 Void MessageQ_setMsgTrace(MessageQ_Msg msg, Bool traceFlag);
00652
00675 Void MessageQ_staticMsgInit(MessageQ_Msg msg, UInt32 size);
00676
00677 /* =============================================================================
00678  *  MessageQ Per-instance Functions
00679  * =============================================================================
00680  */
00681
00710 Int MessageQ_get(MessageQ_Handle handle, MessageQ_Msg *msg, UInt timeout);
00711
00740 Int MessageQ_put(MessageQ_QueueId queueId, MessageQ_Msg msg);
00741
00751 Int MessageQ_count(MessageQ_Handle handle);
00752
00765 UInt32 MessageQ_getQueueId(MessageQ_Handle handle);
00766
00784 Void MessageQ_setReplyQueue(MessageQ_Handle handle, MessageQ_Msg msg);
00785
00812 Void MessageQ_unblock(MessageQ_Handle handle);
00813
00814 #if defined (__cplusplus)
00815 }
00816 #endif /* defined (__cplusplus) */
00817 #endif /* ti_ipc_MessageQ__include */
00818
00819 /*
00820  */
00821
00822 /*
00823  *  @(#) ti.ipc; 1, 0, 0, 0,1; 5-22-2012 16:16:05; /db/vtree/library/trees/ipc/ipc-h32/src/ xlibrary
00824
00825  */
00826


SysLink Application Programming Interface (API): MultiProc.h File Reference

Defines | Functions

MultiProc.h File Reference

Detailed Description

Processor ID Manager.

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

Many IPC modules require the ability to uniquely specify and identify processors in a multi-processor environment. The MultiProc module centeralizes processor id management into one module. Since this configuration is almost always universally required, most IPC applications require supplying configuration of this module.

Each processor in the MultiProc module may be uniquely identified by either a name string or an integer ranging from 0 to NUMPROCESSORS - 1.

At runtime, the MultiProc_getId call returns the MultiProc id for any processor given its name.

The MultiProc header should be included in an application as follows:

  #include <ti/ipc/MultiProc.h>

Go to the source code of this file.

Defines

#define | MultiProc_S_BUSY 2
The resource is still in use.
#define | MultiProc_S_ALREADYSETUP 1
The module has been already setup.
#define | MultiProc_S_SUCCESS 0
Operation is successful.
#define | MultiProc_E_FAIL -1
Generic failure.
#define | MultiProc_E_INVALIDARG -2
Argument passed to function is invalid.
#define | MultiProc_E_MEMORY -3
Operation resulted in memory failure.
#define | MultiProc_E_ALREADYEXISTS -4
The specified entity already exists.
#define | MultiProc_E_NOTFOUND -5
Unable to find the specified entity.
#define | MultiProc_E_TIMEOUT -6
Operation timed out.
#define | MultiProc_E_INVALIDSTATE -7
Module is not initialized.
#define | MultiProc_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | MultiProc_E_RESOURCE -9
Specified resource is not available.
#define | MultiProc_E_RESTART -10
Operation was interrupted. Please restart the operation.
#define | MultiProc_INVALIDID (0xFFFF)
Invalid processor id.

Functions

UInt16 | MultiProc_getBaseIdOfCluster (Void)
Gets the base MultiProc id of the cluster.
UInt16 | MultiProc_getId (String name)
Gets the MultiProc id.
String | MultiProc_getName (UInt16 id)
Gets the name of a processor.
UInt16 | MultiProc_getNumProcessors (Void)
Gets the number of processors.
UInt16 | MultiProc_getNumProcsInCluster (Void)
Gets the number of processors in the cluster.
UInt16 | MultiProc_self (Void)
Gets executing processor's MultiProc id.
Int | MultiProc_setBaseIdOfCluster (UInt16 baseId)
Sets executing processor's base id of the cluster.
Int | MultiProc_setLocalId (UInt16 id)
Sets executing processor's MultiProc id.

Define Documentation

#define MultiProc_S_BUSY 2

The resource is still in use.

#define MultiProc_S_ALREADYSETUP 1

The module has been already setup.

#define MultiProc_S_SUCCESS 0

Operation is successful.

#define MultiProc_E_FAIL -1

Generic failure.

#define MultiProc_E_INVALIDARG -2

Argument passed to function is invalid.

#define MultiProc_E_MEMORY -3

Operation resulted in memory failure.

#define MultiProc_E_ALREADYEXISTS -4

The specified entity already exists.

#define MultiProc_E_NOTFOUND -5

Unable to find the specified entity.

#define MultiProc_E_TIMEOUT -6

Operation timed out.

#define MultiProc_E_INVALIDSTATE -7

Module is not initialized.

#define MultiProc_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define MultiProc_E_RESOURCE -9

Specified resource is not available.

#define MultiProc_E_RESTART -10

Operation was interrupted. Please restart the operation.

#define MultiProc_INVALIDID (0xFFFF)

Invalid processor id.

Function Documentation

UInt16 MultiProc_getBaseIdOfCluster ( Void )

Gets the base MultiProc id of the cluster.

Retrieves the base MultiProc id for the cluster of processors.

Returns:
MultiProc id for base of cluster
See also:
MultiProc_getClusterId
UInt16 MultiProc_getId ( String name )

Gets the MultiProc id.

Retrieves the MultiProc id for the processor with corresponding MultiProc name. MultiProc_INVALIDID is returned if the name was not found.

Parameters:
name Name of the processor.
Returns:
MultiProc id
See also:
MultiProc_getName
String MultiProc_getName ( UInt16 id )

Gets the name of a processor.

Parameters:
id MultiProc id.
Returns:
Name of the processor

The returned string should never be modified.

See also:
MultiProc_getId
UInt16 MultiProc_getNumProcessors ( Void )

Gets the number of processors.

Returns:
Number of processors configured with MultiProc
UInt16 MultiProc_getNumProcsInCluster ( Void )

Gets the number of processors in the cluster.

Returns:
Number of processors in cluster
UInt16 MultiProc_self ( Void )

Gets executing processor's MultiProc id.

Returns:
Executing processor's id
See also:
MultiProc_getId
Int MultiProc_setBaseIdOfCluster ( UInt16 baseId )

Sets executing processor's base id of the cluster.

Parameters:
baseId The MultiProc base id of the cluster
Returns:
MultiProc status:
  • MultiProc_S_SUCCESS: sucessfully set base id of cluster
  • MultiProc_E_FAIL: failed to set base id of cluster
Int MultiProc_setLocalId ( UInt16 id )

Sets executing processor's MultiProc id.

Parameters:
id MultiProc id
Returns:
MultiProc status:
  • MultiProc_S_SUCCESS: MultiProc id successfully set
  • MultiProc_E_FAIL: MultiProc id cannot be set at this time


SysLink Application Programming Interface (API): MultiProc.h Source File

MultiProc.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2012, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * */
00055 #ifndef ti_ipc_MultiProc__include
00056 #define ti_ipc_MultiProc__include
00057
00058 #if defined (__cplusplus)
00059 extern "C" {
00060 #endif
00061
00062 /* =============================================================================
00063  *  All success and failure codes for the module
00064  * =============================================================================
00065  */
00066
00071 #define MultiProc_S_BUSY                 2
00072
00077 #define MultiProc_S_ALREADYSETUP         1
00078
00083 #define MultiProc_S_SUCCESS              0
00084
00089 #define MultiProc_E_FAIL                -1
00090
00095 #define MultiProc_E_INVALIDARG          -2
00096
00101 #define MultiProc_E_MEMORY              -3
00102
00107 #define MultiProc_E_ALREADYEXISTS       -4
00108
00113 #define MultiProc_E_NOTFOUND            -5
00114
00119 #define MultiProc_E_TIMEOUT             -6
00120
00125 #define MultiProc_E_INVALIDSTATE        -7
00126
00131 #define MultiProc_E_OSFAILURE           -8
00132
00137 #define MultiProc_E_RESOURCE            -9
00138
00143 #define MultiProc_E_RESTART             -10
00144
00145 /* =============================================================================
00146  *  Macros
00147  * =============================================================================
00148  */
00149
00154 #define MultiProc_INVALIDID             (0xFFFF)
00155
00156 /* =============================================================================
00157  *  MultiProc Module-wide Functions
00158  * =============================================================================
00159  */
00160
00170 UInt16 MultiProc_getBaseIdOfCluster(Void);
00171
00184 UInt16 MultiProc_getId(String name);
00185
00197 String MultiProc_getName(UInt16 id);
00198
00204 UInt16 MultiProc_getNumProcessors(Void);
00205
00211 UInt16 MultiProc_getNumProcsInCluster(Void);
00212
00220 UInt16 MultiProc_self(Void);
00221
00231 Int MultiProc_setBaseIdOfCluster(UInt16 baseId);
00232
00242 Int MultiProc_setLocalId(UInt16 id);
00243
00244 #if defined (__cplusplus)
00245 }
00246 #endif /* defined (__cplusplus) */
00247
00248 #endif /* ti_ipc_MultiProc__include */
00249
00250 /*
00251  */
00252 /*
00253  *  @(#) ti.ipc; 1, 0, 0, 0,1; 5-22-2012 16:16:05; /db/vtree/library/trees/ipc/ipc-h32/src/ xlibrary
00254
00255  */
00256


SysLink Application Programming Interface (API): NameServer.h File Reference

Data Structures | Defines | Typedefs | Functions

NameServer.h File Reference

Detailed Description

NameServer Manager.

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

The NameServer module manages local name/value pairs that enables an application and other modules to store and retrieve values based on a name. The module supports different lengths of values. The NameServer_add and NameServer_get functions are for variable length values. The NameServer_addUInt32 and NameServer_getUInt32 functions are optimized for UInt32 variables and constants.

The NameServer module maintains thread-safety for the APIs. However, the NameServer APIs cannot be called from an interrupt (i.e. Hwi) context. However, it is safe to use the APIs in Swi's and Tasks.

Each NameServer instance manages a different name/value table. This allows each table to be customized to meet the requirements of user:

  • Size differences: one table could allow long values (e.g. > 32 bits) while another table could be used to store integers. This customization enables better memory usage.
  • Performance: improves search time when retrieving a name/value pair.
  • Relax name uniqueness: names in a specific table must be unique, but the same name can be used in different tables.

When adding a name/value pair, the name and value are copied into internal buffers in NameServer. To minimize runtime memory allocation these buffers can be allocated at creation time.

NameServer maintains the name/values table in local memory (e.g. not shared memory). However the NameServer module can be used in a multiprocessor system.

The NameServer module uses the MultiProc module for identifying the different processors. Which remote processors and the order they are queried is determined by the procId array in the NameServer_get function.

Currently there is no endian or wordsize conversion performed by the NameServer module. Also there is no asynchronous support at this time.

The NameServer header should be included in an application as follows:

  #include <ti/ipc/NameServer.h>

Go to the source code of this file.

Data Structures

struct | NameServer_Params
NameServer_Handle type. More...

Defines

#define | NameServer_S_BUSY 2
The resource is still in use.
#define | NameServer_S_ALREADYSETUP 1
The module has been already setup.
#define | NameServer_S_SUCCESS 0
Operation is successful.
#define | NameServer_E_FAIL -1
Generic failure.
#define | NameServer_E_INVALIDARG -2
Argument passed to function is invalid.
#define | NameServer_E_MEMORY -3
Operation resulted in memory failure.
#define | NameServer_E_ALREADYEXISTS -4
The specified entity already exists.
#define | NameServer_E_NOTFOUND -5
Unable to find the specified entity.
#define | NameServer_E_TIMEOUT -6
Operation timed out.
#define | NameServer_E_INVALIDSTATE -7
Module is not initialized.
#define | NameServer_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | NameServer_E_RESOURCE -9
Specified resource is not available.
#define | NameServer_E_RESTART -10
Operation was interrupted. Please restart the operation.
#define | NameServer_ALLOWGROWTH (~0)
Allow dynamic growth of the NameServer instance table.
#define | NameServer_Params_MAXNAMELEN 16
The default maximum length of the name for the name/value pair.

Typedefs

typedef struct NameServer_Object * | NameServer_Handle
NameServer handle type.
typedef struct NameServer_Params | NameServer_Params
NameServer_Handle type.

Functions

Void | NameServer_Params_init (NameServer_Params *params)
Initializes parameter structure.
NameServer_Handle | NameServer_create (String name, const NameServer_Params *params)
Creates a NameServer instance.
Int | NameServer_delete (NameServer_Handle *handlePtr)
Deletes a NameServer instance.
NameServer_Handle | NameServer_getHandle (String name)
Gets the NameServer handle given the name.
Ptr | NameServer_add (NameServer_Handle handle, String name, Ptr buf, UInt32 len)
Adds a variable length value into the local NameServer table.
Ptr | NameServer_addUInt32 (NameServer_Handle handle, String name, UInt32 value)
Adds a 32-bit value into the local NameServer table.
Int | NameServer_get (NameServer_Handle handle, String name, Ptr buf, UInt32 *len, UInt16 procId[])
Gets the variable value length by name.
Int | NameServer_getUInt32 (NameServer_Handle handle, String name, Ptr buf, UInt16 procId[])
Gets a 32-bit value by name.
Int | NameServer_getLocal (NameServer_Handle handle, String name, Ptr buf, UInt32 *len)
Gets the variable value length by name from the local table.
Int | NameServer_getLocalUInt32 (NameServer_Handle handle, String name, Ptr buf)
Gets a 32-bit value by name from the local table.
Int | NameServer_remove (NameServer_Handle handle, String name)
Remove a name/value pair from the table.
Int | NameServer_removeEntry (NameServer_Handle handle, Ptr entry)
Remove a name/value pair from the table.

Define Documentation

#define NameServer_S_BUSY 2

The resource is still in use.

#define NameServer_S_ALREADYSETUP 1

The module has been already setup.

#define NameServer_S_SUCCESS 0

Operation is successful.

#define NameServer_E_FAIL -1

Generic failure.

#define NameServer_E_INVALIDARG -2

Argument passed to function is invalid.

#define NameServer_E_MEMORY -3

Operation resulted in memory failure.

#define NameServer_E_ALREADYEXISTS -4

The specified entity already exists.

#define NameServer_E_NOTFOUND -5

Unable to find the specified entity.

#define NameServer_E_TIMEOUT -6

Operation timed out.

#define NameServer_E_INVALIDSTATE -7

Module is not initialized.

#define NameServer_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define NameServer_E_RESOURCE -9

Specified resource is not available.

#define NameServer_E_RESTART -10

Operation was interrupted. Please restart the operation.

#define NameServer_ALLOWGROWTH (~0)

Allow dynamic growth of the NameServer instance table.

#define NameServer_Params_MAXNAMELEN 16

The default maximum length of the name for the name/value pair.

Typedef Documentation

typedef struct NameServer_Object* NameServer_Handle

NameServer handle type.

typedef struct NameServer_Params NameServer_Params

NameServer_Handle type.

Function Documentation

Void NameServer_Params_init ( NameServer_Params * params )

Initializes parameter structure.

Parameters:
params Instance param structure
See also:
NameServer_create
NameServer_Handle NameServer_create | ( | String | name,
 |  | const NameServer_Params * | params
 | ) |  |

Creates a NameServer instance.

Parameters:
name | Instance name
params | Instance param structure
Returns:
NameServer handle
See also:
NameServer_delete
Int NameServer_delete ( NameServer_Handle * handlePtr )

Deletes a NameServer instance.

Parameters:
handlePtr Pointer to a NameServer handle
Returns:
Status
  • NameServer_S_SUCCESS: Instance successfully deleted
  • NameServer_E_FAIL: Instance delete failed
See also:
NameServer_create
NameServer_Handle NameServer_getHandle ( String name )

Gets the NameServer handle given the name.

Each NameServer instance has a name. The name and this function can be used by the remote driver module to aid in queries to remote processors. This function allows the caller to get the local handle based on the instance name.

For example, when a remote driver sends a request to the remote processor, it probably contains the name of the instance to query. The receiving remote driver uses that name to obtain the handle for the local NameServer instance in question. Then that instance can be queried for the name/value pair.

This function does not query remote processors.

Parameters:
name Name of instance
Returns:
NameServer handle
Ptr NameServer_add | ( | NameServer_Handle | handle,
 |  | String | name,
 |  | Ptr | buf,
 |  | UInt32 | len
 | ) |  |

Adds a variable length value into the local NameServer table.

This function adds a variable length value into the local table. If the NameServer_Params::checkExisting flag was true on creation, this function searches the table to make sure the name does not already exist. If it does, the name/value pair is not added and the NameServer_E_ALREADYEXISTS error is returned.

There is memory allocation during this function if NameServer_Params::maxRuntimeEntries is set to NameServer_ALLOWGROWTH.

This function copies the name and buffer into the name/value table, so they do not need to be persistent after the call.

The function does not query remote processors to make sure the name is unique.

Parameters:
handle | Instance handle
name | Name for the name/value pair
buf | Pointer to value for the name/value pair
len | length of the value
Returns:
Unique entry identifier
See also:
NameServer_addUInt32, NameServer_get,
Ptr NameServer_addUInt32 | ( | NameServer_Handle | handle,
 |  | String | name,
 |  | UInt32 | value
 | ) |  |

Adds a 32-bit value into the local NameServer table.

This function adds a 32-bit value into the local table. This function is simply a specialized NameServer_add() function that allows a convenient way to add UInt32 bit values without needing to specify the address of a UInt32 local variable.

If the NameServer_Params::checkExisting flag was true on creation, this function searches the table to make sure the name does not already exist. If it does, the name/value pair is not added and the NameServer_E_ALREADYEXISTS error is returned.

This function copies the name into the name/value table.

There is memory allocation during this function if NameServer_Params::maxRuntimeEntries is set to NameServer_ALLOWGROWTH.

The function does not query remote processors to make sure the name is unique.

Parameters:
handle | Instance handle
name | Name for the name/value pair
value | Value for the name/value pair
Returns:
Unique entry identifier
See also:
NameServer_add, NameServer_getUInt32
Int NameServer_get | ( | NameServer_Handle | handle,
 |  | String | name,
 |  | Ptr | buf,
 |  | UInt32 * | len,
 |  | UInt16 | procId[]
 | ) |  |

Gets the variable value length by name.

If the name is found, the value is copied into the value argument, the number of MAUs copied is returned in len, and a success status is returned.

If the name is not found, zero is returned in len, the contents of value are not modified. Not finding a name is not considered an error.

For NameServer to work across processors, each processor must must be assigned a unique id. Because remote NameServer requests usually employ the use of notifications, it is good practice to sleep/wait between successive NameServer_get[UInt32] operations if polling on the success of this call. This helps ensure that remote cores are not inundated by a flood of incoming notifications and helps reduce the possiblity of deadlocks.

The processors to query is determined by the procId array. The array is used to specify which processors to query and the order. The processor ids are determined via the MultiProc module. The following are the valid settings for the procId array:

  • NULL: denotes that the local table is searched first, then all remote processors in ascending order by MultiProc id.
  • Filled in array: The NameServer will search the processors in the order given in the array. The end of the list must be denoted by the MultiProc_INVALIDID value.
  UInt16 queryList[4] = {3, 2, 4, MultiProc_INVALIDID};
  count = NameServer_get(handle, "foo", &value, &len, queryList);

The NameServer_getLocal() call can be used for searching the local table only.

Parameters:
handle | Instance handle
name | Name to query
buf | Pointer where the value is returned
len | Pointer for input/output length.
procId | Array of processor(s) to query
Returns:
NameServer status:
  • NameServer_S_SUCCESS: Successfully found entry
  • NameServer_E_NOTFOUND: Entry was not found, len unchanged
  • NameServer_E_FAIL: Error searching for entry
See also:
NameServer_add, NameServer_getLocal
Int NameServer_getUInt32 | ( | NameServer_Handle | handle,
 |  | String | name,
 |  | Ptr | buf,
 |  | UInt16 | procId[]
 | ) |  |

Gets a 32-bit value by name.

If the name is found, the value is copied into the value argument, and a success status is returned.

If the name is not found, the contents of value are not modified. Not finding a name is not considered an error.

For NameServer to work across processors, each processor must must be assigned a unique id. Because remote NameServer requests usually employ the use of notifications, it is good practice to sleep/wait between successive NameServer_get[UInt32] operations if polling on the success of this call. This helps ensure that remote cores are not inundated by a flood of incoming notifications and helps reduce the possiblity of deadlocks.

The processors to query is determined by the procId array. The array is used to specify which processors to query and the order. The processor ids are determined via the MultiProc module. The following are the valid settings for the procId array:

  • NULL: denotes that the local table is searched first, then all remote processors in ascending order by MultiProc id.
  • Filled in array: The NameServer will search the processors in the order given in the array. The end of the list must be denoted by the MultiProc_INVALIDID value.
  UInt16 queryList[4] = {3, 2, 4, MultiProc_INVALIDID};
  count = NameServer_getUInt32(handle, "foo", &value, queryList);

The NameServer_getLocal() call can be used for searching the local table only.

Parameters:
handle | Instance handle
name | Name to query
buf | Pointer where the value is returned
procId | Array of processor(s) to query
Returns:
Status
  • NameServer_S_SUCCESS: Successfully found entry
  • NameServer_E_NOTFOUND: Entry was not found
  • NameServer_E_FAIL: Error searching for entry
See also:
NameServer_addUInt32, NameServer_getLocalUInt32
Int NameServer_getLocal | ( | NameServer_Handle | handle,
 |  | String | name,
 |  | Ptr | buf,
 |  | UInt32 * | len
 | ) |  |

Gets the variable value length by name from the local table.

If the name is found, the value is copied into the value argument, the number of MAUs copied is returned in len, and a success status is returned.

If the name is not found, zero is returned in len, a fail status is returned and the contents of value are not modified. Not finding a name is not considered an error.

This function only searches the local name/value table.

Parameters:
handle | Instance handle
name | Name to query
buf | Pointer where the value is returned
len | Length of the value
Returns:
Status
  • NameServer_S_SUCCESS: Successfully found entry, len holds amount of data retrieved.
  • NameServer_E_NOTFOUND: Entry was not found, len remains unchanged.
See also:
NameServer_add, NameServer_get
Int NameServer_getLocalUInt32 | ( | NameServer_Handle | handle,
 |  | String | name,
 |  | Ptr | buf
 | ) |  |

Gets a 32-bit value by name from the local table.

If the name is found, the 32-bit value is copied into buf and NameServer_S_SUCCESS is returned.

If the name is not found, zero is copied into buf and NameServer_E_NOTFOUND is returned.

This function only searches the local name/value table.

Parameters:
handle | Instance handle
name | Name to query
buf | Pointer where the value is returned
Returns:
Status
  • NameServer_S_SUCCESS: Successfully found entry
  • NameServer_E_NOTFOUND: Entry was not found
See also:
NameServer_addUInt32, NameServer_getUInt32
Int NameServer_remove | ( | NameServer_Handle | handle,
 |  | String | name
 | ) |  |

Remove a name/value pair from the table.

This function removes a name/value pair from the table.

If NameServer_Params::maxRuntimeEntries is set to NameServer_ALLOWGROWTH, memory will be freed which was allocated in NameServer_add(). Otherwise, no memory is freed during this call. The entry in the table is simply emptied. When another NameServer_add() occurs, it will reuse the empty entry.

Parameters:
handle | Instance handle
name | Name to remove
Returns:
Status
  • NameServer_S_SUCCESS: Successfully removed entry or entry does not exists
  • NameServer_E_FAIL: Operation failed
See also:
NameServer_add
Int NameServer_removeEntry | ( | NameServer_Handle | handle,
 |  | Ptr | entry
 | ) |  |

Remove a name/value pair from the table.

This function removes an entry from the table based on the unique identifier returned from NameServer_add() or NameServer_addUInt32().

If NameServer_Params::maxRuntimeEntries is set to NameServer_ALLOWGROWTH, memory will be freed which was allocated in NameServer_add(). Otherwise, no memory is freed during this call. The entry in the table is simply emptied. When another NameServer_add() occurs, it will reuse the empty entry.

Once an Entry is removed from the NameServer table, it cannot be removed again (just like you cannot free the same block of memory twice).

Parameters:
handle | Instance handle
entry | Pointer to entry to be removed
Returns:
Status
  • NameServer_S_SUCCESS: Successfully removed entry or entry does not exists
  • NameServer_E_FAIL: Operation failed
See also:
NameServer_add


SysLink Application Programming Interface (API): NameServer.h Source File

NameServer.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2012, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * */
00082 #ifndef ti_ipc_NameServer__include
00083 #define ti_ipc_NameServer__include
00084
00085 #if defined (__cplusplus)
00086 extern "C" {
00087 #endif
00088
00089 /* =============================================================================
00090  *  All success and failure codes for the module
00091  * =============================================================================
00092  */
00093
00098 #define NameServer_S_BUSY                2
00099
00104 #define NameServer_S_ALREADYSETUP        1
00105
00110 #define NameServer_S_SUCCESS             0
00111
00116 #define NameServer_E_FAIL               -1
00117
00122 #define NameServer_E_INVALIDARG         -2
00123
00128 #define NameServer_E_MEMORY             -3
00129
00134 #define NameServer_E_ALREADYEXISTS      -4
00135
00140 #define NameServer_E_NOTFOUND           -5
00141
00146 #define NameServer_E_TIMEOUT            -6
00147
00152 #define NameServer_E_INVALIDSTATE       -7
00153
00158 #define NameServer_E_OSFAILURE          -8
00159
00164 #define NameServer_E_RESOURCE           -9
00165
00170 #define NameServer_E_RESTART            -10
00171
00172 /* =============================================================================
00173  *  Macros
00174  * =============================================================================
00175  */
00176
00181 #define NameServer_ALLOWGROWTH          (~0)
00182
00187 #define NameServer_Params_MAXNAMELEN    16
00188
00189 /* =============================================================================
00190  *  Structures & Enums
00191  * =============================================================================
00192  */
00193
00197 typedef struct NameServer_Object *NameServer_Handle;
00198
00202 typedef struct NameServer_Params {
00203     UInt maxRuntimeEntries;
00218     Ptr  tableHeap;
00231     Bool checkExisting;
00248     UInt maxValueLen;
00254     UInt maxNameLen;
00261 } NameServer_Params;
00262
00263
00264 /* =============================================================================
00265  *  NameServer Module-wide Functions
00266  * =============================================================================
00267  */
00268
00276 Void NameServer_Params_init(NameServer_Params *params);
00277
00288 NameServer_Handle NameServer_create(String name,
00289                                     const NameServer_Params *params);
00290
00302 Int NameServer_delete(NameServer_Handle *handlePtr);
00303
00324 NameServer_Handle NameServer_getHandle(String name);
00325
00326 /* =============================================================================
00327  *  NameServer Per-instance Functions
00328  * =============================================================================
00329  */
00330
00360 Ptr NameServer_add(NameServer_Handle handle, String name, Ptr buf, UInt32 len);
00361
00393 Ptr NameServer_addUInt32(NameServer_Handle handle, String name, UInt32 value);
00394
00446 Int NameServer_get(NameServer_Handle handle,
00447                    String name,
00448                    Ptr buf,
00449                    UInt32 *len,
00450                    UInt16 procId[]);
00451
00499 Int NameServer_getUInt32(NameServer_Handle handle,
00500                          String name,
00501                          Ptr buf,
00502                          UInt16 procId[]);
00503
00531 Int NameServer_getLocal(NameServer_Handle handle,
00532                         String name,
00533                         Ptr buf,
00534                         UInt32 *len);
00535
00558 Int NameServer_getLocalUInt32(NameServer_Handle handle,
00559                               String name,
00560                               Ptr buf);
00561
00578 Int NameServer_match(NameServer_Handle handle, String name, UInt32 *value);
00579
00605 Int NameServer_remove(NameServer_Handle handle, String name);
00606
00636 Int NameServer_removeEntry(NameServer_Handle handle, Ptr entry);
00637
00638 #if defined (__cplusplus)
00639 }
00640 #endif /* defined (__cplusplus) */
00641
00642 #endif /* ti_ipc_NameServer__include */
00643
00644 /*
00645  */
00646 /*
00647  *  @(#) ti.ipc; 1, 0, 0, 0,1; 5-22-2012 16:16:05; /db/vtree/library/trees/ipc/ipc-h32/src/ xlibrary
00648
00649  */
00650


SysLink Application Programming Interface (API): Notify.h File Reference

Defines | Typedefs | Functions

Notify.h File Reference

Detailed Description

Notification manager for IPC.

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

The Notify module manages the multiplexing/demultiplexing of software interrupts over hardware interrupts. In order to receive notifications, a processor registers one or more callback functions to an eventId using Notify_registerEvent. The Notify_registerEvent call (like most other Notify APIs) uses a MultiProc id and line id to target a specific interrupt line to/from a specific processor on a device. The Notify_eventAvailable API may be used to query whether an event id is availble for use before registration.

Once an event has been registered, a remote processor may send an event using the Notify_sendEvent call. If the event and the interrupt line are both enabled, all callback functions registered to the event will be called sequentially.

A specific event may be disabled or enabled using the Notify_disableEvent and Notify_enableEvent calls. An entire interrupt line may be disabled or restored using the Notify_disable or Notify_restore calls. The Notify_disable call does not alter the state of individual events. Instead, it just disables the ability of the Notify module to receive events on the interrupt line.

Notify APIs should never be called within an Hwi context. All API calls should be made within main(), a Task or a Swi with the exception of Notify_sendEvent which may also be called within a Hwi.

"Loopback" functionality allows Notifications to be registered and sent locally. This is accomplished by supplying our own MultiProc id to Notify APIs. Line id #0 is always used for local notifications. It is important to be aware of some subtle (but important) differences between remote and local notifications:

  • Loopback callback functions will execute in the same thread in which Notify_sendEvent is called. This is in contrast to callback functions that are called due to another processor's sent notification- these 'remote' callback functions will execute in an ISR context.
  • Loopback callback functions will execute with interrupts disabled
  • Disabling the local interrupt line will cause all notifications that are sent to the local processor to be lost. By contrast, a notification sent to an enabled event on a remote processor that has called Notify_disable results in a pending notifications until the disabled processor has called Notify_restore
  • Local notifications do not support events of different priorities. By contrast, Notify driver implementations may correlate event ids with varying priorities.

In order to use any Notify APIs on DSP/BIOS, IPC/Syslink must first be started. This will internally call Notify_attach which sets up all necessary Notify drivers, shared memory and interprocessor interrupts. It is possible for a user application to call Notify_attach directly (before Ipc_attach or Ipc_start) if notifications must be set up prior to runtime SharedRegion initialization. Refer to the documentation for Notify_attach for more information.

The Notify header should be included in an application as follows:

  #include <ti/ipc/Notify.h>
Version:
0.00.01

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

Go to the source code of this file.

Defines

#define | Notify_S_BUSY 2
The resource is still in use.
#define | Notify_S_ALREADYSETUP 1
Module already set up.
#define | Notify_S_SUCCESS 0
Operation is successful.
#define | Notify_E_FAIL -1
Generic failure.
#define | Notify_E_INVALIDARG -2
Argument passed to function is invalid.
#define | Notify_E_MEMORY -3
Operation resulted in memory failure.
#define | Notify_E_ALREADYEXISTS -4
The specified entity already exists.
#define | Notify_E_NOTFOUND -5
Unable to find the specified entity.
#define | Notify_E_TIMEOUT -6
Operation timed out.
#define | Notify_E_INVALIDSTATE -7
Module is not initialized.
#define | Notify_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | Notify_E_ALREADYSETUP -9
The module has been already setup.
#define | Notify_E_RESOURCE -10
Specified resource is not available.
#define | Notify_E_RESTART -11
Operation was interrupted. Please restart the operation.
#define | Notify_E_BUSY -12
The resource is still in use.
#define | Notify_E_DRIVERNOTREGISTERED -13
Driver corresponding to the specified eventId is not registered.
#define | Notify_E_EVTNOTREGISTERED -14
Event not registered.
#define | Notify_E_EVTDISABLED -15
Event is disabled.
#define | Notify_E_NOTINITIALIZED -16
Remote notification is not initialized.
#define | Notify_E_EVTRESERVED -17
Trying to illegally use a reserved event.
#define | Notify_MAXEVENTS (UInt16)32
Maximum number of events supported by the Notify module.
#define | Notify_MAX_INTLINES 4u
Maximum number of IPC interrupt lines for any pair of processors.
#define | Notify_SYSTEMKEY ((UInt16)0xC1D2)
This key must be provided as the upper 16 bits of the eventId when registering for an event, if any reserved event numbers are to be used.

Typedefs

typedef Void(* | Notify_FnNotifyCbck )(UInt16, UInt16, UInt32, UArg, UInt32)
Signature of any callback function that can be registered with the Notify component.

Functions

Int | Notify_attach (UInt16 remoteProcId, Ptr sharedAddr)
Creates notify drivers and registers them with Notify.
UInt | Notify_disable (UInt16 procId, UInt16 lineId)
Disable ability to receive interrupts on an interrupt line.
Void | Notify_disableEvent (UInt16 procId, UInt16 lineId, UInt32 eventId)
Disable an event.
Void | Notify_enableEvent (UInt16 procId, UInt16 lineId, UInt32 eventId)
Enable an event.
Bool | Notify_eventAvailable (UInt16 procId, UInt16 lineId, UInt32 eventId)
Whether an unused event is available on an interrupt line.
Bool | Notify_intLineRegistered (UInt16 procId, UInt16 lineId)
Whether notification via interrupt line has been registered.
UInt16 | Notify_numIntLines (UInt16 procId)
Returns number of interrupt lines to remote processor.
Int | Notify_registerEvent (UInt16 procId, UInt16 lineId, UInt32 eventId, Notify_FnNotifyCbck fnNotifyCbck, UArg cbckArg)
Register a callback for an event (supports multiple callbacks)
Int | Notify_registerEventSingle (UInt16 procId, UInt16 lineId, UInt32 eventId, Notify_FnNotifyCbck fnNotifyCbck, UArg cbckArg)
Register a single callback for an event.
Void | Notify_restore (UInt16 procId, UInt16 lineId, UInt key)
Restore ability to receive interrupts on an interrupt line.
Int | Notify_sendEvent (UInt16 procId, UInt16 lineId, UInt32 eventId, UInt32 payload, Bool waitClear)
Send an event on an interrupt line.
Int | Notify_unregisterEvent (UInt16 procId, UInt16 lineId, UInt32 eventId, Notify_FnNotifyCbck fnNotifyCbck, UArg cbckArg)
Remove an event listener from an event.
Int | Notify_unregisterEventSingle (UInt16 procId, UInt16 lineId, UInt32 eventId)
Remove an event listener from an event.

Define Documentation

#define Notify_S_BUSY 2

The resource is still in use.

#define Notify_S_ALREADYSETUP 1

Module already set up.

#define Notify_S_SUCCESS 0

Operation is successful.

#define Notify_E_FAIL -1

Generic failure.

#define Notify_E_INVALIDARG -2

Argument passed to function is invalid.

#define Notify_E_MEMORY -3

Operation resulted in memory failure.

#define Notify_E_ALREADYEXISTS -4

The specified entity already exists.

#define Notify_E_NOTFOUND -5

Unable to find the specified entity.

#define Notify_E_TIMEOUT -6

Operation timed out.

#define Notify_E_INVALIDSTATE -7

Module is not initialized.

#define Notify_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define Notify_E_ALREADYSETUP -9

The module has been already setup.

#define Notify_E_RESOURCE -10

Specified resource is not available.

#define Notify_E_RESTART -11

Operation was interrupted. Please restart the operation.

#define Notify_E_BUSY -12

The resource is still in use.

#define Notify_E_DRIVERNOTREGISTERED -13

Driver corresponding to the specified eventId is not registered.

#define Notify_E_EVTNOTREGISTERED -14

Event not registered.

#define Notify_E_EVTDISABLED -15

Event is disabled.

#define Notify_E_NOTINITIALIZED -16

Remote notification is not initialized.

#define Notify_E_EVTRESERVED -17

Trying to illegally use a reserved event.

#define Notify_MAXEVENTS (UInt16)32

Maximum number of events supported by the Notify module.

#define Notify_MAX_INTLINES 4u

Maximum number of IPC interrupt lines for any pair of processors.

#define Notify_SYSTEMKEY ((UInt16)0xC1D2)

This key must be provided as the upper 16 bits of the eventId when registering for an event, if any reserved event numbers are to be used.

Typedef Documentation

Notify_FnNotifyCbck

Signature of any callback function that can be registered with the Notify component.

Parameters:
[in] | procId | Remote processor id
[in] | lineId | Line id
[in] | eventId | Event id (minus system key if reserved event)
[in] | arg | Argument specified in the registerEvent
[in] | payload | Payload specified in the sendEvent

Function Documentation

Int Notify_attach | ( | UInt16 | remoteProcId,
 |  | Ptr | sharedAddr
 | ) |  |

Creates notify drivers and registers them with Notify.

This function must be called before other Notify API calls are invoked. Performing a attach invokes a device-specific Notify initialization routine that creates required drivers and registers those drivers with the Notify module. If the drivers require shared memory, a shared address must be supplied.

Notify_attach is typically called internally as part of the IPC initialization sequence. Any memory required for Notify drivers is reserved by SharedRegion and passed to Notify_attach. However, if it is necessary to pass a specific base address to Notify_attach (i.e. if the shared region is not valid yet), then Notify_attach should be called before Ipc_start with this address. When Ipc_start is eventually called, Notify_attach will be internally bypassed since it was directly called by the user.

Parameters:
[in] | remoteProcId | Remote processor id
[in] | sharedAddr | Shared address to use if any driver requires shared memory
Returns:
Notify status:
  • Notify_E_FAIL: failed to attach to remote processor
  • Notify_S_SUCCESS: successfully attach to remote processor
UInt Notify_disable | ( | UInt16 | procId,
 |  | UInt16 | lineId
 | ) |  |

Disable ability to receive interrupts on an interrupt line.

This function disables a NotifyDriver from processing received events. The key that is returned from this call must be used in the Notify_restore function.

Notify supports nested disable/restore calls. The value of the returned key is the nesting depth.

If Notify_disable is called upon an interrupt line that is already disabled, then the corresponding Notify_restore will not re-enable notifications. Only the restore call that corresponds to the Notify_disable that actually disabled notifications will re-enable notifications on the interrupt line.

Parameters:
[in] | procId | Remote processor id
[in] | lineId | Line id
Returns:
Key that must be used in Notify_restore
See also:
Notify_restore
Void Notify_disableEvent | ( | UInt16 | procId,
 |  | UInt16 | lineId,
 |  | UInt32 | eventId
 | ) |  |

Disable an event.

This function allows the disabling of a single event number from the specified source processor. Sending to a disabled event will return Notify_E_EVTDISABLED on the sender if waitClear is false. Notify_disableEvent and Notify_enableEvent are not supported by all Notify drivers. Consult the documentation for the Notify driver to determine whether it supports this API call.

An event is, by default, enabled upon driver initialization. Calling Notify_disableEvent upon an event that is already disabled results in no change in state.

Note that callbacks may be registered to an event or removed from the event even while the event has been disabled.

Parameters:
[in] | procId | Remote processor id
[in] | lineId | Line id
[in] | eventId | Event id
See also:
Notify_enableEvent
Void Notify_enableEvent | ( | UInt16 | procId,
 |  | UInt16 | lineId,
 |  | UInt32 | eventId
 | ) |  |

Enable an event.

This function re-enables an event that has been previously disabled using disableEvent(). Calling Notify_enableEvent upon an event that is already enabled results in no change in state. An event is, by default, enabled upon driver initialization.

Notify_disableEvent and Notify_enableEvent are not supported by all Notify drivers. Consult the documentation for the Notify driver to determine whether it supports this API call.

Parameters:
[in] | procId | Remote processor id
[in] | lineId | Line id
[in] | eventId | Event id
See also:
Notify_disableEvent
Bool Notify_eventAvailable | ( | UInt16 | procId,
 |  | UInt16 | lineId,
 |  | UInt32 | eventId
 | ) |  |

Whether an unused event is available on an interrupt line.

This function can be used to determine whether an unused eventId for a specific interrupt line is available for use in Notify_registerEvent or Notify_registerEventSingle. This function will return TRUE if and only if the following conditions are simultaneously TRUE:

  • The corresponding interrupt line is available. Notifications over an interrupt line to a remote processor are typically made available by calling Notify_attach or Ipc_attach.
  • The event is not a reserved event
  • The event is a reserved event and Notify_SYSTEMKEY has been passed as the upper 16 bits of the 32-bit eventId argument
  • No callback functions have been registered to the event If any of the above conditions is false, this function will return FALSE. Note that an event may still be registered using Notify_registerEvent while the last condition is false if the existing callback function(s) were registered using Notify_registerEvent (not Notify_registerEventSingle).
Parameters:
[in] | procId | Remote processor id
[in] | lineId | Line id
[in] | eventId | Event id
Returns:
TRUE if an unused event is available, FALSE otherwise
Bool Notify_intLineRegistered | ( | UInt16 | procId,
 |  | UInt16 | lineId
 | ) |  |

Whether notification via interrupt line has been registered.

This function will return TRUE if and only if a notify driver has been registered for the interrupt line identified by the supplied procId and lineId. The interrupt line corresponding to loopback functionality is always registered. A value of FALSE indicates that either Notify_attach has not yet been called or that notification to the remote processor is unsupported.

Parameters:
[in] | procId | Remote processor id
[in] | lineId | Line id
Returns:
TRUE if registered, FALSE otherwise
UInt16 Notify_numIntLines ( UInt16 procId )

Returns number of interrupt lines to remote processor.

This function returns the number of available interrupt lines to a remote processor.

Parameters:
[in] procId Remote processor id
Returns:
Number of interrupt lines
Int Notify_registerEvent | ( | UInt16 | procId,
 |  | UInt16 | lineId,
 |  | UInt32 | eventId,
 |  | Notify_FnNotifyCbck | fnNotifyCbck,
 |  | UArg | cbckArg
 | ) |  |

Register a callback for an event (supports multiple callbacks)

This function registers a callback to a specific event number, processor id and interrupt line. When the event is received by the specified processor, the callback is called.

The callback function prototype is of type Notify_FnNotifyCbck. This function must be non-blocking.

It is important to note that multiple callbacks may be registered with a single event. This is accomplished by simply calling Notify_registerEvent for each combination of callback functions and callback arguments as needed.

It is important to note that interrupts are disabled during the entire duration of this function's execution.

Parameters:
[in] | procId | Remote processor id
[in] | lineId | Line id (0 for most systems)
[in] | eventId | Event id
[in] | fnNotifyCbck | Pointer to callback function
[in] | cbckArg | Callback function argument
Returns:
Notify status:
  • Notify_S_SUCCESS: Event successfully registered
See also:
Notify_unregisterEvent
Int Notify_registerEventSingle | ( | UInt16 | procId,
 |  | UInt16 | lineId,
 |  | UInt32 | eventId,
 |  | Notify_FnNotifyCbck | fnNotifyCbck,
 |  | UArg | cbckArg
 | ) |  |

Register a single callback for an event.

This function registers a callback to a specific event number, processor id and interrupt line. When the event is received by the specified processor, the callback is called.

The callback function prototype is of type #Notify_FnNotifyCbck. The callback function must be non-blocking.

Only one callback may be registered with this API.

Use Notify_registerEvent to register multiple callbacks for a single event.

Parameters:
[in] | procId | Remote processor id
[in] | lineId | Line id (0 for most systems)
[in] | eventId | Event id
[in] | fnNotifyCbck | Pointer to callback function
[in] | cbckArg | Callback function argument
Returns:
Notify status:
  • Notify_E_ALREADYEXISTS: Event already registered
  • Notify_S_SUCCESS: Event successfully registered
See also:
Notify_unregisterEventSingle
Void Notify_restore | ( | UInt16 | procId,
 |  | UInt16 | lineId,
 |  | UInt | key
 | ) |  |

Restore ability to receive interrupts on an interrupt line.

This function re-enables receiving notifications on a specific interrupt line.

Notify supports nested disable/restore calls. The last restore call will re-enable Notifications.

Parameters:
[in] | procId | Remote processor id
[in] | lineId | Line id
[in] | key | Key returned by Notify_disable
See also:
Notify_disable
Int Notify_sendEvent | ( | UInt16 | procId,
 |  | UInt16 | lineId,
 |  | UInt32 | eventId,
 |  | UInt32 | payload,
 |  | Bool | waitClear
 | ) |  |

Send an event on an interrupt line.

This function sends an event to a processor via an interrupt line identified by a processor id and line id. A payload may be optionally sent to the the remote processor if supported by the device.

On the destination processor, the callback functions registered with Notify with the associated eventId and source processor id are called.

For example, when using 'NotifyDriverShm', a 'waitClear' value of 'TRUE' indicates that, if an event was previously sent to the same eventId, sendEvent should spin until the previous event has been acknowledged by the remote processor. If 'waitClear' is FALSE, a pending event with the same eventId will be overwritten by the event currently being sent. When in doubt, a value of TRUE should be used because notifications may be potentially dropped when FALSE is used. When using NotifyDriverShm, a payload should never be sent with 'waitClear = FALSE.'

On the other hand, other notify drivers that use a FIFO to transmit events will spin if 'waitClear' is TRUE until the FIFO has enough room to accept the event being sent. If 'waitClear' is FALSE, Notify_sendEvent will return Notify_E_FAIL if the FIFO does not have room for the event.

Refer to the documentation for the Notify drivers for more information about the effect of the 'waitClear' flag in Notify_sendEvent.

Notify_sendEvent can be called from a Hwi context unlike other Notify APIs.

Parameters:
[in] | procId | Remote processor id
[in] | lineId | Line id
[in] | eventId | Event id
[in] | payload | Payload to be sent along with the event.
[in] | waitClear | Indicates whether to spin waiting for the remote core to process previous events
Returns:
Notify status:
  • Notify_E_EVTNOTREGISTERED: event has no registered callback functions
  • Notify_E_NOTINITIALIZED: remote driver has not yet been initialized
  • Notify_E_EVTDISABLED: remote event is disabled
  • Notify_E_TIMEOUT: timeout occured (when waitClear is TRUE)
  • Notify_S_SUCCESS: event successfully sent
Int Notify_unregisterEvent | ( | UInt16 | procId,
 |  | UInt16 | lineId,
 |  | UInt32 | eventId,
 |  | Notify_FnNotifyCbck | fnNotifyCbck,
 |  | UArg | cbckArg
 | ) |  |

Remove an event listener from an event.

This function unregisters a single callback that was registered to an event using Notify_registerEvent. The procId, lineId, eventId, fnNotifyCbck and cbckArg must exactly match with the registered one.

This API is used to unregister events that were registered with Notify_registerEvent. If this is the last event, then Notify_unregisterEventSingle is called to completely remove the event.

Parameters:
[in] | procId | Remote processor id
[in] | lineId | Line id
[in] | eventId | Event id
[in] | fnNotifyCbck | Pointer to callback function
[in] | cbckArg | Callback function argument
Returns:
Notify status:
  • Notify_E_NOTFOUND: event listener not found
  • Notify_S_SUCCESS: event listener unregistered
See also:
Notify_registerEvent
Int Notify_unregisterEventSingle | ( | UInt16 | procId,
 |  | UInt16 | lineId,
 |  | UInt32 | eventId
 | ) |  |

Remove an event listener from an event.

This function removes a previously registered callback registered with Notify_registerEventSingle. The procId, lineId, and eventId must exactly match the registered one.

Parameters:
[in] | procId | Remote processor id
[in] | lineId | Line id
[in] | eventId | Event id that is being unregistered
Returns:
Notify status:
  • Notify_E_EVTNOTREGISTERED: event was not registered.
  • Notify_S_SUCCESS: event unregistered
See also:
Notify_registerEventSingle


SysLink Application Programming Interface (API): Notify.h Source File

Notify.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2012, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * */
00104 #ifndef ti_ipc_Notify__include
00105 #define ti_ipc_Notify__include
00106
00107 #if defined (__cplusplus)
00108 extern "C" {
00109 #endif
00110
00111 /* =============================================================================
00112  *  All success and failure codes for the module
00113  * =============================================================================
00114  */
00115
00120 #define Notify_S_BUSY                    2
00121
00126 #define Notify_S_ALREADYSETUP            1
00127
00132 #define Notify_S_SUCCESS                 0
00133
00138 #define Notify_E_FAIL                   -1
00139
00144 #define Notify_E_INVALIDARG             -2
00145
00150 #define Notify_E_MEMORY                 -3
00151
00156 #define Notify_E_ALREADYEXISTS          -4
00157
00162 #define Notify_E_NOTFOUND               -5
00163
00168 #define Notify_E_TIMEOUT                -6
00169
00174 #define Notify_E_INVALIDSTATE           -7
00175
00180 #define Notify_E_OSFAILURE              -8
00181
00186 #define Notify_E_ALREADYSETUP           -9
00187
00192 #define Notify_E_RESOURCE               -10
00193
00198 #define Notify_E_RESTART                -11
00199
00204 #define Notify_E_BUSY                   -12
00205
00210 #define Notify_E_DRIVERNOTREGISTERED    -13
00211
00216 #define Notify_E_EVTNOTREGISTERED       -14
00217
00222 #define Notify_E_EVTDISABLED            -15
00223
00228 #define Notify_E_NOTINITIALIZED         -16
00229
00234 #define Notify_E_EVTRESERVED            -17
00235
00236 /* =============================================================================
00237  *  Macros
00238  * =============================================================================
00239  */
00240
00245 #define Notify_MAXEVENTS                (UInt16)32
00246
00251 #define Notify_MAX_INTLINES             4u
00252
00259 #define Notify_SYSTEMKEY                ((UInt16)0xC1D2)
00260
00261 /* =============================================================================
00262  *  Structures & Enums
00263  * =============================================================================
00264  */
00265
00277 typedef Void (*Notify_FnNotifyCbck)(UInt16 , UInt16, UInt32, UArg, UInt32);
00278
00279 /* =============================================================================
00280  *  Notify Module-wide Functions
00281  * =============================================================================
00282  */
00283
00309 Int Notify_attach(UInt16 remoteProcId, Ptr sharedAddr);
00310
00334 UInt Notify_disable(UInt16 procId, UInt16 lineId);
00335
00359 Void Notify_disableEvent(UInt16 procId, UInt16 lineId, UInt32 eventId);
00360
00379 Void Notify_enableEvent(UInt16 procId, UInt16 lineId, UInt32 eventId);
00380
00407 Bool Notify_eventAvailable(UInt16 procId, UInt16 lineId, UInt32 eventId);
00408
00424 Bool Notify_intLineRegistered(UInt16 procId, UInt16 lineId);
00425
00436 UInt16 Notify_numIntLines(UInt16 procId);
00437
00451 SizeT Notify_sharedMemReq(UInt16 procId, Ptr sharedAddr);
00452
00484 Int Notify_registerEvent(UInt16 procId,
00485                          UInt16 lineId,
00486                          UInt32 eventId,
00487                          Notify_FnNotifyCbck fnNotifyCbck,
00488                          UArg cbckArg);
00489
00516 Int Notify_registerEventSingle(UInt16 procId,
00517                                UInt16 lineId,
00518                                UInt32 eventId,
00519                                Notify_FnNotifyCbck fnNotifyCbck,
00520                                UArg cbckArg);
00521
00537 Void Notify_restore(UInt16 procId, UInt16 lineId, UInt key);
00538
00585 Int Notify_sendEvent(UInt16 procId,
00586                      UInt16 lineId,
00587                      UInt32 eventId,
00588                      UInt32 payload,
00589                      Bool waitClear);
00590
00614 Int Notify_unregisterEvent(UInt16 procId, UInt16 lineId, UInt32 eventId,
00615                            Notify_FnNotifyCbck fnNotifyCbck, UArg cbckArg);
00616
00634 Int Notify_unregisterEventSingle(UInt16 procId, UInt16 lineId, UInt32 eventId);
00635
00636 #if defined (__cplusplus)
00637 }
00638 #endif /* defined (__cplusplus) */
00639 #endif /* ti_ipc_Notify__include */
00640
00641 /*
00642  */
00643
00644 /*
00645  *  @(#) ti.ipc; 1, 0, 0, 0,1; 5-22-2012 16:16:06; /db/vtree/library/trees/ipc/ipc-h32/src/ xlibrary
00646
00647  */
00648


SysLink Application Programming Interface (API): OsalPrint.h File Reference

Defines | Functions

OsalPrint.h File Reference

Detailed Description

Kernel utils Print interface definitions.

This will have the definitions for kernel side printf statements and also details of variable printfs supported in existing implementation.

Go to the source code of this file.

Defines

#define | OSALPRINT_MODULEID (UInt16) 0xC431
Module ID for OsalPrint OSAL module.

Functions

Void | Osal_printf (char *format,...)

Define Documentation

#define OSALPRINT_MODULEID (UInt16) 0xC431

Module ID for OsalPrint OSAL module.

Function Documentation

Void Osal_printf | ( | char * | format,
 |  |  | ...
 | ) |  |


SysLink Application Programming Interface (API): OsalPrint.h Source File

OsalPrint.h

Go to the documentation of this file.
00001
00012 /*
00013  *  ============================================================================
00014  *
00015  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00016  *
00017  *  Redistribution and use in source and binary forms, with or without
00018  *  modification, are permitted provided that the following conditions
00019  *  are met:
00020  *
00021  *  *  Redistributions of source code must retain the above copyright
00022  *     notice, this list of conditions and the following disclaimer.
00023  *
00024  *  *  Redistributions in binary form must reproduce the above copyright
00025  *     notice, this list of conditions and the following disclaimer in the
00026  *     documentation and/or other materials provided with the distribution.
00027  *
00028  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00029  *     its contributors may be used to endorse or promote products derived
00030  *     from this software without specific prior written permission.
00031  *
00032  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00033  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00034  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00035  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00036  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00037  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00038  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00039  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00040  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00041  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00042  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00043  *  Contact information for paper mail:
00044  *  Texas Instruments
00045  *  Post Office Box 655303
00046  *  Dallas, Texas 75265
00047  *  Contact information:
00048  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00049  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00050  *  ============================================================================
00051  *
00052  */
00053
00054
00055
00056 #ifndef OSALPRINT_H_0xC431
00057 #define OSALPRINT_H_0xC431
00058
00059
00060 /* OSAL and utils */
00061
00062
00063 #if defined (__cplusplus)
00064 extern "C" {
00065 #endif
00066
00067
00072 #define OSALPRINT_MODULEID                 (UInt16) 0xC431
00073
00074
00075 /* =============================================================================
00076  *  APIs
00077  * =============================================================================
00078  */
00079 /*  printf abstraction at the kernel level. */
00080 Void Osal_printf(char* format, ...);
00081
00082
00083 #if defined (__cplusplus)
00084 }
00085 #endif /* defined (__cplusplus) */
00086
00087 #endif /* ifndef OSALPRINT_H_0xC431 */


SysLink Application Programming Interface (API): OsalSemaphore.h File Reference

Defines | Typedefs | Enumerations | Functions

OsalSemaphore.h File Reference

Detailed Description

Kernel utils Semaphore interface definitions.

This abstracts the Semaphore interface in Kernel code and is implemented using the wait queues. It has interfaces for creating, destroying, waiting and triggering the Semaphores.

Go to the source code of this file.

Defines

#define | OSALSEMAPHORE_MODULEID (UInt16) 0xF6D6
Module ID for OsalSemaphore OSAL module.
#define | OSALSEMAPHORE_STATUSCODEBASE (OSALSEMAPHORE_MODULEID << 12u)
Stauts code base for MEMORY module.
#define | OSALSEMAPHORE_MAKE_FAILURE(x)
Convert to failure code.
#define | OSALSEMAPHORE_MAKE_SUCCESS(x) (OSALSEMAPHORE_STATUSCODEBASE + (x))
Convert to success code.
#define | OSALSEMAPHORE_E_MEMORY OSALSEMAPHORE_MAKE_FAILURE(1)
Indicates OsalSemaphore alloc/free failure.
#define | OSALSEMAPHORE_E_INVALIDARG OSALSEMAPHORE_MAKE_FAILURE(2)
Invalid argument provided.
#define | OSALSEMAPHORE_E_FAIL OSALSEMAPHORE_MAKE_FAILURE(3)
Generic failure.
#define | OSALSEMAPHORE_E_TIMEOUT OSALSEMAPHORE_MAKE_FAILURE(4)
A timeout occurred.
#define | OSALSEMAPHORE_E_HANDLE OSALSEMAPHORE_MAKE_FAILURE(5)
Invalid handle provided.
#define | OSALSEMAPHORE_E_WAITNONE OSALSEMAPHORE_MAKE_FAILURE(6)
WAIT_NONE timeout value was provided, but semaphore was not available.
#define | OSALSEMAPHORE_E_RESOURCE OSALSEMAPHORE_MAKE_FAILURE(7)
Resource error.
#define | OSALSEMAPHORE_SUCCESS OSALSEMAPHORE_MAKE_SUCCESS(0)
Operation successfully completed.
#define | OSALSEMAPHORE_WAIT_FOREVER (~((UInt32) 0u))
Indicates forever wait for APIs that can wait.
#define | OSALSEMAPHORE_WAIT_NONE ((UInt32) 0u)
Indicates zero wait for APIs that can wait.
#define | OSALSEMAPHORE_TYPE_VALUE(type) (type & 0x0000FFFF)
Returns the value of semaphore type (binary/counting)
#define | OSALSEMAPHORE_INTTYPE_VALUE(type) (type & 0xFFFF0000)
Returns the value of semaphore interruptability type.

Typedefs

typedef struct
OsalSemaphore_Object * 		OsalSemaphore_Handle
Declaration for the OsalSemaphore object handle. Definition of OsalSemaphore_Object is not exposed.

Enumerations

enum OsalSemaphore_Type {
OsalSemaphore_Type_Binary = 0x00000000,
OsalSemaphore_Type_Counting = 0x00000001,
OsalSemaphore_Type_EndValue = 0x00000002
}

Enumerates the types of semaphores.

More...
enum OsalSemaphore_IntType {
OsalSemaphore_IntType_Interruptible = 0x00000000,
OsalSemaphore_IntType_Noninterruptible = 0x00010000,
OsalSemaphore_IntType_EndValue = 0x00020000
}

Enumerates the interruptible/non-interruptible types.

More...

Functions

OsalSemaphore_Handle | OsalSemaphore_create (UInt32 semType)
Int | OsalSemaphore_delete (OsalSemaphore_Handle *semHandle)
Int | OsalSemaphore_pend (OsalSemaphore_Handle semHandle, UInt32 timeout)
Int | OsalSemaphore_post (OsalSemaphore_Handle semHandle)

Define Documentation

#define OSALSEMAPHORE_MODULEID (UInt16) 0xF6D6

Module ID for OsalSemaphore OSAL module.

#define OSALSEMAPHORE_STATUSCODEBASE (OSALSEMAPHORE_MODULEID << 12u)

Stauts code base for MEMORY module.

#define OSALSEMAPHORE_MAKE_FAILURE ( x )
Value:
((Int) (0x80000000  \
                                        + (OSALSEMAPHORE_STATUSCODEBASE +(x))))

Convert to failure code.

#define OSALSEMAPHORE_MAKE_SUCCESS ( x ) (OSALSEMAPHORE_STATUSCODEBASE + (x))

Convert to success code.

#define OSALSEMAPHORE_E_MEMORY OSALSEMAPHORE_MAKE_FAILURE(1)

Indicates OsalSemaphore alloc/free failure.

#define OSALSEMAPHORE_E_INVALIDARG OSALSEMAPHORE_MAKE_FAILURE(2)

Invalid argument provided.

#define OSALSEMAPHORE_E_FAIL OSALSEMAPHORE_MAKE_FAILURE(3)

Generic failure.

#define OSALSEMAPHORE_E_TIMEOUT OSALSEMAPHORE_MAKE_FAILURE(4)

A timeout occurred.

#define OSALSEMAPHORE_E_HANDLE OSALSEMAPHORE_MAKE_FAILURE(5)

Invalid handle provided.

#define OSALSEMAPHORE_E_WAITNONE OSALSEMAPHORE_MAKE_FAILURE(6)

WAIT_NONE timeout value was provided, but semaphore was not available.

#define OSALSEMAPHORE_E_RESOURCE OSALSEMAPHORE_MAKE_FAILURE(7)

Resource error.

#define OSALSEMAPHORE_SUCCESS OSALSEMAPHORE_MAKE_SUCCESS(0)

Operation successfully completed.

#define OSALSEMAPHORE_WAIT_FOREVER (~((UInt32) 0u))

Indicates forever wait for APIs that can wait.

#define OSALSEMAPHORE_WAIT_NONE ((UInt32) 0u)

Indicates zero wait for APIs that can wait.

#define OSALSEMAPHORE_TYPE_VALUE ( type ) (type & 0x0000FFFF)

Returns the value of semaphore type (binary/counting)

#define OSALSEMAPHORE_INTTYPE_VALUE ( type ) (type & 0xFFFF0000)

Returns the value of semaphore interruptability type.

Typedef Documentation

typedef struct OsalSemaphore_Object* OsalSemaphore_Handle

Declaration for the OsalSemaphore object handle. Definition of OsalSemaphore_Object is not exposed.

Enumeration Type Documentation

enum OsalSemaphore_Type

Enumerates the types of semaphores.

Enumerator:
OsalSemaphore_Type_Binary

Binary semaphore

OsalSemaphore_Type_Counting

Counting semaphore

OsalSemaphore_Type_EndValue

End delimiter indicating start of invalid values for this enum

enum OsalSemaphore_IntType

Enumerates the interruptible/non-interruptible types.

Enumerator:
OsalSemaphore_IntType_Interruptible

Waits on this mutex are interruptible

OsalSemaphore_IntType_Noninterruptible

Waits on this mutex are non-interruptible

OsalSemaphore_IntType_EndValue

End delimiter indicating start of invalid values for this enum

Function Documentation

OsalSemaphore_Handle OsalSemaphore_create ( UInt32 semType )
Int OsalSemaphore_delete ( OsalSemaphore_Handle * semHandle )
Int OsalSemaphore_pend | ( | OsalSemaphore_Handle | semHandle,
 |  | UInt32 | timeout
 | ) |  |
Int OsalSemaphore_post ( OsalSemaphore_Handle semHandle )


SysLink Application Programming Interface (API): OsalSemaphore.h Source File

OsalSemaphore.h

Go to the documentation of this file.
00001
00012 /*
00013  *  ============================================================================
00014  *
00015  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00016  *
00017  *  Redistribution and use in source and binary forms, with or without
00018  *  modification, are permitted provided that the following conditions
00019  *  are met:
00020  *
00021  *  *  Redistributions of source code must retain the above copyright
00022  *     notice, this list of conditions and the following disclaimer.
00023  *
00024  *  *  Redistributions in binary form must reproduce the above copyright
00025  *     notice, this list of conditions and the following disclaimer in the
00026  *     documentation and/or other materials provided with the distribution.
00027  *
00028  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00029  *     its contributors may be used to endorse or promote products derived
00030  *     from this software without specific prior written permission.
00031  *
00032  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00033  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00034  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00035  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00036  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00037  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00038  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00039  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00040  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00041  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00042  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00043  *  Contact information for paper mail:
00044  *  Texas Instruments
00045  *  Post Office Box 655303
00046  *  Dallas, Texas 75265
00047  *  Contact information:
00048  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00049  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00050  *  ============================================================================
00051  *
00052  */
00053
00054
00055
00056 #ifndef OSALSEMAPHORE_H_0xF6D6
00057 #define OSALSEMAPHORE_H_0xF6D6
00058
00059
00060 /* OSAL and utils */
00061
00062
00063 #if defined (__cplusplus)
00064 extern "C" {
00065 #endif
00066
00067
00072 #define OSALSEMAPHORE_MODULEID                 (UInt16) 0xF6D6
00073
00074 /* =============================================================================
00075  *  All success and failure codes for the module
00076  * =============================================================================
00077  */
00082 #define OSALSEMAPHORE_STATUSCODEBASE      (OSALSEMAPHORE_MODULEID << 12u)
00083
00088 #define OSALSEMAPHORE_MAKE_FAILURE(x)  ((Int) (0x80000000  \
00089                                         + (OSALSEMAPHORE_STATUSCODEBASE +(x))))
00090
00094 #define OSALSEMAPHORE_MAKE_SUCCESS(x)      (OSALSEMAPHORE_STATUSCODEBASE + (x))
00095
00100 #define OSALSEMAPHORE_E_MEMORY             OSALSEMAPHORE_MAKE_FAILURE(1)
00101
00106 #define OSALSEMAPHORE_E_INVALIDARG         OSALSEMAPHORE_MAKE_FAILURE(2)
00107
00112 #define OSALSEMAPHORE_E_FAIL               OSALSEMAPHORE_MAKE_FAILURE(3)
00113
00118 #define OSALSEMAPHORE_E_TIMEOUT            OSALSEMAPHORE_MAKE_FAILURE(4)
00119
00124 #define OSALSEMAPHORE_E_HANDLE             OSALSEMAPHORE_MAKE_FAILURE(5)
00125
00131 #define OSALSEMAPHORE_E_WAITNONE           OSALSEMAPHORE_MAKE_FAILURE(6)
00132
00137 #define OSALSEMAPHORE_E_RESOURCE           OSALSEMAPHORE_MAKE_FAILURE(7)
00138
00143 #define OSALSEMAPHORE_SUCCESS              OSALSEMAPHORE_MAKE_SUCCESS(0)
00144
00145
00146 /* =============================================================================
00147  *  Macros and types
00148  * =============================================================================
00149  */
00154 #define OSALSEMAPHORE_WAIT_FOREVER           (~((UInt32) 0u))
00155
00160 #define OSALSEMAPHORE_WAIT_NONE               ((UInt32) 0u)
00161
00166 #define OSALSEMAPHORE_TYPE_VALUE(type)        (type & 0x0000FFFF)
00167
00172 #define OSALSEMAPHORE_INTTYPE_VALUE(type)     (type & 0xFFFF0000)
00173
00178 typedef struct OsalSemaphore_Object * OsalSemaphore_Handle;
00179
00183 typedef enum {
00184     OsalSemaphore_Type_Binary          = 0x00000000,
00186     OsalSemaphore_Type_Counting        = 0x00000001,
00188     OsalSemaphore_Type_EndValue        = 0x00000002
00190 } OsalSemaphore_Type;
00191
00195 typedef enum {
00196     OsalSemaphore_IntType_Interruptible    = 0x00000000,
00198     OsalSemaphore_IntType_Noninterruptible = 0x00010000,
00200     OsalSemaphore_IntType_EndValue         = 0x00020000
00202 } OsalSemaphore_IntType;
00203
00204
00205 /* =============================================================================
00206  *  APIs
00207  * =============================================================================
00208  */
00209 /* Creates the semaphore object. */
00210 OsalSemaphore_Handle OsalSemaphore_create (UInt32 semType);
00211
00212 /* Deletes the semaphore object */
00213 Int OsalSemaphore_delete (OsalSemaphore_Handle * semHandle);
00214
00215 /* Wait on the said Semaphore in the kernel thread context */
00216 Int OsalSemaphore_pend (OsalSemaphore_Handle semHandle, UInt32 timeout);
00217
00218 /* Signal the semaphore and make it available for other threads. */
00219 Int OsalSemaphore_post (OsalSemaphore_Handle semHandle);
00220
00221
00222 #if defined (__cplusplus)
00223 }
00224 #endif /* defined (__cplusplus) */
00225
00226 #endif /* ifndef OSALSEMAPHORE_H_0xF6D6 */


SysLink Application Programming Interface (API): ProcMgr.h File Reference

Data Structures | Defines | Typedefs | Enumerations | Functions

ProcMgr.h File Reference

Detailed Description

The Processor Manager on a master processor provides control functionality for a slave device.

The ProcMgr module provides the following services for the slave processor:

  • Slave processor boot-loading
  • Read from or write to slave processor memory
  • Slave processor power management

Internally, processor management is composed of:

  • Loader: There may be multiple implementations of the Loader interface within a single Processor instance. For example, COFF, ELF, dynamic loader, custom types of loaders may be written and plugged in.
  • Power Manager: The Power Manager implementation can be a separate module that is plugged into the Processor module. This allows the Processor code to remain generic, and the Power Manager may be written and maintained either by a separate team, or by customer.
  • Processor: The implementation of this interface provides all other functionality for the slave processor, including setup and initialization of the Processor module, management of slave processor MMU (if available), functions to write to and read from slave memory etc.

All processors in the system shall be identified by unique processor ID. The management of this processor ID is done by the MultiProc module.

Go to the source code of this file.

Data Structures

struct | ProcMgr_AttachParams_tag
Configuration parameters specific to the slave ProcMgr instance. More...
struct | ProcMgr_StartParams_tag
Configuration parameters to be provided while starting the slave processor. More...
struct | ProcMgr_AddrInfo_tag
This structure defines information about memory regions mapped by the ProcMgr module. More...
struct | ProcMgr_MappedMemEntry
Structure containing information of mapped memory regions. More...
struct | ProcMgr_ProcInfo_tag
Characteristics of the slave processor. More...
struct | ProcMgr_SectionInfo_tag
Characteristics of sections in executable. More...

Defines

#define | ProcMgr_S_SETUP 5
Other ProcMgr clients have still setup the ProcMgr module.
#define | ProcMgr_S_OPENHANDLE 4
Other ProcMgr handles are still open in this process.
#define | ProcMgr_S_ALREADYEXISTS 3
The ProcMgr instance has already been created/opened in this process.
#define | ProcMgr_S_BUSY 2
The resource is still in use.
#define | ProcMgr_S_ALREADYSETUP 1
The module has been already setup.
#define | ProcMgr_S_SUCCESS 0
Operation is successful.
#define | ProcMgr_E_FAIL -1
Generic failure.
#define | ProcMgr_E_INVALIDARG -2
Argument passed to function is invalid.
#define | ProcMgr_E_MEMORY -3
Operation resulted in memory failure.
#define | ProcMgr_E_ALREADYEXISTS -4
The specified entity already exists.
#define | ProcMgr_E_NOTFOUND -5
Unable to find the specified entity.
#define | ProcMgr_E_TIMEOUT -6
Operation timed out.
#define | ProcMgr_E_INVALIDSTATE -7
Module is not initialized.
#define | ProcMgr_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | ProcMgr_E_RESOURCE -9
Specified resource is not available.
#define | ProcMgr_E_RESTART -10
Operation was interrupted. Please restart the operation.
#define | ProcMgr_E_HANDLE -11
Invalid object handle specified.
#define | ProcMgr_E_ACCESSDENIED -12
The operation is not permitted in this process.
#define | ProcMgr_E_TRANSLATE -13
An address translation error occurred.
#define | ProcMgr_E_SYMBOLNOTFOUND -14
Could not find the specified symbol in the loaded file.
#define | ProcMgr_E_MAP -15
Failed to map/unmap an address range.
#define | IS_VALID_PROCID(id) (id < MultiProc_MAXPROCESSORS)
Checks if the Processor ID is valid.
#define | ProcMgr_MASTERKNLVIRT (ProcMgr_MapMask)(1 << 0)
Kernel virtual address on master processor.
#define | ProcMgr_MASTERUSRVIRT (ProcMgr_MapMask)(1 << 1)
User virtual address on master processor.
#define | ProcMgr_SLAVEVIRT (ProcMgr_MapMask)(1 << 2)
Virtual address on slave processor.

Typedefs

typedef struct ProcMgr_Object * | ProcMgr_Handle
Defines ProcMgr object handle.
typedef UInt32 | ProcMgr_MapMask
Address Map Mask type.
typedef struct
ProcMgr_AttachParams_tag 		ProcMgr_AttachParams
Configuration parameters specific to the slave ProcMgr instance.
typedef struct
ProcMgr_StartParams_tag 		ProcMgr_StartParams
Configuration parameters to be provided while starting the slave processor.
typedef struct ProcMgr_AddrInfo_tag | ProcMgr_AddrInfo
This structure defines information about memory regions mapped by the ProcMgr module.
typedef struct
ProcMgr_MappedMemEntry 		ProcMgr_MappedMemEntry
Structure containing information of mapped memory regions.
typedef struct ProcMgr_ProcInfo_tag | ProcMgr_ProcInfo
Characteristics of the slave processor.
typedef struct
ProcMgr_SectionInfo_tag 		ProcMgr_SectionInfo
Characteristics of sections in executable.

Enumerations

enum ProcMgr_State {
ProcMgr_State_Unknown = 0u,
ProcMgr_State_Powered = 1u,
ProcMgr_State_Reset = 2u,
ProcMgr_State_Loaded = 3u,
ProcMgr_State_Running = 4u,
ProcMgr_State_Unavailable = 5u,
ProcMgr_State_EndValue = 6u
}

Enumerations to indicate Processor states.

More...
enum ProcMgr_BootMode {
ProcMgr_BootMode_Boot = 0u,
ProcMgr_BootMode_NoLoad_Pwr = 1u,
ProcMgr_BootMode_NoLoad_NoPwr = 2u,
ProcMgr_BootMode_NoBoot = 3u,
ProcMgr_BootMode_EndValue = 4u
}

Enumerations to indicate different types of slave boot modes.

More...
enum ProcMgr_AddrType {
ProcMgr_AddrType_MasterKnlVirt = 0u,
ProcMgr_AddrType_MasterUsrVirt = 1u,
ProcMgr_AddrType_MasterPhys = 2u,
ProcMgr_AddrType_SlaveVirt = 3u,
ProcMgr_AddrType_SlavePhys = 4u,
ProcMgr_AddrType_EndValue = 5u
}

Enumerations to indicate address types used for translation.

More...

Functions

Int | ProcMgr_open (ProcMgr_Handle *handlePtr, UInt16 procId)
Function to open a handle to an existing ProcMgr object handling the procId.
Int | ProcMgr_close (ProcMgr_Handle *handlePtr)
Function to close this handle to the ProcMgr instance.
Void | ProcMgr_getAttachParams (ProcMgr_Handle handle, ProcMgr_AttachParams *params)
Function to initialize the parameters for the ProcMgr attach function.
Int | ProcMgr_attach (ProcMgr_Handle handle, ProcMgr_AttachParams *params)
Function to attach the client to the specified slave and also initialize the slave (if required).
Int | ProcMgr_detach (ProcMgr_Handle handle)
Function to detach the client from the specified slave and also finalze the slave (if required).
Int | ProcMgr_load (ProcMgr_Handle handle, String imagePath, UInt32 argc, String *argv, Ptr params, UInt32 *fileId)
Function to load the specified slave executable on the slave Processor.
Int | ProcMgr_unload (ProcMgr_Handle handle, UInt32 fileId)
Function to unload the previously loaded file on the slave processor.
Void | ProcMgr_getStartParams (ProcMgr_Handle handle, ProcMgr_StartParams *params)
Function to initialize the parameters for the ProcMgr start function.
Int | ProcMgr_start (ProcMgr_Handle handle, ProcMgr_StartParams *params)
Start the slave processor running.
Int | ProcMgr_stop (ProcMgr_Handle handle)
Stop the slave processor.
ProcMgr_State | ProcMgr_getState (ProcMgr_Handle handle)
Function to get the current state of the slave Processor.
Int | ProcMgr_read (ProcMgr_Handle handle, UInt32 procAddr, UInt32 *numBytes, Ptr buffer)
Function to read from the slave processor's memory.
Int | ProcMgr_write (ProcMgr_Handle handle, UInt32 procAddr, UInt32 *numBytes, Ptr buffer)
Function to write into the slave processor's memory.
Int | ProcMgr_control (ProcMgr_Handle handle, Int32 cmd, Ptr arg)
Perform device-dependent operations.
Int | ProcMgr_translateAddr (ProcMgr_Handle handle, Ptr *dstAddr, ProcMgr_AddrType dstAddrType, Ptr srcAddr, ProcMgr_AddrType srcAddrType)
Translate between two types of address spaces.
Int | ProcMgr_getSymbolAddress (ProcMgr_Handle handle, UInt32 fileId, String symbolName, UInt32 *symValue)
Function to retrieve the target address of a symbol from the specified file.
Int | ProcMgr_map (ProcMgr_Handle handle, ProcMgr_MapMask mapMask, ProcMgr_AddrInfo *addrInfo, ProcMgr_AddrType srcAddrType)
Function to map address to specified destination type(s).
Int | ProcMgr_unmap (ProcMgr_Handle handle, ProcMgr_MapMask mapMask, ProcMgr_AddrInfo *addrInfo, ProcMgr_AddrType srcAddrType)
Function to unmap address from slave address space.
UInt32 | ProcMgr_getMaxMemoryRegions (ProcMgr_Handle handle)
Get the maximum number of memory entries.
Int | ProcMgr_getProcInfo (ProcMgr_Handle handle, ProcMgr_ProcInfo *procInfo)
Retrieve information about the slave processor.
Int | ProcMgr_getSectionInfo (ProcMgr_Handle handle, UInt32 fileId, String sectionName, ProcMgr_SectionInfo *sectionInfo)
Function that returns section information given the name of section and number of bytes to read.
Int | ProcMgr_getSectionData (ProcMgr_Handle handle, UInt32 fileId, ProcMgr_SectionInfo *sectionInfo, Ptr buffer)
Function that returns section data in a buffer given section id and size to be read.
UInt32 | ProcMgr_getLoadedFileId (ProcMgr_Handle handle)
Function that returns section data in a buffer given section id and size to be read.

Define Documentation

#define ProcMgr_S_SETUP 5

Other ProcMgr clients have still setup the ProcMgr module.

#define ProcMgr_S_OPENHANDLE 4

Other ProcMgr handles are still open in this process.

#define ProcMgr_S_ALREADYEXISTS 3

The ProcMgr instance has already been created/opened in this process.

#define ProcMgr_S_BUSY 2

The resource is still in use.

#define ProcMgr_S_ALREADYSETUP 1

The module has been already setup.

#define ProcMgr_S_SUCCESS 0

Operation is successful.

#define ProcMgr_E_FAIL -1

Generic failure.

#define ProcMgr_E_INVALIDARG -2

Argument passed to function is invalid.

#define ProcMgr_E_MEMORY -3

Operation resulted in memory failure.

#define ProcMgr_E_ALREADYEXISTS -4

The specified entity already exists.

#define ProcMgr_E_NOTFOUND -5

Unable to find the specified entity.

#define ProcMgr_E_TIMEOUT -6

Operation timed out.

#define ProcMgr_E_INVALIDSTATE -7

Module is not initialized.

#define ProcMgr_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define ProcMgr_E_RESOURCE -9

Specified resource is not available.

#define ProcMgr_E_RESTART -10

Operation was interrupted. Please restart the operation.

#define ProcMgr_E_HANDLE -11

Invalid object handle specified.

#define ProcMgr_E_ACCESSDENIED -12

The operation is not permitted in this process.

#define ProcMgr_E_TRANSLATE -13

An address translation error occurred.

#define ProcMgr_E_SYMBOLNOTFOUND -14

Could not find the specified symbol in the loaded file.

#define ProcMgr_E_MAP -15

Failed to map/unmap an address range.

#define IS_VALID_PROCID ( id ) (id < MultiProc_MAXPROCESSORS)

Checks if the Processor ID is valid.

#define ProcMgr_MASTERKNLVIRT (ProcMgr_MapMask)(1 << 0)

Kernel virtual address on master processor.

#define ProcMgr_MASTERUSRVIRT (ProcMgr_MapMask)(1 << 1)

User virtual address on master processor.

#define ProcMgr_SLAVEVIRT (ProcMgr_MapMask)(1 << 2)

Virtual address on slave processor.

Typedef Documentation

typedef struct ProcMgr_Object* ProcMgr_Handle

Defines ProcMgr object handle.

typedef UInt32 ProcMgr_MapMask

Address Map Mask type.

typedef struct ProcMgr_AttachParams_tag ProcMgr_AttachParams

Configuration parameters specific to the slave ProcMgr instance.

typedef struct ProcMgr_StartParams_tag ProcMgr_StartParams

Configuration parameters to be provided while starting the slave processor.

typedef struct ProcMgr_AddrInfo_tag ProcMgr_AddrInfo

This structure defines information about memory regions mapped by the ProcMgr module.

typedef struct ProcMgr_MappedMemEntry ProcMgr_MappedMemEntry

Structure containing information of mapped memory regions.

typedef struct ProcMgr_ProcInfo_tag ProcMgr_ProcInfo

Characteristics of the slave processor.

typedef struct ProcMgr_SectionInfo_tag ProcMgr_SectionInfo

Characteristics of sections in executable.

Enumeration Type Documentation

enum ProcMgr_State

Enumerations to indicate Processor states.

Enumerator:
ProcMgr_State_Unknown

Unknown Processor state (e.g. at startup or error).

ProcMgr_State_Powered

Indicates the Processor is powered up.

ProcMgr_State_Reset

Indicates the Processor is reset.

ProcMgr_State_Loaded

Indicates the Processor is loaded.

ProcMgr_State_Running

Indicates the Processor is running.

ProcMgr_State_Unavailable

Indicates the Processor is unavailable to the physical transport.

ProcMgr_State_EndValue

End delimiter indicating start of invalid values for this enum

enum ProcMgr_BootMode

Enumerations to indicate different types of slave boot modes.

Enumerator:
ProcMgr_BootMode_Boot

ProcMgr is responsible for loading the slave and its reset control.

ProcMgr_BootMode_NoLoad_Pwr

Unsupported

ProcMgr_BootMode_NoLoad_NoPwr

Unsupported

ProcMgr_BootMode_NoBoot

ProcMgr is not responsible for loading or reset control of the slave. The slave either self-boots, or this is done by some entity outside of the ProcMgr module. It only powers the resources that are owned by SysLink/IPC (e.g. spinlocks, mailboxes). For Internal Use.

ProcMgr_BootMode_EndValue

End delimiter indicating start of invalid values for this enum

enum ProcMgr_AddrType

Enumerations to indicate address types used for translation.

Enumerator:
ProcMgr_AddrType_MasterKnlVirt

Kernel Virtual address on master processor

ProcMgr_AddrType_MasterUsrVirt

User Virtual address on master processor

ProcMgr_AddrType_MasterPhys

Physical address on master processor

ProcMgr_AddrType_SlaveVirt

Virtual address on slave processor

ProcMgr_AddrType_SlavePhys

Physical address on slave processor

ProcMgr_AddrType_EndValue

End delimiter indicating start of invalid values for this enum

Function Documentation

Int ProcMgr_open | ( | ProcMgr_Handle * | handlePtr,
 |  | UInt16 | procId
 | ) |  |

Function to open a handle to an existing ProcMgr object handling the procId.

This function returns a handle to an existing ProcMgr instance created for this procId. It enables other entities to access and use this ProcMgr instance.

Parameters:
[out] | handlePtr | Return Parameter: Handle to the ProcMgr instance
[in] | procId | Processor ID represented by this ProcMgr instance
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_S_ALREADYEXISTS | Object is already created/opened in this process
ProcMgr_E_MAP | Failed to map address range to host OS
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
ProcMgr_E_MEMORY | Memory allocation failed
See also:
ProcMgr_close()
Int ProcMgr_close ( ProcMgr_Handle * handlePtr )

Function to close this handle to the ProcMgr instance.

This function closes the handle to the ProcMgr instance obtained through ProcMgr_open call made earlier. The handle in the passed pointer is reset on success.

Parameters:
[in] handlePtr Pointer to the ProcMgr handle
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_ACCESSDENIED | All open handles to this ProcMgr object are already closed
ProcMgr_S_OPENHANDLE | Other threads in this process have already opened handles to this ProcMgr instance.
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
See also:
ProcMgr_open()
Void ProcMgr_getAttachParams | ( | ProcMgr_Handle | handle,
 |  | ProcMgr_AttachParams * | params
 | ) |  |

Function to initialize the parameters for the ProcMgr attach function.

This function can be called by the application to get their configuration parameter to ProcMgr_attach filled in by the ProcMgr module with the default parameters. If the user does not wish to make any change in the default parameters, this API is not required to be called.

Parameters:
handle | Handle to the ProcMgr object. If specified as NULL, the default global configuration values are returned.
params | Pointer to the ProcMgr attach params structure in which the default params is to be returned.
See also:
ProcMgr_attach()
Int ProcMgr_attach | ( | ProcMgr_Handle | handle,
 |  | ProcMgr_AttachParams * | params
 | ) |  |

Function to attach the client to the specified slave and also initialize the slave (if required).

Remarks:
This function attaches to an instance of the ProcMgr module and performs any hardware initialization required to power up the slave device. This function also performs the required state transitions for this ProcMgr instance to ensure that the local object representing the slave device correctly indicates the state of the slave device. Depending on the slave boot mode being used, the slave may be powered up, in reset, or even running state. In typical scenarios, after calling ProcMgr_attach, the application should call ProcMgr_detach during shutdown to detach the client from the slave and perform any hardware finalization needed. However, there may be cases (e.g. in a slave loader application) when it is desirable to leave the hardware initialized and ready upon exiting the application. In such cases it is fine to defer the ProcMgr_detach call to a later point in time.
Configuration parameters need to be provided to this function. If the user wishes to change some specific config parameters, then ProcMgr_getAttachParams() can be called to get the configuration filled with the default values. After this, only the required configuration values can be changed. If the user does not wish to make any change in the default parameters, the application can simply call ProcMgr_attach() with NULL parameters. The default parameters would get automatically used.
Parameters:
[in] | handle | Handle to the ProcMgr object.
[in] | params | Optional ProcMgr attach parameters. If provided as NULL, default configuration is used.
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_MAP | Failed to map address range to host OS
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
See also:
ProcMgr_detach()
ProcMgr_getAttachParams()
Int ProcMgr_detach ( ProcMgr_Handle handle )

Function to detach the client from the specified slave and also finalze the slave (if required).

Remarks:
This function detaches from an instance of the ProcMgr module and performs any hardware finalization required to power down the slave device. This function also performs the required state transitions for this ProcMgr instance to ensure that the local object representing the slave device correctly indicates the state of the slave device. Depending on the slave boot mode being used, the slave may be powered down, in reset, or left in its original state.
Parameters:
[in] handle Handle to the ProcMgr object
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
See also:
ProcMgr_attach
Int ProcMgr_load | ( | ProcMgr_Handle | handle,
 |  | String | imagePath,
 |  | UInt32 | argc,
 |  | String * | argv,
 |  | Ptr | params,
 |  | UInt32 * | fileId
 | ) |  |

Function to load the specified slave executable on the slave Processor.

Remarks:
This function allows usage of different types of loaders. The loader specified when creating this instance of the ProcMgr is used for loading the slave executable. Depending on the type of loader, the imagePath parameter may point to the path of the file in the host file system, or it may be NULL. Some loaders may require specific parameters to be passed.
This function returns a fileId, which can be used for further function calls that reference a specific file that has been loaded on the slave processor.
Some loaders may not support all features. For example, the ELF loader may not support passing argc/argv to the slave.
Parameters:
[in] | handle | Handle to the ProcMgr object
[in] | imagePath | Full file path
[in] | argc | Number of arguments
[in] | argv | String array of arguments
[in] | params | Loader specific parameters
[in,out] | fileId | Return parameter: ID of the loaded file
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
See also:
ProcMgr_unload()
Int ProcMgr_unload | ( | ProcMgr_Handle | handle,
 |  | UInt32 | fileId
 | ) |  |

Function to unload the previously loaded file on the slave processor.

Remarks:
This function unloads the file that was previously loaded on the slave processor through the ProcMgr_load() API. It frees up any resources that were allocated during ProcMgr_load for this file.
The fileId received from the load function must be passed to this function.
Parameters:
[in] | handle | Handle to the ProcMgr object
[in] | fileId | ID of the loaded file to be unloaded
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
See also:
ProcMgr_load()
Void ProcMgr_getStartParams | ( | ProcMgr_Handle | handle,
 |  | ProcMgr_StartParams * | params
 | ) |  |

Function to initialize the parameters for the ProcMgr start function.

Remarks:
This function can be called by the application to get their configuration parameter to ProcMgr_start() filled in by the ProcMgr module with the default parameters.
If the user does not wish to make any change in the default parameters, this API is not required to be called.
Parameters:
[in] | handle | Handle to the ProcMgr object. If NULL, the default global configuration values are returned.
params | Pointer to the ProcMgr start params structure in which the default params is to be returned.
See also:
ProcMgr_start
Int ProcMgr_start | ( | ProcMgr_Handle | handle,
 |  | ProcMgr_StartParams * | params
 | ) |  |

Start the slave processor running.

Remarks:
Function to start execution of the loaded code on the slave from the entry point specified in the slave executable loaded earlier by call to ProcMgr_load().
Postcondition:
After successful completion of this function, the ProcMgr instance is expected to be in the ProcMgr_State_Running state.
Parameters:
[in] | handle | Handle to the ProcMgr object
[in] | params | Optional ProcMgr start parameters. If NULL, default parameters are used.
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_SYMBOLNOTFOUND | Entry ponit symbol not found in loaded file
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
See also:
ProcMgr_stop()
Int ProcMgr_stop ( ProcMgr_Handle handle )

Stop the slave processor.

Remarks:
Depending on the boot mode, after successful completion of this function, the ProcMgr instance may be in the ProcMgr_State_Reset state.
Parameters:
handle Handle to the ProcMgr object
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
See also:
ProcMgr_start()
ProcMgr_State ProcMgr_getState ( ProcMgr_Handle handle )

Function to get the current state of the slave Processor.

Remarks:
This function gets the state of the slave processor as maintained on the master Processor state machine. It does not go to the slave processor to get its actual state at the time when this API is called.
Parameters:
[in] handle Handle to the ProcMgr object
Return values:
Processor-state Operation successful
Int ProcMgr_read | ( | ProcMgr_Handle | handle,
 |  | UInt32 | procAddr,
 |  | UInt32 * | numBytes,
 |  | Ptr | buffer
 | ) |  |

Function to read from the slave processor's memory.

Remarks:
This function reads from the specified address in the processor's address space and copies the required number of bytes into the specified buffer.
It returns the number of bytes actually read in the numBytes parameter.
Parameters:
[in] | handle | Handle to the ProcMgr object
procAddr | Address in space processor's address space of the memory region to read from.
[in,out] | numBytes | As an IN-parameter, it takes in the number of bytes to be read. When the function returns, this parameter contains the number of bytes actually read.
[in,out] | buffer | User-provided buffer in which the slave processor's memory contents are to be copied.
Precondition:
handle is a valid (non-NULL) ProcMgr handle.
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_TRANSLATE | Address is not mapped
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
See also:
ProcMgr_write
Int ProcMgr_write | ( | ProcMgr_Handle | handle,
 |  | UInt32 | procAddr,
 |  | UInt32 * | numBytes,
 |  | Ptr | buffer
 | ) |  |

Function to write into the slave processor's memory.

This function writes into the specified address in the processor's address space and copies the required number of bytes from the specified buffer. It returns the number of bytes actually written in the numBytes parameter.

Parameters:
[in] | handle | Handle to the ProcMgr object
[in] | procAddr | Address in space processor's address space of the memory region to write into.
[in,out] | numBytes | As an IN-parameter, it takes in the number of bytes to be written. When the function returns, this parameter contains the number of bytes actually written.
[in] | buffer | User-provided buffer from which the data is to be written into the slave processor's memory.
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_TRANSLATE | Address is not mapped
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
See also:
ProcMgr_read()
Int ProcMgr_control | ( | ProcMgr_Handle | handle,
 |  | Int32 | cmd,
 |  | Ptr | arg
 | ) |  |

Perform device-dependent operations.

Remarks:
This function performs control operations supported by the as exposed directly by the specific implementation of the Processor interface. These commands and their specific argument types are used with this function.
Parameters:
[in] | handle | Handle to the ProcMgr object
[in] | cmd | Device specific processor command
[in] | arg | Arguments specific to the type of command.
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
Int ProcMgr_translateAddr | ( | ProcMgr_Handle | handle,
 |  | Ptr * | dstAddr,
 |  | ProcMgr_AddrType | dstAddrType,
 |  | Ptr | srcAddr,
 |  | ProcMgr_AddrType | srcAddrType
 | ) |  |

Translate between two types of address spaces.

Remarks:
This function translates addresses between two types of address spaces. The destination and source address types are indicated through parameters specified in this function.
Parameters:
[in] | handle | Handle to the ProcMgr object
[out] | dstAddr | Return parameter: Pointer to receive the translated address.
[in] | dstAddrType | Destination address type requested
[in] | srcAddr | Source address in the source address space
[in] | srcAddrType | Source address type
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_TRANSLATE | Failed to translate address.
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
See also:
ProcMgr_AddrType
Int ProcMgr_getSymbolAddress | ( | ProcMgr_Handle | handle,
 |  | UInt32 | fileId,
 |  | String | symbolName,
 |  | UInt32 * | symValue
 | ) |  |

Function to retrieve the target address of a symbol from the specified file.

Parameters:
[in] | handle | Handle to the ProcMgr object
[in] | fileId | ID of the file received from the load function
[in] | symbolName | Name of the symbol
[out] | symValue | Return parameter: Symbol address
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_SYMBOLNOTFOUND | Symbol not found in loaded file
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
Int ProcMgr_map | ( | ProcMgr_Handle | handle,
 |  | ProcMgr_MapMask | mapMask,
 |  | ProcMgr_AddrInfo * | addrInfo,
 |  | ProcMgr_AddrType | srcAddrType
 | ) |  |

Function to map address to specified destination type(s).

Remarks:
This function maps the provided address of specified srcAddrType to one or more destination address types, and returns the mapped addresses and size in the same addrInfo structure.
Parameters:
[in] | handle | Handle to the Processor object
[in] | mapMask | Mask of destination types of mapping to be performed. One or more types may be ORed together.
[in,out] | addrInfo | Structure containing map info. When this API is called, user must provide a valid address for the address of srcAddrType. On successful completion of this function, this same structure shall contain valid addresses for destination address types given in mapType.
[in] | srcAddrType | Source address type.
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_MAP | Failed to map address range to host OS
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
See also:
ProcMgr_unmap()
Int ProcMgr_unmap | ( | ProcMgr_Handle | handle,
 |  | ProcMgr_MapMask | mapMask,
 |  | ProcMgr_AddrInfo * | addrInfo,
 |  | ProcMgr_AddrType | srcAddrType
 | ) |  |

Function to unmap address from slave address space.

Remarks:
This function unmaps the provided address(es) of specified one or more destination address types. The srcAddrType indicates the source address with which the entry for the mapping is to be identified. It must be the same address that was specified as the src address when the corresponding mapping was performed.
Parameters:
[in] | handle | Handle to the Processor object
[in] | mapMask | Mask of destination types of unmapping to be performed. One or more types may be ORed together.
[in,out] | addrInfo | Structure containing map info. When this API is called, user must provide a valid address for the address of srcAddrType, as well as each of the destination types given in the mapType mask. On successful completion of this function, the specified destination mappings are unmapped.
[in] | srcAddrType | Source address type.
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_NOTFOUND | Info provided does not match with any mapped entry
ProcMgr_E_MAP | Failed to unmap address range from host OS
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
See also:
ProcMgr_map()
UInt32 ProcMgr_getMaxMemoryRegions ( ProcMgr_Handle handle )

Get the maximum number of memory entries.

Parameters:
[in] handle Handle to the ProcMgr object
Remarks:
The kernel objects contain tables of size ProcMgr_MAX_MEMORY_REGIONS, this function retrieves that value for dynamically-sized arrays.
Return values:
Number of max memory entries
Int ProcMgr_getProcInfo | ( | ProcMgr_Handle | handle,
 |  | ProcMgr_ProcInfo * | procInfo
 | ) |  |

Retrieve information about the slave processor.

Parameters:
[in] | handle | Handle to the ProcMgr object
[out] | procInfo | Pointer to the ProcInfo object to be populated.
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
Int ProcMgr_getSectionInfo | ( | ProcMgr_Handle | handle,
 |  | UInt32 | fileId,
 |  | String | sectionName,
 |  | ProcMgr_SectionInfo * | sectionInfo
 | ) |  |

Function that returns section information given the name of section and number of bytes to read.

Parameters:
[in] | handle | Handle to the ProcMgr object
[in] | fileId | ID of the file received from the load function
[in] | sectionName | Name of section to be retrieved
[out] | sectionInfo | Return parameter: Section information
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
Int ProcMgr_getSectionData | ( | ProcMgr_Handle | handle,
 |  | UInt32 | fileId,
 |  | ProcMgr_SectionInfo * | sectionInfo,
 |  | Ptr | buffer
 | ) |  |

Function that returns section data in a buffer given section id and size to be read.

Parameters:
[in] | handle | Handle to the ProcMgr object
[in] | fileId | ID of the file received from the load function
[in] | sectionInfo | Structure filled by ProcMgr_getSectionInfo()
[out] | buffer | Return parameter
Return values:
ProcMgr_S_SUCCESS | Operation successful
ProcMgr_E_INVALIDARG | Invalid parameter specified
ProcMgr_E_INVALIDSTATE | Module was not initialized
ProcMgr_E_HANDLE | Invalid NULL handle specified
ProcMgr_E_OSFAILURE | Failed in an OS-specific call
See also:
ProcMgr_getSectionInfo()
UInt32 ProcMgr_getLoadedFileId ( ProcMgr_Handle handle )

Function that returns section data in a buffer given section id and size to be read.

Parameters:
[in] handle Handle to the ProcMgr object
Return values:
fileId Operation successful
See also:
ProcMgr_load()


SysLink Application Programming Interface (API): ProcMgr.h Source File

ProcMgr.h

Go to the documentation of this file.
00001
00036 /*
00037  *  ============================================================================
00038  *
00039  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00040  *
00041  *  Redistribution and use in source and binary forms, with or without
00042  *  modification, are permitted provided that the following conditions
00043  *  are met:
00044  *
00045  *  *  Redistributions of source code must retain the above copyright
00046  *     notice, this list of conditions and the following disclaimer.
00047  *
00048  *  *  Redistributions in binary form must reproduce the above copyright
00049  *     notice, this list of conditions and the following disclaimer in the
00050  *     documentation and/or other materials provided with the distribution.
00051  *
00052  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00053  *     its contributors may be used to endorse or promote products derived
00054  *     from this software without specific prior written permission.
00055  *
00056  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00057  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00058  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00059  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00060  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00061  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00062  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00063  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00064  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00065  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00066  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00067  *  Contact information for paper mail:
00068  *  Texas Instruments
00069  *  Post Office Box 655303
00070  *  Dallas, Texas 75265
00071  *  Contact information:
00072  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00073  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00074  *  ============================================================================
00075  *
00076  */
00077
00078
00079 #ifndef ProcMgr_H_0xf2ba
00080 #define ProcMgr_H_0xf2ba
00081
00082 #if defined (__cplusplus)
00083 extern "C" {
00084 #endif
00085
00086
00087 /* =============================================================================
00088  *  All success and failure codes for the module
00089  * =============================================================================
00090  */
00094 #define ProcMgr_S_SETUP            5
00095
00099 #define ProcMgr_S_OPENHANDLE       4
00100
00104 #define ProcMgr_S_ALREADYEXISTS    3
00105
00108 #define ProcMgr_S_BUSY             2
00109
00113 #define ProcMgr_S_ALREADYSETUP     1
00114
00118 #define ProcMgr_S_SUCCESS          0
00119
00123 #define ProcMgr_E_FAIL             -1
00124
00128 #define ProcMgr_E_INVALIDARG       -2
00129
00133 #define ProcMgr_E_MEMORY           -3
00134
00138 #define ProcMgr_E_ALREADYEXISTS    -4
00139
00143 #define ProcMgr_E_NOTFOUND         -5
00144
00148 #define ProcMgr_E_TIMEOUT          -6
00149
00153 #define ProcMgr_E_INVALIDSTATE     -7
00154
00158 #define ProcMgr_E_OSFAILURE        -8
00159
00163 #define ProcMgr_E_RESOURCE         -9
00164
00168 #define ProcMgr_E_RESTART          -10
00169
00173 #define ProcMgr_E_HANDLE           -11
00174
00178 #define ProcMgr_E_ACCESSDENIED     -12
00179
00183 #define ProcMgr_E_TRANSLATE        -13
00184
00188 #define ProcMgr_E_SYMBOLNOTFOUND   -14
00189
00193 #define ProcMgr_E_MAP              -15
00194
00195
00196 /* =============================================================================
00197  *  Macros and types
00198  * =============================================================================
00199  */
00203 #define IS_VALID_PROCID(id)   (id < MultiProc_MAXPROCESSORS)
00204
00208 typedef struct ProcMgr_Object * ProcMgr_Handle;
00209
00210
00214 typedef enum {
00215     ProcMgr_State_Unknown     = 0u,
00217     ProcMgr_State_Powered     = 1u,
00219     ProcMgr_State_Reset       = 2u,
00221     ProcMgr_State_Loaded      = 3u,
00223     ProcMgr_State_Running     = 4u,
00225     ProcMgr_State_Unavailable = 5u,
00227     ProcMgr_State_EndValue    = 6u
00229 } ProcMgr_State ;
00230
00234 typedef enum {
00235     ProcMgr_BootMode_Boot           = 0u,
00237     ProcMgr_BootMode_NoLoad_Pwr     = 1u,
00239     ProcMgr_BootMode_NoLoad_NoPwr   = 2u,
00241     ProcMgr_BootMode_NoBoot         = 3u,
00247     ProcMgr_BootMode_EndValue       = 4u
00249 } ProcMgr_BootMode ;
00250
00254 typedef enum {
00255     ProcMgr_AddrType_MasterKnlVirt = 0u,
00257     ProcMgr_AddrType_MasterUsrVirt = 1u,
00259     ProcMgr_AddrType_MasterPhys    = 2u,
00261     ProcMgr_AddrType_SlaveVirt     = 3u,
00263     ProcMgr_AddrType_SlavePhys     = 4u,
00265     ProcMgr_AddrType_EndValue      = 5u
00267 } ProcMgr_AddrType;
00268
00272 typedef UInt32 ProcMgr_MapMask;
00273
00277 #define ProcMgr_MASTERKNLVIRT   (ProcMgr_MapMask)(1 << 0)
00278
00282 #define ProcMgr_MASTERUSRVIRT   (ProcMgr_MapMask)(1 << 1)
00283
00287 #define ProcMgr_SLAVEVIRT       (ProcMgr_MapMask)(1 << 2)
00288
00292 typedef struct ProcMgr_AttachParams_tag {
00293     ProcMgr_BootMode bootMode;
00295     Ptr              bootParams;
00297 } ProcMgr_AttachParams ;
00298
00303 typedef struct ProcMgr_StartParams_tag {
00304     UInt32 reserved;
00306 } ProcMgr_StartParams ;
00307
00308
00313 typedef struct ProcMgr_AddrInfo_tag {
00314     UInt32          addr [ProcMgr_AddrType_EndValue];
00316     UInt32          size;
00318     Bool            isCached;
00320     Bool            isMapped;
00322     ProcMgr_MapMask mapMask;
00324     UInt16          refCount;
00327 } ProcMgr_AddrInfo;
00328
00332 typedef struct ProcMgr_MappedMemEntry {
00333     ProcMgr_AddrInfo info;
00335     ProcMgr_AddrType srcAddrType;
00337     ProcMgr_MapMask  mapMask;
00339     Bool             inUse;
00341 } ProcMgr_MappedMemEntry;
00342
00346 typedef struct ProcMgr_ProcInfo_tag {
00347     ProcMgr_BootMode       bootMode;
00349     UInt16                 maxMemoryRegions;
00351     UInt16                 numMemEntries;
00353     ProcMgr_MappedMemEntry memEntries [0];
00355 } ProcMgr_ProcInfo;
00356
00357
00361 typedef struct ProcMgr_SectionInfo_tag {
00362    UInt32    physicalAddress;
00364    UInt32    virtualAddress;
00366    UInt16    sectId;
00368    UInt32    size;
00370 } ProcMgr_SectionInfo;
00371
00372
00373 /* =============================================================================
00374  *  APIs
00375  * =============================================================================
00376  */
00399 Int ProcMgr_open (ProcMgr_Handle * handlePtr, UInt16 procId);
00400
00422 Int ProcMgr_close (ProcMgr_Handle * handlePtr);
00423
00441 Void ProcMgr_getAttachParams (ProcMgr_Handle         handle,
00442                               ProcMgr_AttachParams * params);
00443
00489 Int ProcMgr_attach (ProcMgr_Handle handle, ProcMgr_AttachParams * params);
00490
00514 Int ProcMgr_detach (ProcMgr_Handle handle);
00515
00549 Int ProcMgr_load (ProcMgr_Handle handle,
00550                   String         imagePath,
00551                   UInt32         argc,
00552                   String *       argv,
00553                   Ptr            params,
00554                   UInt32 *       fileId);
00555
00578 Int ProcMgr_unload (ProcMgr_Handle handle, UInt32 fileId);
00579
00598 Void ProcMgr_getStartParams (ProcMgr_Handle        handle,
00599                              ProcMgr_StartParams * params);
00600
00625 Int ProcMgr_start (ProcMgr_Handle handle, ProcMgr_StartParams * params);
00626
00644 Int ProcMgr_stop (ProcMgr_Handle handle);
00645
00658 ProcMgr_State ProcMgr_getState (ProcMgr_Handle handle);
00659
00691 Int ProcMgr_read (ProcMgr_Handle handle,
00692                   UInt32         procAddr,
00693                   UInt32 *       numBytes,
00694                   Ptr            buffer);
00695
00724 Int ProcMgr_write (ProcMgr_Handle handle,
00725                    UInt32         procAddr,
00726                    UInt32 *       numBytes,
00727                    Ptr            buffer);
00728
00747 Int ProcMgr_control (ProcMgr_Handle handle, Int32 cmd, Ptr arg);
00748
00772 Int ProcMgr_translateAddr (ProcMgr_Handle   handle,
00773                            Ptr *            dstAddr,
00774                            ProcMgr_AddrType dstAddrType,
00775                            Ptr              srcAddr,
00776                            ProcMgr_AddrType srcAddrType);
00777
00794 Int ProcMgr_getSymbolAddress (ProcMgr_Handle handle,
00795                               UInt32         fileId,
00796                               String         symbolName,
00797                               UInt32 *       symValue);
00798
00826 Int ProcMgr_map (ProcMgr_Handle     handle,
00827                  ProcMgr_MapMask    mapMask,
00828                  ProcMgr_AddrInfo * addrInfo,
00829                  ProcMgr_AddrType   srcAddrType);
00830
00863 Int ProcMgr_unmap (ProcMgr_Handle     handle,
00864                    ProcMgr_MapMask    mapMask,
00865                    ProcMgr_AddrInfo * addrInfo,
00866                    ProcMgr_AddrType   srcAddrType);
00867
00879 UInt32 ProcMgr_getMaxMemoryRegions(ProcMgr_Handle handle);
00880
00881
00894 Int ProcMgr_getProcInfo (ProcMgr_Handle     handle,
00895                          ProcMgr_ProcInfo * procInfo);
00896
00897
00913 Int ProcMgr_getSectionInfo (ProcMgr_Handle        handle,
00914                             UInt32                fileId,
00915                             String                sectionName,
00916                             ProcMgr_SectionInfo * sectionInfo);
00917
00935 Int ProcMgr_getSectionData (ProcMgr_Handle        handle,
00936                             UInt32                fileId,
00937                             ProcMgr_SectionInfo * sectionInfo,
00938                             Ptr                   buffer);
00939
00940
00951 UInt32 ProcMgr_getLoadedFileId (ProcMgr_Handle handle);
00952
00953
00954 #if defined (__cplusplus)
00955 }
00956 #endif /* defined (__cplusplus) */
00957
00958 #endif /* ProcMgr_H_0xf2ba */


SysLink Application Programming Interface (API): ResTrack.h File Reference

Data Structures | Defines | Typedefs | Functions

ResTrack.h File Reference

Detailed Description

Resource Tracker utility module.

#include <ti/syslink/osal/OsalTypes.h>
#include <ti/syslink/utils/List.h>
Include dependency graph for ResTrack.h:

Go to the source code of this file.

Data Structures

struct | ResTrack_Params
Structure defining params for creating an instance. More...

Defines

#define | ResTrack_S_SUCCESS 0
#define | ResTrack_E_FAIL (-1)
#define | ResTrack_E_MEMORY (-2)
#define | ResTrack_E_PID (-3)
#define | ResTrack_E_NOTFOUND (-4)

Typedefs

typedef Bool(* | ResTrack_Fxn )(Void *ptrA, Void *ptrB)
Resource compare function type.
typedef struct ResTrack_Object * | ResTrack_Handle
An instance handle type.

Functions

Void | ResTrack_Params_init (ResTrack_Params *params)
Initialize this config-params structure with supplier-specified defaults before instance creation.
ResTrack_Handle | ResTrack_create (ResTrack_Params *params)
Create a resource tracker object.
Void | ResTrack_delete (ResTrack_Handle *handlePtr)
Delete a resource tracker object.
Int | ResTrack_pop (ResTrack_Handle handle, Osal_Pid pid, List_Elem **resPtr)
Get first element from the resource list.
Int | ResTrack_push (ResTrack_Handle handle, Osal_Pid pid, List_Elem *res)
Add resouce element for given process id.
Int | ResTrack_register (ResTrack_Handle handle, Osal_Pid pid)
Register a new process with the resource tracker.
Int | ResTrack_remove (ResTrack_Handle handle, Osal_Pid pid, List_Elem *ref, ResTrack_Fxn cmpFxn, List_Elem **resPtr)
Remove specific resource object from the resource list.
Int | ResTrack_unregister (ResTrack_Handle handle, Osal_Pid pid)
Unregister the given process with the resource tracker.

Define Documentation

#define ResTrack_S_SUCCESS 0
#define ResTrack_E_FAIL (-1)
#define ResTrack_E_MEMORY (-2)
#define ResTrack_E_PID (-3)
#define ResTrack_E_NOTFOUND (-4)

Typedef Documentation

typedef Bool(* ResTrack_Fxn)(Void *ptrA, Void *ptrB)

Resource compare function type.

typedef struct ResTrack_Object* ResTrack_Handle

An instance handle type.

Function Documentation

Void ResTrack_Params_init ( ResTrack_Params * params )

Initialize this config-params structure with supplier-specified defaults before instance creation.

Parameters:
params Instance config-params structure.
See also:
ResTrack_create
ResTrack_Handle ResTrack_create ( ResTrack_Params * params )

Create a resource tracker object.

Parameters:
params Pointer to creation parameters. If NULL is passed, default parameters are used.
Return values:
Handle to the object
See also:
ResTrack_delete
Void ResTrack_delete ( ResTrack_Handle * handlePtr )

Delete a resource tracker object.

Parameters:
handlePtr Pointer to resource tracker instance handle
See also:
ResTrack_create
Int ResTrack_pop | ( | ResTrack_Handle | handle,
 |  | Osal_Pid | pid,
 |  | List_Elem ** | resPtr
 | ) |  |

Get first element from the resource list.

Parameters:
handle | Resource tracker instance handle
pid | Process id
resPtr | Resource object return pointer, may be NULL
Return values:
ResTrack_S_SUCCESS | Operation succeeded
ResTrack_E_PID | No process object for given id
See also:
ResTrack_push, ResTrack_remove
Int ResTrack_push | ( | ResTrack_Handle | handle,
 |  | Osal_Pid | pid,
 |  | List_Elem * | res
 | ) |  |

Add resouce element for given process id.

Parameters:
handle | Resource tracker instance handle
pid | Process id
res | Resource object to be added
Return values:
ResTrack_S_SUCCESS | Operation succeeded
ResTrack_E_PID | No process object for given id
See also:
ResTrack_pop
Int ResTrack_register | ( | ResTrack_Handle | handle,
 |  | Osal_Pid | pid
 | ) |  |

Register a new process with the resource tracker.

Parameters:
handle | Resource tracker instance handle
pid | Process id to register
Return values:
ResTrack_S_SUCCESS | Operation succeeded
ResTrack_E_MEMORY | Memory unavailable
See also:
ResTrack_unregister
Int ResTrack_remove | ( | ResTrack_Handle | handle,
 |  | Osal_Pid | pid,
 |  | List_Elem * | ref,
 |  | ResTrack_Fxn | cmpFxn,
 |  | List_Elem ** | resPtr
 | ) |  |

Remove specific resource object from the resource list.

Parameters:
handle | Resource tracker instance handle
pid | Process id
ref | Reference resource object
cmpFxn | Compare function
resPtr | Pointer to return resource, may be NULL
Return values:
ResTrack_S_SUCCESS | Operation succeeded
ResTrack_E_PID | No process object for given id
ResTrack_E_NOTFOUND | No resource found which matches the reference resource
See also:
ResTrack_push, ResTrack_pop
Int ResTrack_unregister | ( | ResTrack_Handle | handle,
 |  | Osal_Pid | pid
 | ) |  |

Unregister the given process with the resource tracker.

Parameters:
handle | Resource tracker instance handle
pid | Process id to unregister
Return values:
ResTrack_S_SUCCESS | Operation succeeded
ResTrack_E_PID | No process object for given id
See also:
ResTrack_register


SysLink Application Programming Interface (API): ResTrack.h Source File

ResTrack.h

Go to the documentation of this file.
00001
00008 /*
00009  *  ============================================================================
00010  *
00011  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00012  *
00013  *  Redistribution and use in source and binary forms, with or without
00014  *  modification, are permitted provided that the following conditions
00015  *  are met:
00016  *
00017  *  *  Redistributions of source code must retain the above copyright
00018  *     notice, this list of conditions and the following disclaimer.
00019  *
00020  *  *  Redistributions in binary form must reproduce the above copyright
00021  *     notice, this list of conditions and the following disclaimer in the
00022  *     documentation and/or other materials provided with the distribution.
00023  *
00024  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00025  *     its contributors may be used to endorse or promote products derived
00026  *     from this software without specific prior written permission.
00027  *
00028  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00029  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00030  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00031  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00032  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00033  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00034  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00035  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00036  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00037  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00038  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  *  Contact information for paper mail:
00040  *  Texas Instruments
00041  *  Post Office Box 655303
00042  *  Dallas, Texas 75265
00043  *  Contact information:
00044  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00045  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00046  *  ============================================================================
00047  *
00048  */
00049
00050
00051 #ifndef ti_syslink_utils_ResTrack__include
00052 #define ti_syslink_utils_ResTrack__include
00053
00054 #include <ti/syslink/osal/OsalTypes.h>
00055 #include <ti/syslink/utils/List.h>
00056
00057
00058 #if defined (__cplusplus)
00059 extern "C" {
00060 #endif
00061
00062
00063 /* =============================================================================
00064  *  Macros and types
00065  * =============================================================================
00066  */
00067
00068 #define ResTrack_S_SUCCESS      0
00069 #define ResTrack_E_FAIL         (-1)
00070 #define ResTrack_E_MEMORY       (-2)
00071 #define ResTrack_E_PID          (-3)
00072 #define ResTrack_E_NOTFOUND     (-4)
00073
00074
00078 typedef Bool (*ResTrack_Fxn)(Void *ptrA, Void *ptrB);
00079
00083 typedef struct ResTrack_Object *ResTrack_Handle;
00084
00088 typedef struct {
00089     Int temp;
00090 } ResTrack_Params;
00091
00092
00093 /* =============================================================================
00094  *  APIs
00095  * =============================================================================
00096  */
00105 Void ResTrack_Params_init(ResTrack_Params *params);
00106
00117 ResTrack_Handle ResTrack_create(ResTrack_Params *params);
00118
00126 Void ResTrack_delete(ResTrack_Handle *handlePtr);
00127
00140 Int ResTrack_pop(ResTrack_Handle handle, Osal_Pid pid, List_Elem **resPtr);
00141
00154 Int ResTrack_push(ResTrack_Handle handle, Osal_Pid pid, List_Elem *res);
00155
00167 Int ResTrack_register(ResTrack_Handle handle, Osal_Pid pid);
00168
00185 Int ResTrack_remove(ResTrack_Handle handle, Osal_Pid pid, List_Elem *ref,
00186         ResTrack_Fxn cmpFxn, List_Elem **resPtr);
00187
00199 Int ResTrack_unregister(ResTrack_Handle handle, Osal_Pid pid);
00200
00201
00202 #if defined (__cplusplus)
00203 }
00204 #endif
00205
00206 #endif /* ti_syslink_utils_ResTrack__include */


SysLink Application Programming Interface (API): RingIO.h File Reference

Data Structures | Defines | Typedefs | Enumerations | Functions

RingIO.h File Reference

Detailed Description

RingIO module.

The RingIO component provides data streaming between cores using a ring buffer as the transport.

In a multiprocessor system having shared access to a memory region, an efficient mode of data transfer can be implemented, which uses a ring buffer created within the shared memory. The reader and writer of the ring buffer can be on different processors.

The RingIO component on each processor shall provide the ability to create RingIO buffers within the memory provided by the application. The memory provided may be within a shared memory region between two processors. The RingIO buffer is accessible to reader and writer present on the two processors between which the memory is shared. The application can obtain a handle to the RingIO through a call to open it.

The RingIO component shall provide the ability for the writer to acquire empty regions of memory within the data buffer. The contents of the acquired region are committed to memory when the data buffer is released by the writer.

The RingIO component shall provide the ability for the reader to acquire regions of memory within the data buffer with valid data within them. On releasing the acquired region, the contents of this region are marked as invalid.

The RingIO component shall also support APIs for enabling synchronous transfer of attributes with data. End of Stream (EOS), Time Stamps, Stream offset etc. are examples of such attributes and these shall be associated with offsets in the ring buffer.

A client using RingIO is a single unit of execution. It is typically a thread or task on a given processor.

  • The RingIO instance can be created between a client on the host CPU and a client on a slave CPU or between two clients on slave CPUs.
  • Either the reader or writer can create or delete the RingIO instance.
  • The RingIO instance should be created in a shared memory region which can be accessed directly by both the reader and the writer.
  • Both the reader and the writer need to open the RingIO instance and get a handle. Any data access on the RingIO instance should be made using these handles.
  • Each RingIO can have a single writer client and a single reader client. A RingIO handle may not be shared between multiple threads.

The RingIO client can be closed only if there is no currently acquired data or attributes. If there is any unreleased data or attributes, they must be released or cancelled before the RingIO client can be closed.

The RingIO can be deleted only when both reader and writer clients have successfully closed their RingIO clients.

Each RingIO instance may have an associated footer area, if configured. The foot buffer can be configured to be of zero size if not required. If configured to be non-zero size, the foot-buffer is physically contiguous with the data buffer.

The RingIO data and attribute buffer sizes must comply with any constraints imposed by the heap that they are specified to be allocated from. For example, for a Shared Memory Heap, the buffer sizes are automatically aligned to the SharedRegion's cache line size.

Example:
      // Setup SysLink
  SysLink_setup();

      // Create the RingIO
  RingIOShm_Params_init (&rioParams);
  rioParams.commonParams.name     = "My RingIO";
  rioParams.ctrlRegionId          = 1;
  rioParams.dataRegionId          = 1;
  rioParams.attrRegionId          = 1;
  rioParams.attrSharedAddrSize    = 16;
  rioParams.dataSharedAddrSize    = 40;
  rioParams.remoteProcId          = MultiProc_getId("DSP");
  rioParams.gateHandle            = NULL;

  rio_Handle              = RingIO_create(&rioParams);

      // Open the RingIO
  rio_OpenParams.openMode         = RingIO_MODE_WRITER;
  rio_OpenParams.flags            = 0;
  status = RingIO_open (GPP_RINGIO_NAME,&rio_OpenParams,NULL,
          &rio_WriterHandle);

      // Write to RingIO
  status = RingIO_acquire(rio_WriterHandle,(RingIO_BufPtr*)&buffer,
          &acquiredSize);
                     // (Can put some data into the buffer here)
  status = RingIO_release(rio_WriterHandle,
           acquiredSize);

      // Close the RingIO
  status = RingIO_close(&rio_WriterHandle);

      // Delete the RingIO
  status = RingIO_delete(&rio_Handle);
#include <ti/syslink/SysLink.h>
Include dependency graph for RingIO.h:

Go to the source code of this file.

Data Structures

struct | RingIO_Params_Tag
Common parameters required to create RingIO instance of any implementation. It should be the first element of the actual implementaton params structure . More...
struct | RingIO_openParams_Tag
Structure defining config parameters for opening the RingIO instances. More...
struct | RingIO_sharedMemReqDetails_tag
Structure defining config parameters for opening the RingIO instances. More...

Defines

#define | RingIO_S_PENDINGATTRIBUTE 4
Indicates that either: 1) The amount of data requested could not be serviced due to the presence of an attribute 2) During an attribute read if another is also present at the same offset.
#define | RingIO_S_NOTCONTIGUOUSDATA 3
Indicates that data size requested is not available as a contiguous chunk. Returning partial buffer as NEED_EXACT_SIZE was not specified.
#define | RingIO_S_BUSY 2
The resource is still in use.
#define | RingIO_S_ALREADYSETUP 1
The module has been already setup.
#define | RingIO_S_SUCCESS 0
Operation is successful.
#define | RingIO_E_FAIL -1
Operation is not successful.
#define | RingIO_E_INVALIDARG -2
There is an invalid argument.
#define | RingIO_E_MEMORY -3
Operation resulted in memory failure.
#define | RingIO_E_ALREADYEXISTS -4
The specified entity already exists.
#define | RingIO_E_NOTFOUND -5
Unable to find the specified entity.
#define | RingIO_E_TIMEOUT -6
Operation timed out.
#define | RingIO_E_INVALIDSTATE -7
Module is not initialized.
#define | RingIO_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | RingIO_E_RESOURCE -9
Specified resource is not available.
#define | RingIO_E_RESTART -10
Operation was interrupted. Please restart the operation.
#define | RingIO_E_INVALIDMSG -11
An invalid message was encountered.
#define | RingIO_E_NOTOWNER -12
Not the owner.
#define | RingIO_E_REMOTEACTIVE -13
Operation resulted in error.
#define | RingIO_E_INVALIDHEAPID -14
An invalid heap id was encountered.
#define | RingIO_E_INVALIDPROCID -15
An invalid MultiProc id was encountered.
#define | RingIO_E_MAXREACHED -16
The max has been reached.
#define | RingIO_E_INUSE -17
Indicates that the instance is in use..
#define | RingIO_E_INVALIDCONTEXT -18
Indicates that the api is called with wrong handle.
#define | RingIO_E_BADVERSION -19
Versions don't match.
#define | RingIO_E_BUFWRAP -20
Indicates that the amount of data requested could not be serviced due to the ring buffer getting wrapped.
#define | RingIO_E_BUFEMPTY -21
Indicates that there is no data in the buffer for reading.
#define | RingIO_E_BUFFULL -22
Indicates that the buffer is full.
#define | RingIO_E_PENDINGDATA -23
Indicates that there is no attribute at the current offset, but attributes are present at a future offset.
#define | RingIO_E_VARIABLEATTRIBUTE -24
Indicates that getAttribute() failed, need to extract variable length message using getvAttribute()
#define | RingIO_E_WRONGSTATE -25
Indicates that the RingIO is in a wrong state.
#define | RingIO_E_NOTIFYFAIL -26
Indicates that the underlying notification call failed.
#define | RingIO_E_PENDINGATTRIBUTE -27
Indicates that the the acquire failed as attribute is present at current read offset.

Typedefs

typedef Ptr | RingIO_BufPtr
typedef UInt16 | RingIO_NotifyMsg
typedef struct RingIO_Object * | RingIO_Handle
Handle for the RingIO instance.
typedef enum RingIO_Type_Tag | RingIO_Type
typedef struct RingIO_Params_Tag | RingIO_Params
Common parameters required to create RingIO instance of any implementation. It should be the first element of the actual implementaton params structure .
typedef enum RingIO_OpenMode_Tag | RingIO_OpenMode
Enumeration of RingIO open modes.
typedef struct
RingIO_openParams_Tag 		RingIO_openParams
Structure defining config parameters for opening the RingIO instances.
typedef struct
RingIO_sharedMemReqDetails_tag 		RingIO_sharedMemReqDetails
Structure defining config parameters for opening the RingIO instances.
typedef enum RingIO_Flags_tag | RingIO_Flags
Enumeration of flags for RingIO client. It includes information about access to buffers.
typedef enum RingIO_NotifyType_Tag | RingIO_NotifyType
Enumerates the notification types for RingIO.
typedef void(* | RingIO_NotifyFxn )(RingIO_Handle, Ptr, RingIO_NotifyMsg)
Prototype of the RingIO call back function.

Enumerations

enum | RingIO_Type_Tag { RingIO_Type_SHAREDMEM = 0x0 }
enum RingIO_OpenMode_Tag {
RingIO_MODE_READER = 0x0,
RingIO_MODE_WRITER = 0x1
}

Enumeration of RingIO open modes.

More...
enum RingIO_Flags_tag {
RingIO_DATABUF_MAINTAINCACHE = 0x1,
RingIO_NEED_EXACT_SIZE = 0x2
}

Enumeration of flags for RingIO client. It includes information about access to buffers.

More...
enum RingIO_NotifyType_Tag {
RingIO_NOTIFICATION_NONE = SysLink_NOTIFICATION_NONE,
RingIO_NOTIFICATION_ALWAYS = SysLink_NOTIFICATION_ALWAYS,
RingIO_NOTIFICATION_ONCE = SysLink_NOTIFICATION_ONCE,
RingIO_NOTIFICATION_HDWRFIFO_ALWAYS,
RingIO_NOTIFICATION_HDWRFIFO_ONCE
}

Enumerates the notification types for RingIO.

More...

Functions

Void | RingIO_Params_init (Void *params)
Function to initialize the parameters for the RingIO instance.
RingIO_Handle | RingIO_create (const Void *params)
Create a RingIO object.
Int | RingIO_delete (RingIO_Handle *handlePtr)
Delete a RingIO object.
UInt32 | RingIO_sharedMemReq (const Void *params, RingIO_sharedMemReqDetails *sharedMemReqDetails)
Get shared memory requirements. RingIO_Params_init must be called to initialize the parameters before calling this function.
Int | RingIO_open (String name, const RingIO_openParams *params, UInt16 *procIds, RingIO_Handle *handlePtr)
Opens a created instance of RingIO module.
Int | RingIO_openByAddr (Ptr ctrlSharedAddr, const RingIO_openParams *params, RingIO_Handle *handlePtr)
Opens a created instance of RingIO module by the shared memory address of the instance.
Int | RingIO_close (RingIO_Handle *handlePtr)
Closes previously opened instance of RingIO module.
Int | RingIO_registerNotifier (RingIO_Handle handle, RingIO_NotifyType notifyType, UInt32 watermark, RingIO_NotifyFxn notifyFunc, Ptr cbContext)
Function to register a call back function.
Int | RingIO_unregisterNotifier (RingIO_Handle handle)
Unregister a call back function.
Int | RingIO_setWaterMark (RingIO_Handle handle, UInt32 watermark)
Function to set client's watermark.
Int | RingIO_setNotifyType (RingIO_Handle handle, RingIO_NotifyType notifyType)
Function to set the notify type.
Int | RingIO_acquire (RingIO_Handle handle, RingIO_BufPtr *pData, UInt32 *pSize)
Acquires data from the RingIO instance This function acquires a data buffer from RingIO for reading or writing, depending on the mode in which the client (represented by the handle) has been opened.
Int | RingIO_release (RingIO_Handle handle, UInt32 size)
Releases data from the RingIO instance.
Int | RingIO_cancel (RingIO_Handle handle)
Cancel the previous acquired buffer to the RingIO instance This function cancels any data buffers acquired by reader or writer. In the case of writer, all attributes that are set since the first acquire are removed. In the case of reader, all attributes that were obtained since the first acquired are re-instated in the RingIO instance.
Int | RingIO_getvAttribute (RingIO_Handle handle, UInt16 *type, UInt32 *param, RingIO_BufPtr vptr, UInt32 *pSize)
Get attribute from the RingIO instance This function gets an attribute with a variable-sized payload from the attribute buffer. If an attribute is present, the attribute type, the optional parameter, a pointer to the optional payload and the payload size are returned.
Int | RingIO_setvAttribute (RingIO_Handle handle, UInt16 type, UInt32 param, RingIO_BufPtr pData, UInt32 size, Bool sendNotification)
Set attribute in the RingIO instance.
Int | RingIO_getAttribute (RingIO_Handle handle, UInt16 *type, UInt32 *param)
Obtain a fixed-size attribute from the attribute buffer.
Int | RingIO_setAttribute (RingIO_Handle handle, UInt16 type, UInt32 param, Bool sendNotification)
This function sets a fixed-size attribute in the acquired data buffer.
Int | RingIO_flush (RingIO_Handle handle, Bool hardFlush, UInt16 *type, UInt32 *param, UInt32 *bytesFlushed)
Flush the buffer in the RingIO instance.
Int | RingIO_sendNotify (RingIO_Handle handle, RingIO_NotifyMsg msg)
Send a force notification to the other client manually.
UInt | RingIO_getValidSize (RingIO_Handle handle)
Function to get valid data buffer size.
UInt | RingIO_getEmptySize (RingIO_Handle handle)
Function to get empty data buffer size.
UInt | RingIO_getValidAttrSize (RingIO_Handle handle)
Function to get valid attribute size.
UInt | RingIO_getEmptyAttrSize (RingIO_Handle handle)
Function to get empty attribute size.
UInt | RingIO_getAcquiredOffset (RingIO_Handle handle)
Function to get client's acquire offset from the start of the buffer.
UInt | RingIO_getAcquiredSize (RingIO_Handle handle)
Function to get client's acquired size.
UInt | RingIO_getWaterMark (RingIO_Handle handle)
Function to get client's watermark.

Define Documentation

#define RingIO_S_PENDINGATTRIBUTE 4

Indicates that either: 1) The amount of data requested could not be serviced due to the presence of an attribute 2) During an attribute read if another is also present at the same offset.

#define RingIO_S_NOTCONTIGUOUSDATA 3

Indicates that data size requested is not available as a contiguous chunk. Returning partial buffer as NEED_EXACT_SIZE was not specified.

#define RingIO_S_BUSY 2

The resource is still in use.

#define RingIO_S_ALREADYSETUP 1

The module has been already setup.

#define RingIO_S_SUCCESS 0

Operation is successful.

#define RingIO_E_FAIL -1

Operation is not successful.

#define RingIO_E_INVALIDARG -2

There is an invalid argument.

#define RingIO_E_MEMORY -3

Operation resulted in memory failure.

#define RingIO_E_ALREADYEXISTS -4

The specified entity already exists.

#define RingIO_E_NOTFOUND -5

Unable to find the specified entity.

#define RingIO_E_TIMEOUT -6

Operation timed out.

#define RingIO_E_INVALIDSTATE -7

Module is not initialized.

#define RingIO_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define RingIO_E_RESOURCE -9

Specified resource is not available.

#define RingIO_E_RESTART -10

Operation was interrupted. Please restart the operation.

#define RingIO_E_INVALIDMSG -11

An invalid message was encountered.

#define RingIO_E_NOTOWNER -12

Not the owner.

#define RingIO_E_REMOTEACTIVE -13

Operation resulted in error.

#define RingIO_E_INVALIDHEAPID -14

An invalid heap id was encountered.

#define RingIO_E_INVALIDPROCID -15

An invalid MultiProc id was encountered.

#define RingIO_E_MAXREACHED -16

The max has been reached.

#define RingIO_E_INUSE -17

Indicates that the instance is in use..

#define RingIO_E_INVALIDCONTEXT -18

Indicates that the api is called with wrong handle.

#define RingIO_E_BADVERSION -19

Versions don't match.

#define RingIO_E_BUFWRAP -20

Indicates that the amount of data requested could not be serviced due to the ring buffer getting wrapped.

#define RingIO_E_BUFEMPTY -21

Indicates that there is no data in the buffer for reading.

#define RingIO_E_BUFFULL -22

Indicates that the buffer is full.

#define RingIO_E_PENDINGDATA -23

Indicates that there is no attribute at the current offset, but attributes are present at a future offset.

#define RingIO_E_VARIABLEATTRIBUTE -24

Indicates that getAttribute() failed, need to extract variable length message using getvAttribute()

#define RingIO_E_WRONGSTATE -25

Indicates that the RingIO is in a wrong state.

#define RingIO_E_NOTIFYFAIL -26

Indicates that the underlying notification call failed.

#define RingIO_E_PENDINGATTRIBUTE -27

Indicates that the the acquire failed as attribute is present at current read offset.

Typedef Documentation

typedef Ptr RingIO_BufPtr
typedef UInt16 RingIO_NotifyMsg
typedef struct RingIO_Object* RingIO_Handle

Handle for the RingIO instance.

typedef enum RingIO_Type_Tag RingIO_Type
typedef struct RingIO_Params_Tag RingIO_Params

Common parameters required to create RingIO instance of any implementation. It should be the first element of the actual implementaton params structure .

typedef enum RingIO_OpenMode_Tag RingIO_OpenMode

Enumeration of RingIO open modes.

typedef struct RingIO_openParams_Tag RingIO_openParams

Structure defining config parameters for opening the RingIO instances.

typedef struct RingIO_sharedMemReqDetails_tag RingIO_sharedMemReqDetails

Structure defining config parameters for opening the RingIO instances.

typedef enum RingIO_Flags_tag RingIO_Flags

Enumeration of flags for RingIO client. It includes information about access to buffers.

typedef enum RingIO_NotifyType_Tag RingIO_NotifyType

Enumerates the notification types for RingIO.

typedef void(* RingIO_NotifyFxn)(RingIO_Handle, Ptr, RingIO_NotifyMsg)

Prototype of the RingIO call back function.

Parameters:
RingIO_Handle Pointer to the RingIO instance structure in which the default params is to be returned. Ptr Argument to callback function e.g. handle to semaphore to be posted from callback RingIO_NotifyMsg message
Return values:
None

Enumeration Type Documentation

enum RingIO_Type_Tag
Enumerator:
RingIO_Type_SHAREDMEM

interface type for ringio transport

enum RingIO_OpenMode_Tag

Enumeration of RingIO open modes.

Enumerator:
RingIO_MODE_READER

If specifed in params, open call returns a reader handle.

RingIO_MODE_WRITER

If specifed in params, open call returns a writer handle.

enum RingIO_Flags_tag

Enumeration of flags for RingIO client. It includes information about access to buffers.

Enumerator:
RingIO_DATABUF_MAINTAINCACHE

Denotes whether cache maintenance needs to be performed on the data buffer

RingIO_NEED_EXACT_SIZE

Denotes whether requests for acquire buffer should always be satisfied. For a writer, if a contiguous request could not be satisfied because of the buffer wrap, we mark an early end and provide a contiguous buffer from the top of the buffer. For a reader, if a contiguous request could not be satisfied, we copy the top of the buffer into the footer.

enum RingIO_NotifyType_Tag

Enumerates the notification types for RingIO.

Enumerator:
RingIO_NOTIFICATION_NONE

No notification is required.

RingIO_NOTIFICATION_ALWAYS

Notify whenever the other client sends data/frees up space. after a failure to acquire data/space.

RingIO_NOTIFICATION_ONCE

Notify when the other side sends data/frees up space, after a failure to acquire data/space. Once the notification is done, the notification is disabled until it is enabled again when acquire fails.

RingIO_NOTIFICATION_HDWRFIFO_ALWAYS

Notify whenever the other side sends data/frees up space if the size of data/space available is above the watermark. This notification is never disabled.

RingIO_NOTIFICATION_HDWRFIFO_ONCE

Notify when the other side sends data/frees up space, if the size is above the watermark level. 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.

Function Documentation

Void RingIO_Params_init ( Void * params )

Function to initialize the parameters for the RingIO instance.

This function can be called by the application to get their configuration parameter to RingIO_create filled in by the RingIO module with the default parameters.

Precondition:
params is a valid (non-NULL) pointer.
Parameters:
[out] params Pointer to the RingIO interface type specific params, refer to Interface type specific header file (e.g. RingIOShm.h) for details on interface type specific params
Return values:
None
See also:
RingIO_create
RingIO_Handle RingIO_create ( const Void * params )

Create a RingIO object.

This function creates an instance of the RingIO module and returns an instance handle, which is used to access the specified RingIO. Instance-level configuration needs to be provided to this function. If the user wishes to change some specific config parameters, then the parameter initialization function for the RingIO transport to be used (e.g. RingIOShm_Params_init) can be called to get the configuration filled with the default values. After this, only the required configuration values can be changed.

Parameters:
[in] params Pointer to the RingIO interface type specific params, refer to Interface type specific header file (e.g. RingIOShm.h) for details on interface type specific params
Precondition:
params is a valid (non-NULL) pointer to a set of interface type specific params.
Return values:
non-NULL | Operation successful
NULL | Operation unsuccessful
See also:
RingIO_delete, RingIO_open, RingIO_close
Int RingIO_delete ( RingIO_Handle * handlePtr )

Delete a RingIO object.

Once this function is called, other RingIO instance level APIs that require the instance handle cannot be called.

Parameters:
[in] handlePtr Pointer to Handle to the RingIO object. This MUST be a handle that was returned from RingIO_create and not one that comes from RingIO_open.
Precondition:
handlePtr is a valid (non-NULL) pointer to a valid RingIO handle.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_INVALIDSTATE | Module is in an invalid state Instance was not created on this processor
RingIO_E_INVALIDARG | handlePtr pointer passed is NULL
RingIO_E_INVALIDARG | *handlePtr passed is NULL
RingIO_E_INVALIDCONTEXT | Api is not called with a handle from RingIO_create
See also:
RingIO_create
UInt32 RingIO_sharedMemReq | ( | const Void * | params,
 |  | RingIO_sharedMemReqDetails * | sharedMemReqDetails
 | ) |  |

Get shared memory requirements. RingIO_Params_init must be called to initialize the parameters before calling this function.

Parameters:
[in] | params | Pointer to the RingIO interface type specific params, refer to Interface type specific header file (e.g. RingIOShm.h) for details on interface type specific params.
[out] | sharedMemReqDetails | Control, Data and Attr shared memory details
Precondition:
params is a valid (non-NULL) pointer to interface specific params.
sharedMemReqDetails is a valid (non-NULL) pointer.
Return values:
Shared-memory-requirements Operation successfully completed. The out parameter of sharedMemDetails contains the values for ctrlSharedMemReq : Control shared memory requirements dataSharedMemReq : Data Buffer shared memory requirements attrSharedMemReq : Attribute buffer shared memory requirements
See also:
None
Int RingIO_open | ( | String | name,
 |  | const RingIO_openParams * | params,
 |  | UInt16 * | procIds,
 |  | RingIO_Handle * | handlePtr
 | ) |  |

Opens a created instance of RingIO module.

Parameters:
[in] | name | Name of the RingIO instance to be opened
[in] | params | Parameters for opening the RingIO instance.
[in] | procIds | Array of processor IDs to search for the RingIO instance. If NULL is specified, all processors are checked.
[out] | handlePtr | Holds the RingIO handle on success.
Precondition:
handlePtr is a valid (non-NULL) pointer.
params is a valid (non-NULL) pointer to a set of parameters to open the RingIO instance.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_INVALIDSTATE | Module is in an invalid state
RingIO_E_NOTFOUND | RingIO not found
RingIO_E_FAIL | Failed to open the gate associated with the RingIO instance. Failed to open the clientnotifymgr associated with the RingIO instance.
RingIO_E_INVALIDARG | Parameters passed are invalid
See also:
RingIO_close, RingIO_openParams
Int RingIO_openByAddr | ( | Ptr | ctrlSharedAddr,
 |  | const RingIO_openParams * | params,
 |  | RingIO_Handle * | handlePtr
 | ) |  |

Opens a created instance of RingIO module by the shared memory address of the instance.

Parameters:
[in] | ctrlSharedAddr | Shared address at which the instance exists
[in] | params | Parameters for opening the RingIO instance.
[out] | handlePtr | Holds the RingIO handle on success.
Precondition:
handlePtr is a valid (non-NULL) pointer.
params is a valid (non-NULL) pointer to a set of parameters for opening the RingIO instance.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_INVALIDSTATE | Module is in an invalid state
RingIO_E_NOTFOUND | RingIO not found
RingIO_E_FAIL | Failed to open the gate associated with the RingIO instance. Failed to open the clientnotifymgr associated with the RingIO instance.
RingIO_E_INVALIDARG | Parameters passed are invalid
See also:
RingIO_create()
RingIO_delete()
RingIO_close()
Int RingIO_close ( RingIO_Handle * handlePtr )

Closes previously opened instance of RingIO module.

Parameters:
[in] handlePtr Pointer to handle for the opened RingIO instance. MUST be a pointer returned by RingIO_open and not RingIO_create. Reset to invalid when the function successfully completes.
Precondition:
handlePtr is a valid (non-NULL) pointer to a RingIO handle.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_INVALIDSTATE | Module is in an invalid state
RingIO_E_FAIL | Failed to open the gate associated with the RingIO instance. Failed to open the clientnotifymgr associated with the RingIO instance.
RingIO_E_INVALIDARG | Parameters passed are invalid
RingIO_E_INVALIDCONTEXT | Api is not called with a handle from RingIO_open
See also:
RingIO_create()
RingIO_delete()
RingIO_open()
Int RingIO_registerNotifier | ( | RingIO_Handle | handle,
 |  | RingIO_NotifyType | notifyType,
 |  | UInt32 | watermark,
 |  | RingIO_NotifyFxn | notifyFunc,
 |  | Ptr | cbContext
 | ) |  |

Function to register a call back function.

This function sets Notification parameters for the RingIO Client. Both the reader and writer can set their notification mechanism using this function

RingIO_open() for both reader and writer has been successful. No SysLink API should be called from a callback function registered through the RingIO module. On SYS/BIOS the callback functions are run from ISR context and must not perform any operations that may take a lock or block, which is done by most SysLink APIs. Minimum functionality must be used in the callback functions, most often limited to posting a semaphore on which application is waiting, posting SWI etc.

Parameters:
[in] | handle | RingIO client Handle.
[in] | notifyType | Type of notification.
[in] | watermark | WaterMark
[in] | notifyFunc | Call back function
[in] | cbContext | Context pointer that needs to be passed to call back.
Precondition:
handle is a valid (non-NULL) RingIO handle.
notifyFunc is a valid (non-NULL) function pointer to a notification function.
cbContext is a valid (non-NULL) pointer to data that would be passed to the notification function.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_INVALIDSTATE | Module is in an invalid state RingIO_open is not called yet
RingIO_E_FAIL | Failed to open the gate associated with the RingIO instance. Failed to open the clientnotifymgr associated with the RingIO instance.
RingIO_E_INVALIDARG | Parameters passed are invalid
See also:
RingIO_unregisterNotifier()
Int RingIO_unregisterNotifier ( RingIO_Handle handle )

Unregister a call back function.

Parameters:
[in] handle RingIO client Handle.
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_INVALIDSTATE | Module is in an invalid state RingIO_open is not called yet
RingIO_E_FAIL | Failed to open the gate associated with the RingIO instance. Failed to open the clientnotifymgr associated with the RingIO instance.
RingIO_E_INVALIDARG

There is an invalid argument.

See also:
RingIO_registerNotifier()
Int RingIO_setWaterMark | ( | RingIO_Handle | handle,
 |  | UInt32 | watermark
 | ) |  |

Function to set client's watermark.

Parameters:
[in] | handle | RingIO client Handle.
[in] | watermark | Watermark value
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_FAIL

Operation is not successful.

RingIO_E_INVALIDARG

There is an invalid argument.

See also:
RingIO_registerNotifier()
Int RingIO_setNotifyType | ( | RingIO_Handle | handle,
 |  | RingIO_NotifyType | notifyType
 | ) |  |

Function to set the notify type.

Parameters:
[in] | handle | Instance handle.
[in] | notifyType | Type of notification
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_FAIL

Operation is not successful.

RingIO_E_INVALIDARG

There is an invalid argument.

See also:
RingIO_NotifyType
RingIO_registerNotifier()
Int RingIO_acquire | ( | RingIO_Handle | handle,
 |  | RingIO_BufPtr * | pData,
 |  | UInt32 * | pSize
 | ) |  |

Acquires data from the RingIO instance This function acquires a data buffer from RingIO for reading or writing, depending on the mode in which the client (represented by the handle) has been opened.

Parameters:
[in] | handle | RingIO handle
[out] | pData | Location to store the pointer to the acquired data buffer.
[in,out] | pSize | Pointer to the size of data buffer. Holds the size of buffer to be acquired. Returns the size of buffer actually acquired.
Precondition:
handle is a valid (non-NULL) RingIO handle.
pData is a valid (non-NULL) pointer to a RingIO_BufPtr.
pSize is a valid (non-NULL) pointer to a size.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_PENDINGATTRIBUTE | (For reader only) No data buffer could be acquired because an attribute was present at the current read offset.
RingIO_S_PENDINGATTRIBUTE | (For reader only) Flag NEED_EXACT_SIZE is not set. Partial Data buffer is retuned till the offset where an attribute was present.
RingIO_E_BUFFULL | (For writer only) Requested size of data buffer could not be returned because the total available size is less than requested size. A smaller sized buffer may have been returned, if available.
RingIO_E_BUFWRAP | (For writer only) Requested size of data buffer could not be returned because the available contiguous size till end of buffer is less than requested size. A smaller sized buffer may have been returned, if available.
RingIO_E_FAIL | General failure. Contiguous buffer requirement cannot be satisfied even by setting early end.
RingIO_S_NOTCONTIGUOUSDATA | (For reader only) Data size requested is not available as a contiguous chunk. Returning partial buffer as NEED_EXACT_SIZE was not specified.
RingIO_E_BUFEMPTY | (For reader only) No data available to acquire
RingIO_E_INVALIDARG

There is an invalid argument.

See also:
RingIO_release()
Int RingIO_release | ( | RingIO_Handle | handle,
 |  | UInt32 | size
 | ) |  |

Releases data from the RingIO instance.

Parameters:
[in] | handle | RingIO handle
[in] | size | Size of the released buffer
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_FAIL | General Failure Invalid size argument > client acquired size passed
RingIO_E_INVALIDARG | Parameters passed are invalid
RingIO_E_NOTIFYFAIL | Failure when sending notification to other client.
See also:
RingIO_acquire
Int RingIO_cancel ( RingIO_Handle handle )

Cancel the previous acquired buffer to the RingIO instance This function cancels any data buffers acquired by reader or writer. In the case of writer, all attributes that are set since the first acquire are removed. In the case of reader, all attributes that were obtained since the first acquired are re-instated in the RingIO instance.

Parameters:
[in] handle RingIO handle
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_FAIL | General Failure No data acquired
RingIO_E_INVALIDARG | Parameters passed are invalid
See also:
RingIO_acquire()
Int RingIO_getvAttribute | ( | RingIO_Handle | handle,
 |  | UInt16 * | type,
 |  | UInt32 * | param,
 |  | RingIO_BufPtr | vptr,
 |  | UInt32 * | pSize
 | ) |  |

Get attribute from the RingIO instance This function gets an attribute with a variable-sized payload from the attribute buffer. If an attribute is present, the attribute type, the optional parameter, a pointer to the optional payload and the payload size are returned.

Parameters:
[in] | handle | RingIO handle
[out] | type | Location to receive the user-defined type of attribute.
[out] | param | Location to receive an optional parameter which depends on the attribute type.
[out] | vptr | Pointer to buffer to receive the optional payload.
[out] | pSize | Location with the size of the variable attribute. On return, this stores the actual size of the payload.
Precondition:
handle is a valid (non-NULL) RingIO handle.
type is a valid (non-NULL) pointer.
param is a valid (non-NULL) pointer.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_FAIL | General Failure No attribute present
RingIO_E_INVALIDARG | Parameters passed are invalid
RingIO_S_PENDINGATTRIBUTE | Additional attributes are present at the current read offset.
RingIO_E_VARIABLEATTRIBUTE | No buffer has been provided to receive the variable attribute payload.
RingIO_E_PENDINGDATA | More data must be read before reading the attribute.
See also:
RingIO_getAttribute()
Int RingIO_setvAttribute | ( | RingIO_Handle | handle,
 |  | UInt16 | type,
 |  | UInt32 | param,
 |  | RingIO_BufPtr | pData,
 |  | UInt32 | size,
 |  | Bool | sendNotification
 | ) |  |

Set attribute in the RingIO instance.

This function sets an attribute with a variable sized payload at the offset provided in the acquired data buffer. If the offset is not in the range of the acquired data buffer, the attribute is not set, and an error is returned. One exception to this rule is when no data buffer has been acquired. In this case an attribute is set at the next data buffer offset that can be acquired

Parameters:
[in] | handle | Handle to the RingIO Client.
[in] | type | User-defined type of attribute.
[in] | param | Optional parameter which depends on the attribute type.
[in] | pData | Pointer to attribute payload buffer.
[in] | size | Size of the attribute payload.
[in] | sendNotification | Flag to indicate whether notification should be sent or not on successful setting of an attribute
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_FAIL General Failure No attribute present
RingIO_E_INVALIDARG

There is an invalid argument.

RingIO_E_WRONGSTATE Do not allow setting an attribute when it falls into reader region. The following scenarios cover this condition:

  • The buffer is completely full. In this case, attribute can only be set at offset 0. But offset 0 falls into reader region.
  • The buffer is completely acquired by the writer. Part or none of this buffer may be released. Writer is attempting to set an attribute at the end of its acquired range. In this case, end of writer buffer is the same as beginning of reader buffer. If the reader has acquired and released some data, resulting in its moving further such that its acquire start is not at the same location where writer may be able to set an attribute, the above conditions do not hold true, and the attribute is allowed to be set.
RingIO_E_NOTIFYFAIL

Indicates that the underlying notification call failed.

See also:
RingIO_acquire()
Int RingIO_getAttribute | ( | RingIO_Handle | handle,
 |  | UInt16 * | type,
 |  | UInt32 * | param
 | ) |  |

Obtain a fixed-size attribute from the attribute buffer.

If an attribute is present, the attribute type and a related parameter are returned.

Parameters:
[in] | handle | RingIO handle
[out] | type | Location to receive the user-defined type of attribute.
[out] | param | Location to receive an optional parameter which depends on the attribute type.
Precondition:
handle is a valid (non-NULL) RingIO handle.
type is a valid (non-NULL) pointer.
param is a valid (non-NULL) pointer.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_FAIL | General Failure No attribute present
RingIO_E_INVALIDARG

There is an invalid argument.

RingIO_S_PENDINGATTRIBUTE | Additional attributes are present at the current read offset.
RingIO_E_VARIABLEATTRIBUTE | A variable attribute exists.The application must call RingIO_getvAttribute () to get the variable attribute.
RingIO_E_PENDINGDATA | More data must be read before reading the attribute.
See also:
RingIO_getvAttribute()
Int RingIO_setAttribute | ( | RingIO_Handle | handle,
 |  | UInt16 | type,
 |  | UInt32 | param,
 |  | Bool | sendNotification
 | ) |  |

This function sets a fixed-size attribute in the acquired data buffer.

When no data buffer has been acquired, the attribute is set at the next data buffer that can be acquired

Parameters:
[in] | handle | Handle to the RingIO Client
[in] | type | User-defined type of attribute
[in] | param | Optional parameter which depends on the attribute type
[in] | sendNotification | Flag indicating whether notification should be sent or not on successful setting of an attribute
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
RingIO_E_FAIL | General Failure
RingIO_E_INVALIDARG | Parameters passed are invalid
RingIO_S_SUCCESS | Operation Successful
RingIO_E_WRONGSTATE Do not allow setting an attribute when it falls into reader region. The following scenarios cover this condition:

  • The buffer is completely full. In this case, attribute can only be set at offset 0, but offset 0 falls into the reader's region.
  • The buffer is completely acquired by the writer. Part or none of this buffer may be released. Writer is attempting to set an attribute at the end of its acquired range. In this case, end of writer buffer is the same as beginning of reader buffer. If the reader has acquired and released some data, resulting in its moving further such that its acquire start is not at the same location where writer may be able to set an attribute, the above conditions do not hold true, and the attribute is allowed to be set.
RingIO_E_NOTIFYFAIL

Indicates that the underlying notification call failed.

Int RingIO_flush | ( | RingIO_Handle | handle,
 |  | Bool | hardFlush,
 |  | UInt16 * | type,
 |  | UInt32 * | param,
 |  | UInt32 * | bytesFlushed
 | ) |  |

Flush the buffer in the RingIO instance.

This function is used to flush the data from the RingIO. The behavior of this function depends on the value of hardFlush argument. When hardFlush is false: If function is called for the writer, all the valid data in buffer after the first attribute location will be discarded. In case there are no attributes, no data will be cleared from the buffer. Note that this does not include the data that has been already acquired by the reader. Note that the attribute will also be cleared from the attribute buffer. For the reader, all the data till the next attribute location will be discarded. And if there is no attribute in the buffer, all valid data will get discarded. Note that the attribute will remain the attribute buffer. This is different from the behavior mentioned for the writer. When hardFlush is true: If function is called from the writer, all committed data and attributes that is not acquired by reader are removed from the RingIO instance. The writer pointer is moved to point to reader's head pointer If function is called from the reader, all data and attributes that can be subsequently acquired from the reader are removed.

Parameters:
[in] | handle | Handle to the RingIO Client.
[in] | hardFlush | Mode in which the flush operation discards committed data and attributes
[out] | type | Location to receive the User-defined type of attribute.
[out] | param | Location to receive an optional parameter which depends on the attribute type.
[out] | bytesFlushed | Location to recieve the size of the buffer flushed.
Precondition:
handle is a valid (non-NULL) RingIO handle.
type is a valid (non-NULL) pointer.
param is a valid (non-NULL) pointer.
bytesFlushed is a valid (non-NULL) pointer.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_FAIL

Operation is not successful.

RingIO_E_INVALIDARG

There is an invalid argument.

RingIO_E_NOTIFYFAIL

Indicates that the underlying notification call failed.

See also:
RingIO_acquire()
Int RingIO_sendNotify | ( | RingIO_Handle | handle,
 |  | RingIO_NotifyMsg | msg
 | ) |  |

Send a force notification to the other client manually.

Parameters:
[in] | handle | Handle to RingIO instance
[in] | msg | Payload to notification
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
RingIO_S_SUCCESS

Operation is successful.

RingIO_E_FAIL

Operation is not successful.

RingIO_E_INVALIDARG

There is an invalid argument.

RingIO_E_NOTIFYFAIL

Indicates that the underlying notification call failed.

See also:
None
UInt RingIO_getValidSize ( RingIO_Handle handle )

Function to get valid data buffer size.

Parameters:
[in] handle RingIO client Handle.
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
Valid_data_buffer_size | Operation successful
-1 | Operation unsuccessful.
UInt RingIO_getEmptySize ( RingIO_Handle handle )

Function to get empty data buffer size.

Parameters:
[in] handle RingIO client Handle.
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
Empty_data_buffer_size | Operation successful
-1 | Operation unsuccessful
UInt RingIO_getValidAttrSize ( RingIO_Handle handle )

Function to get valid attribute size.

Parameters:
[in] handle RingIO client Handle.
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
Valid_attribute_size | Operation successful
-1 | Operation unsuccessful
UInt RingIO_getEmptyAttrSize ( RingIO_Handle handle )

Function to get empty attribute size.

Parameters:
[in] handle RingIO client Handle.
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
Empty_attribute_size | Operation successful
-1 | Operation unsuccessful
UInt RingIO_getAcquiredOffset ( RingIO_Handle handle )

Function to get client's acquire offset from the start of the buffer.

Parameters:
[in] handle RingIO client Handle.
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
Acquired_offset | Operation successful
-1 | Operation unsuccessful
UInt RingIO_getAcquiredSize ( RingIO_Handle handle )

Function to get client's acquired size.

Parameters:
[in] handle RingIO client Handle.
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
Acquired_Size | Operation successful
-1 | Operation unsuccessful
UInt RingIO_getWaterMark ( RingIO_Handle handle )

Function to get client's watermark.

Parameters:
[in] handle RingIO client Handle.
Precondition:
handle is a valid (non-NULL) RingIO handle.
Return values:
Watermark_value | Operation successful
-1 | Operation unsuccessful


SysLink Application Programming Interface (API): RingIO.h Source File

RingIO.h

Go to the documentation of this file.
00001
00122 /*
00123  *  ============================================================================
00124  *
00125  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00126  *
00127  *  Redistribution and use in source and binary forms, with or without
00128  *  modification, are permitted provided that the following conditions
00129  *  are met:
00130  *
00131  *  *  Redistributions of source code must retain the above copyright
00132  *     notice, this list of conditions and the following disclaimer.
00133  *
00134  *  *  Redistributions in binary form must reproduce the above copyright
00135  *     notice, this list of conditions and the following disclaimer in the
00136  *     documentation and/or other materials provided with the distribution.
00137  *
00138  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00139  *     its contributors may be used to endorse or promote products derived
00140  *     from this software without specific prior written permission.
00141  *
00142  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00143  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00144  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00145  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00146  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00147  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00148  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00149  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00150  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00151  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00152  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00153  *  Contact information for paper mail:
00154  *  Texas Instruments
00155  *  Post Office Box 655303
00156  *  Dallas, Texas 75265
00157  *  Contact information:
00158  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00159  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00160  *  ============================================================================
00161  *
00162  */
00163
00164
00165
00166 #ifndef RINGIO_H_0xd3f4
00167 #define RINGIO_H_0xd3f4
00168
00169 /* Utilities headers */
00170 #include <ti/syslink/SysLink.h>
00171
00172 #if defined (__cplusplus)
00173 extern "C" {
00174 #endif
00175
00176
00177 /* =============================================================================
00178  *  All success and failure codes for the module
00179  * =============================================================================
00180  */
00189 #define RingIO_S_PENDINGATTRIBUTE    4
00190
00197 #define RingIO_S_NOTCONTIGUOUSDATA   3
00198
00203 #define RingIO_S_BUSY                 2
00204
00209 #define RingIO_S_ALREADYSETUP         1
00210
00215 #define RingIO_S_SUCCESS              0
00216
00221 #define RingIO_E_FAIL                 -1
00222
00227 #define RingIO_E_INVALIDARG           -2
00228
00233 #define RingIO_E_MEMORY               -3
00234
00239 #define RingIO_E_ALREADYEXISTS        -4
00240
00245 #define RingIO_E_NOTFOUND             -5
00246
00251 #define RingIO_E_TIMEOUT              -6
00252
00257 #define RingIO_E_INVALIDSTATE         -7
00258
00263 #define RingIO_E_OSFAILURE            -8
00264
00269 #define RingIO_E_RESOURCE             -9
00270
00275 #define RingIO_E_RESTART              -10
00276
00281 #define RingIO_E_INVALIDMSG           -11
00282
00287 #define RingIO_E_NOTOWNER             -12
00288
00293 #define RingIO_E_REMOTEACTIVE         -13
00294
00299 #define RingIO_E_INVALIDHEAPID        -14
00300
00305 #define RingIO_E_INVALIDPROCID        -15
00306
00311 #define RingIO_E_MAXREACHED           -16
00312
00317 #define RingIO_E_INUSE                -17
00318
00323 #define RingIO_E_INVALIDCONTEXT       -18
00324
00329 #define RingIO_E_BADVERSION           -19
00330
00336 #define RingIO_E_BUFWRAP              -20
00337
00342 #define RingIO_E_BUFEMPTY             -21
00343
00348 #define RingIO_E_BUFFULL              -22
00349
00355 #define RingIO_E_PENDINGDATA          -23
00356
00362 #define RingIO_E_VARIABLEATTRIBUTE   -24
00363
00364
00369 #define RingIO_E_WRONGSTATE          -25
00370
00374 #define RingIO_E_NOTIFYFAIL          -26
00375
00381 #define RingIO_E_PENDINGATTRIBUTE   -27
00382
00383
00384 /* =============================================================================
00385  *  Typedefs
00386  * =============================================================================
00387  */
00394 typedef Ptr                       RingIO_BufPtr;
00395
00403 typedef UInt16                    RingIO_NotifyMsg;
00404
00405 /* =============================================================================
00406  *  Forward declarations
00407  * =============================================================================
00408  */
00412 typedef struct RingIO_Object   *  RingIO_Handle;
00413 /* =============================================================================
00414  * Structures & Enums
00415  * =============================================================================
00416  */
00417
00418 typedef enum RingIO_Type_Tag {
00419     RingIO_Type_SHAREDMEM = 0x0
00422 } RingIO_Type;
00423
00424 /* =============================================================================
00425  *  Structures for instance related configuration
00426  * =============================================================================
00427  */
00433 typedef struct RingIO_Params_Tag {
00434     String        name;
00436     RingIO_Type interfaceType;
00438 } RingIO_Params;
00439
00443 typedef enum RingIO_OpenMode_Tag {
00444     RingIO_MODE_READER = 0x0,
00446     RingIO_MODE_WRITER = 0x1
00448 } RingIO_OpenMode;
00449
00454 typedef struct RingIO_openParams_Tag {
00455     UInt32      flags;
00459     RingIO_OpenMode openMode;
00461 } RingIO_openParams;
00462
00463
00468 typedef struct RingIO_sharedMemReqDetails_tag {
00469      UInt32        ctrlSharedMemReq;
00471      UInt32        dataSharedMemReq;
00473      UInt32        attrSharedMemReq;
00475 } RingIO_sharedMemReqDetails;
00476
00477
00482 typedef enum RingIO_Flags_tag  {
00483     RingIO_DATABUF_MAINTAINCACHE = 0x1,
00487     RingIO_NEED_EXACT_SIZE   = 0x2
00495 } RingIO_Flags;
00496
00500 typedef enum RingIO_NotifyType_Tag {
00501     RingIO_NOTIFICATION_NONE   = SysLink_NOTIFICATION_NONE,
00503     RingIO_NOTIFICATION_ALWAYS = SysLink_NOTIFICATION_ALWAYS,
00506     RingIO_NOTIFICATION_ONCE   = SysLink_NOTIFICATION_ONCE,
00511     RingIO_NOTIFICATION_HDWRFIFO_ALWAYS =
00512                                   SysLink_NOTIFICATION_HDWRFIFO_ALWAYS,
00517     RingIO_NOTIFICATION_HDWRFIFO_ONCE   =
00518                                   SysLink_NOTIFICATION_HDWRFIFO_ONCE
00525 } RingIO_NotifyType;
00526
00538 typedef void (* RingIO_NotifyFxn ) (RingIO_Handle, Ptr, RingIO_NotifyMsg);
00539
00540
00541 /* =============================================================================
00542  * APIs to be used in Application
00543  * =============================================================================
00544  */
00545 /* =============================================================================
00546  * Instance creation and deletion related API's
00547  * =============================================================================
00548  */
00567 Void RingIO_Params_init (Void * params);
00568
00596 RingIO_Handle RingIO_create(const Void *params);
00597
00622 Int RingIO_delete(RingIO_Handle *handlePtr);
00623
00646 UInt32 RingIO_sharedMemReq(const Void *params,
00647         RingIO_sharedMemReqDetails *sharedMemReqDetails);
00648
00649 /* =============================================================================
00650  * Instance opening and closing related API's
00651  * =============================================================================
00652  */
00678 Int RingIO_open(String name, const RingIO_openParams *params, UInt16 *procIds,
00679         RingIO_Handle *handlePtr);
00680
00706 Int RingIO_openByAddr(Ptr ctrlSharedAddr, const RingIO_openParams *params,
00707         RingIO_Handle *handlePtr);
00708
00734 Int RingIO_close(RingIO_Handle *handlePtr);
00735
00736
00737 /* =============================================================================
00738  * Instance Notification related API's
00739  * =============================================================================
00740  */
00782 Int RingIO_registerNotifier(RingIO_Handle handle,
00783         RingIO_NotifyType notifyType, UInt32 watermark,
00784         RingIO_NotifyFxn notifyFunc, Ptr cbContext);
00785
00804 Int RingIO_unregisterNotifier(RingIO_Handle handle);
00805
00820 Int RingIO_setWaterMark(RingIO_Handle handle, UInt32 watermark);
00821
00822
00838 Int RingIO_setNotifyType(RingIO_Handle handle, RingIO_NotifyType notifyType);
00839
00840
00841 /*=============================================================================
00842  * Main RingIO APIs called by application for RingIO functions
00843  *=============================================================================
00844  */
00901 Int RingIO_acquire(RingIO_Handle handle, RingIO_BufPtr *pData, UInt32 *pSize);
00902
00903
00904
00923 Int RingIO_release(RingIO_Handle handle, UInt32 size);
00924
00925
00946 Int RingIO_cancel(RingIO_Handle handle);
00947
00948
00987 Int RingIO_getvAttribute(RingIO_Handle handle, UInt16 *type, UInt32 *param,
00988         RingIO_BufPtr vptr, UInt32 *pSize);
00989
00990
01039 Int RingIO_setvAttribute(RingIO_Handle handle, UInt16 type, UInt32 param,
01040         RingIO_BufPtr pData, UInt32 size, Bool sendNotification);
01041
01042
01075 Int RingIO_getAttribute(RingIO_Handle handle, UInt16 *type, UInt32 *param);
01076
01117 Int RingIO_setAttribute(RingIO_Handle handle, UInt16 type, UInt32 param,
01118         Bool sendNotification);
01119
01120
01168 Int RingIO_flush(RingIO_Handle handle, Bool hardFlush, UInt16 *type,
01169         UInt32 *param, UInt32 *bytesFlushed);
01170
01171
01187 Int RingIO_sendNotify(RingIO_Handle handle, RingIO_NotifyMsg msg);
01188
01189
01190 /*=============================================================================
01191  * Helper APIs
01192  *=============================================================================
01193  */
01204 UInt RingIO_getValidSize(RingIO_Handle handle);
01205
01216 UInt RingIO_getEmptySize(RingIO_Handle handle);
01217
01228 UInt RingIO_getValidAttrSize(RingIO_Handle handle);
01229
01240 UInt RingIO_getEmptyAttrSize(RingIO_Handle handle);
01241
01252 UInt RingIO_getAcquiredOffset(RingIO_Handle handle);
01253
01264 UInt RingIO_getAcquiredSize(RingIO_Handle handle);
01265
01276 UInt RingIO_getWaterMark(RingIO_Handle handle);
01277
01278 #if defined (__cplusplus)
01279 }
01280 #endif
01281
01282
01283 #endif /* RINGIO_H_0xd3f4 */


SysLink Application Programming Interface (API): RingIOShm.h File Reference

Data Structures | Defines | Typedefs | Functions

RingIOShm.h File Reference

Detailed Description

RingIOShm shared memory based physical transport for communication with another client.

This file contains the declarations of types and APIs as part of interface of the RingIOShm shared memory transport.

#include <ti/ipc/GateMP.h>
#include <ti/syslink/RingIO.h>
Include dependency graph for RingIOShm.h:

Go to the source code of this file.

Data Structures

struct | RingIOShm_Params_Tag
Structure defining parameters for creating the RingIOShm instances. More...

Defines

#define | RingIOShm_MODULEID (0x3bff)
Unique module ID.
#define | RingIOShm_E_INVALIDARG RingIO_E_INVALIDARG
Argument passed to a function is invalid.
#define | RingIOShm_E_INVALIDSTATE RingIO_E_INVALIDSTATE
Module is not initialized.
#define | RingIOShm_E_BADVERSION RingIO_E_BADVERSION
Versions don't match.
#define | RingIOShm_E_FAIL RingIO_E_FAIL
General Failure.
#define | RingIOShm_E_MEMORY RingIO_E_MEMORY
Memory allocation failed.
#define | RingIOShm_E_OSFAILURE RingIO_E_OSFAILURE
Failure in OS call.
#define | RingIOShm_E_BUFWRAP RingIO_E_BUFWRAP
Indicates that the amount of data requested could not be serviced due to the ring buffer getting wrapped.
#define | RingIOShm_E_BUFEMPTY RingIO_E_BUFEMPTY
Indicates that there is no data in the buffer for reading.
#define | RingIOShm_E_BUFFULL RingIO_E_BUFFULL
Indicates that the buffer is full.
#define | RingIOShm_E_PENDINGDATA RingIO_E_PENDINGDATA
Indicates that there is no attribute at the current offset, but attributes are present at a future offset.
#define | RingIOShm_E_VARIABLEATTRIBUTE RingIO_E_VARIABLEATTRIBUTE
Indicates that getAttribute() failed, need to extract variable length message using getvAttribute()
#define | RingIOShm_E_WRONGSTATE RingIO_E_WRONGSTATE
Indicates that the RingIO is in a wrong state.
#define | RingIOShm_E_INVALIDPROCID RingIO_E_INVALIDPROCID
Indicates that an invalid proc id has been specified.
#define | RingIOShm_E_INVALIDCONTEXT RingIO_E_INVALIDCONTEXT
Indicates that the api is called with wrong handle.
#define | RingIOShm_S_SUCCESS RingIO_S_SUCCESS
Operation successful.
#define | RingIOShm_S_ALREADYSETUP RingIO_S_ALREADYSETUP
The module has been already setup.
#define | RingIOShm_S_PENDINGATTRIBUTE RingIO_S_PENDINGATTRIBUTE
Indicates that either: 1) The amount of data requested could not be serviced due to the presence of an attribute 2) During an attribute read if another is also present at the same offset.

Typedefs

typedef struct RingIOShm_Params_Tag | RingIOShm_Params
Structure defining parameters for creating the RingIOShm instances.

Functions

Void | RingIOShm_Params_init (Void *params)
Function to initialize the parameters for the RingIOShm instance.

Define Documentation

#define RingIOShm_MODULEID (0x3bff)

Unique module ID.

#define RingIOShm_E_INVALIDARG RingIO_E_INVALIDARG

Argument passed to a function is invalid.

#define RingIOShm_E_INVALIDSTATE RingIO_E_INVALIDSTATE

Module is not initialized.

#define RingIOShm_E_BADVERSION RingIO_E_BADVERSION

Versions don't match.

#define RingIOShm_E_FAIL RingIO_E_FAIL

General Failure.

#define RingIOShm_E_MEMORY RingIO_E_MEMORY

Memory allocation failed.

#define RingIOShm_E_OSFAILURE RingIO_E_OSFAILURE

Failure in OS call.

#define RingIOShm_E_BUFWRAP RingIO_E_BUFWRAP

Indicates that the amount of data requested could not be serviced due to the ring buffer getting wrapped.

#define RingIOShm_E_BUFEMPTY RingIO_E_BUFEMPTY

Indicates that there is no data in the buffer for reading.

#define RingIOShm_E_BUFFULL RingIO_E_BUFFULL

Indicates that the buffer is full.

#define RingIOShm_E_PENDINGDATA RingIO_E_PENDINGDATA

Indicates that there is no attribute at the current offset, but attributes are present at a future offset.

#define RingIOShm_E_VARIABLEATTRIBUTE RingIO_E_VARIABLEATTRIBUTE

Indicates that getAttribute() failed, need to extract variable length message using getvAttribute()

#define RingIOShm_E_WRONGSTATE RingIO_E_WRONGSTATE

Indicates that the RingIO is in a wrong state.

#define RingIOShm_E_INVALIDPROCID RingIO_E_INVALIDPROCID

Indicates that an invalid proc id has been specified.

#define RingIOShm_E_INVALIDCONTEXT RingIO_E_INVALIDCONTEXT

Indicates that the api is called with wrong handle.

#define RingIOShm_S_SUCCESS RingIO_S_SUCCESS

Operation successful.

#define RingIOShm_S_ALREADYSETUP RingIO_S_ALREADYSETUP

The module has been already setup.

#define RingIOShm_S_PENDINGATTRIBUTE RingIO_S_PENDINGATTRIBUTE

Indicates that either: 1) The amount of data requested could not be serviced due to the presence of an attribute 2) During an attribute read if another is also present at the same offset.

Typedef Documentation

typedef struct RingIOShm_Params_Tag RingIOShm_Params

Structure defining parameters for creating the RingIOShm instances.

Function Documentation

Void RingIOShm_Params_init ( Void * params )

Function to initialize the parameters for the RingIOShm instance.

This function can be called by the application to get their configuration parameter to RingIO_create filled in by the RingIOShm module with the default parameters.

Parameters:
params Pointer to the RingIOShm instance params structure in which the default params is to be returned.
Return values:
None
See also:
RingIO_create


SysLink Application Programming Interface (API): RingIOShm.h Source File

RingIOShm.h

Go to the documentation of this file.
00001
00012 /*
00013  *  ============================================================================
00014  *
00015  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00016  *
00017  *  Redistribution and use in source and binary forms, with or without
00018  *  modification, are permitted provided that the following conditions
00019  *  are met:
00020  *
00021  *  *  Redistributions of source code must retain the above copyright
00022  *     notice, this list of conditions and the following disclaimer.
00023  *
00024  *  *  Redistributions in binary form must reproduce the above copyright
00025  *     notice, this list of conditions and the following disclaimer in the
00026  *     documentation and/or other materials provided with the distribution.
00027  *
00028  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00029  *     its contributors may be used to endorse or promote products derived
00030  *     from this software without specific prior written permission.
00031  *
00032  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00033  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00034  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00035  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00036  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00037  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00038  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00039  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00040  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00041  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00042  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00043  *  Contact information for paper mail:
00044  *  Texas Instruments
00045  *  Post Office Box 655303
00046  *  Dallas, Texas 75265
00047  *  Contact information:
00048  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00049  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00050  *  ============================================================================
00051  *
00052  */
00053
00054
00055
00056 #ifndef RINGIOSHM_H_
00057 #define RINGIOSHM_H_
00058
00059 #include <ti/ipc/GateMP.h>
00060 #include <ti/syslink/RingIO.h>
00061
00062 #if defined (__cplusplus)
00063 extern "C" {
00064 #endif
00065 /* =============================================================================
00066  *  All success and failure codes for the module
00067  * =============================================================================
00068  */
00069
00074 #define RingIOShm_MODULEID               (0x3bff)
00075
00076 /* =============================================================================
00077  *  All success and failure codes for the module
00078  * =============================================================================
00079  */
00080
00085 #define RingIOShm_E_INVALIDARG   RingIO_E_INVALIDARG
00086
00091 #define RingIOShm_E_INVALIDSTATE RingIO_E_INVALIDSTATE
00092
00097 #define RingIOShm_E_BADVERSION   RingIO_E_BADVERSION
00098
00103 #define RingIOShm_E_FAIL         RingIO_E_FAIL
00104
00109 #define RingIOShm_E_MEMORY       RingIO_E_MEMORY
00110
00115 #define RingIOShm_E_OSFAILURE    RingIO_E_OSFAILURE
00116
00122 #define RingIOShm_E_BUFWRAP      RingIO_E_BUFWRAP
00123
00128 #define RingIOShm_E_BUFEMPTY     RingIO_E_BUFEMPTY
00129
00134 #define RingIOShm_E_BUFFULL      RingIO_E_BUFFULL
00135
00141 #define RingIOShm_E_PENDINGDATA  RingIO_E_PENDINGDATA
00142
00148 #define RingIOShm_E_VARIABLEATTRIBUTE   RingIO_E_VARIABLEATTRIBUTE
00149
00154 #define RingIOShm_E_WRONGSTATE          RingIO_E_WRONGSTATE
00155
00160 #define RingIOShm_E_INVALIDPROCID    RingIO_E_INVALIDPROCID
00161
00165 #define RingIOShm_E_INVALIDCONTEXT   RingIO_E_INVALIDCONTEXT
00166
00171 #define RingIOShm_S_SUCCESS        RingIO_S_SUCCESS
00172
00177 #define RingIOShm_S_ALREADYSETUP RingIO_S_ALREADYSETUP
00178
00187 #define RingIOShm_S_PENDINGATTRIBUTE    RingIO_S_PENDINGATTRIBUTE
00188
00189
00190 /* =============================================================================
00191  * Structures & Enums
00192  * =============================================================================
00193  */
00198 typedef struct RingIOShm_Params_Tag {
00199      RingIO_Params commonParams;
00201      UInt16     ctrlRegionId;
00208      UInt16     dataRegionId;
00215      UInt16     attrRegionId;
00222      Ptr         ctrlSharedAddr;
00228      Ptr         dataSharedAddr;
00234      UInt32      dataSharedAddrSize;
00236      UInt32      footBufSize;
00238      Ptr         attrSharedAddr;
00243      UInt32      attrSharedAddrSize;
00245      GateMP_Handle gateHandle;
00250      GateMP_LocalProtect  localProtect;
00252      GateMP_RemoteProtect remoteProtect;
00254      UInt16        remoteProcId;
00256 } RingIOShm_Params;
00257
00258 /* =============================================================================
00259  * APIs
00260  * =============================================================================
00261  */
00278 Void RingIOShm_Params_init (Void * params);
00279
00280 #if defined (__cplusplus)
00281 }
00282 #endif /* defined (__cplusplus) */
00283
00284
00285 #endif /* RINGIOSHM_H_ */


SysLink Application Programming Interface (API): SharedRegion.h File Reference

Data Structures | Defines | Typedefs | Functions

SharedRegion.h File Reference

Detailed Description

Shared memory manager and address translator.

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

The SharedRegion module is designed to be used in a multi-processor environment in which memory regions are shared and accessed across different processors. The module itself does not use any shared memory, because all module state is stored locally. SharedRegion APIs use the system gate for thread protection.

This module creates and stores a local shared memory region table. The table contains the processor's view for every shared region in the system. The table must not contain any overlapping regions. Each processor's view of a particular shared memory region is determined by the region id. In cases where a processor cannot access a certain shared memory region, that shared memory region should be left invalid for that processor. Note: The number of entries must be the same on all processors.

Each shared region contains the following:

  • base - The base address
  • len - The length
  • name - The name of the region
  • isValid - Whether the region is valid
  • ownerProcId - The id of the processor which owns the region
  • cacheEnable - Whether the region is cacheable
  • cacheLineSize - The cache line size
  • createHeap - Whether a heap is created for the region.

A region is added using the SharedRegion_setEntry API. The length of a region must be the same across all processors. The owner of the region can be specified. If specified, the owner manages the shared region. It creates a HeapMemMP instance which spans the full size of the region. The other processors open the same HeapMemMP instance.

Note: Prior to calling Ipc_start(), If a SharedRegion's 'isValid' is true and 'createHeap' is true then the owner of the SharedRegion must be the same as the owner of SharedRegion 0.

After a shared region is valid, SharedRegion APIs can be used to convert pointers between the local processor's address space and the SharedRegion- pointer (SRPtr) address space. These APIs include SharedRegion_getId, SharedRegion_getSRPtr and SharedRegion_getPtr. An example is shown below:

  SharedRegion_SRPtr srptr;
  Ptr     addr;
  UInt16  id;

  // to get the id of the local address if id is not already known.
  id = SharedRegion_getId(addr);

  // to get the shared region pointer for the local address
  srptr = SharedRegion_getSRPtr(addr, id);

  // to get the local address from the shared region pointer
  addr = SharedRegion_getPtr(srptr);

The SharedRegion header should be included in an application as follows:

  #include <ti/ipc/SharedRegion.h>

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

Go to the source code of this file.

Data Structures

struct | SharedRegion_Entry
Structure defining a region. More...

Defines

#define | SharedRegion_S_BUSY 2
The resource is still in use.
#define | SharedRegion_S_ALREADYSETUP 1
The module has been already setup.
#define | SharedRegion_S_SUCCESS 0
Operation is successful.
#define | SharedRegion_E_FAIL -1
Generic failure.
#define | SharedRegion_E_INVALIDARG -2
Argument passed to function is invalid.
#define | SharedRegion_E_MEMORY -3
Operation resulted in memory failure.
#define | SharedRegion_E_ALREADYEXISTS -4
The specified entity already exists.
#define | SharedRegion_E_NOTFOUND -5
Unable to find the specified entity.
#define | SharedRegion_E_TIMEOUT -6
Operation timed out.
#define | SharedRegion_E_INVALIDSTATE -7
Module is not initialized.
#define | SharedRegion_E_OSFAILURE -8
A failure occurred in an OS-specific call.
#define | SharedRegion_E_RESOURCE -9
Specified resource is not available.
#define | SharedRegion_E_RESTART -10
Operation was interrupted. Please restart the operation.
#define | SharedRegion_INVALIDREGIONID (0xFFFF)
Invalid region id.

Typedefs

typedef Bits32 | SharedRegion_SRPtr
SharedRegion pointer type.
typedef struct SharedRegion_Entry | SharedRegion_Entry
Structure defining a region.

Functions

Int | SharedRegion_clearEntry (UInt16 regionId)
Clears the entry at the specified region id.
Void | SharedRegion_entryInit (SharedRegion_Entry *entry)
Initializes the entry fields.
SizeT | SharedRegion_getCacheLineSize (UInt16 regionId)
Gets the cache line size for the specified region id.
Int | SharedRegion_getEntry (UInt16 regionId, SharedRegion_Entry *entry)
Gets the entry information for the specified region id.
Ptr | SharedRegion_getHeap (UInt16 regionId)
Gets the heap associated with the specified region id.
UInt16 | SharedRegion_getId (Ptr addr)
Gets the region id for the specified address.
UInt16 | SharedRegion_getIdByName (String name)
Gets the id of a region, given its name.
UInt16 | SharedRegion_getNumRegions (Void)
Gets the number of regions.
Ptr | SharedRegion_getPtr (SharedRegion_SRPtr srptr)
Calculate the local pointer from the shared region pointer.
SharedRegion_SRPtr | SharedRegion_getSRPtr (Ptr addr, UInt16 regionId)
Calculate the shared region pointer given local address and id.
Bool | SharedRegion_isCacheEnabled (UInt16 regionId)
whether cache enable was specified
Int | SharedRegion_setEntry (UInt16 regionId, SharedRegion_Entry *entry)
Sets the entry at the specified region id.
Bool | SharedRegion_translateEnabled (Void)
Whether address translation is enabled.
SharedRegion_SRPtr | SharedRegion_invalidSRPtr (Void)
Returns the SharedRegion_SRPtr value that maps to NULL.

Define Documentation

#define SharedRegion_S_BUSY 2

The resource is still in use.

#define SharedRegion_S_ALREADYSETUP 1

The module has been already setup.

#define SharedRegion_S_SUCCESS 0

Operation is successful.

#define SharedRegion_E_FAIL -1

Generic failure.

#define SharedRegion_E_INVALIDARG -2

Argument passed to function is invalid.

#define SharedRegion_E_MEMORY -3

Operation resulted in memory failure.

#define SharedRegion_E_ALREADYEXISTS -4

The specified entity already exists.

#define SharedRegion_E_NOTFOUND -5

Unable to find the specified entity.

#define SharedRegion_E_TIMEOUT -6

Operation timed out.

#define SharedRegion_E_INVALIDSTATE -7

Module is not initialized.

#define SharedRegion_E_OSFAILURE -8

A failure occurred in an OS-specific call.

#define SharedRegion_E_RESOURCE -9

Specified resource is not available.

#define SharedRegion_E_RESTART -10

Operation was interrupted. Please restart the operation.

#define SharedRegion_INVALIDREGIONID (0xFFFF)

Invalid region id.

Typedef Documentation

typedef Bits32 SharedRegion_SRPtr

SharedRegion pointer type.

typedef struct SharedRegion_Entry SharedRegion_Entry

Structure defining a region.

Function Documentation

Int SharedRegion_clearEntry ( UInt16 regionId )

Clears the entry at the specified region id.

SharedRegion_clearEntry is used to render invalid a shared region that is currently valid. If the region has a heap, it will either be closed or deleted as necessary. All attributes of region are reset to defaults.

Calling SharedRegion_clearEntry upon a region that is already invalid simply resets the region attributes to their defaults.

NOTE: Region #0 is special and can neither be cleared nor set.

Parameters:
regionId the region id
Returns:
Status
  • SharedRegion_S_SUCCESS: Operation was successful
  • SharedRegion_E_FAIL: Delete or close of heap created in region failed.
See also:
SharedRegion_setEntry
Void SharedRegion_entryInit ( SharedRegion_Entry * entry )

Initializes the entry fields.

Parameters:
entry pointer to a SharedRegion entry
See also:
SharedRegion_setEntry
SizeT SharedRegion_getCacheLineSize ( UInt16 regionId )

Gets the cache line size for the specified region id.

Parameters:
regionId the region id
Returns:
Cache line size
See also:
SharedRegion_isCacheEnabled
Int SharedRegion_getEntry | ( | UInt16 | regionId,
 |  | SharedRegion_Entry * | entry
 | ) |  |

Gets the entry information for the specified region id.

Parameters:
regionId | the region id
entry | pointer to return region information
Returns:
Status
  • SharedRegion_S_SUCCESS: Operation was successful
  • SharedRegion_E_FAIL: Operation failed
See also:
SharedRegion_setEntry
Ptr SharedRegion_getHeap ( UInt16 regionId )

Gets the heap associated with the specified region id.

If running on BIOS, the heap handle returned is of type xdc.runtime.IHeap. This handle type can be used with xdc.runtime.Memory. However, if running on Linux, the heap handle is of type ti.syslink.utils.IHeap. This handle type cannot be used with xdc.runtime.Memory, but can be used with ti.syslink.utils.Memory. The handle type is determined at compile time and cannot be deferred until runtime. The correct header file must be included to get the right type.

The following code shows an example.

  #if defined(ti_sdo_ipc)
  #include <xdc/runtime/IHeap.h>
  #include <xdc/runtime/Memory.h>
  #elif defined(ti_syslink)
  #include <ti/syslink/utils/IHeap.h>
  #include <ti/syslink/utils/Memory.h>
  #endif
  #include <ti/ipc/SharedRegion.h>

  IHeap_Handle heap;
  UInt16       regionId;
  SizeT        size;
  SizeT        align;

  heap = (IHeap_Handle)SharedRegion_getHeap(regionId);  // get the heap
  Memory_alloc(heap, size, align, NULL);  // alloc memory from heap
Parameters:
regionId the region id
Returns:
Handle of the heap, NULL if the region has no heap
UInt16 SharedRegion_getId ( Ptr addr )

Gets the region id for the specified address.

Parameters:
addr address
Returns:
region id
UInt16 SharedRegion_getIdByName ( String name )

Gets the id of a region, given its name.

Parameters:
name name of the region
Returns:
region id
UInt16 SharedRegion_getNumRegions ( Void )

Gets the number of regions.

Returns:
number of regions
Ptr SharedRegion_getPtr ( SharedRegion_SRPtr srptr )

Calculate the local pointer from the shared region pointer.

Parameters:
srptr SharedRegion pointer
Returns:
local pointer
See also:
SharedRegion_getSRPtr
SharedRegion_SRPtr SharedRegion_getSRPtr | ( | Ptr | addr,
 |  | UInt16 | regionId
 | ) |  |

Calculate the shared region pointer given local address and id.

Parameters:
addr | the local address
regionId | region id
Returns:
SharedRegion pointer
See also:
SharedRegion_getPtr
Bool SharedRegion_isCacheEnabled ( UInt16 regionId )

whether cache enable was specified

Parameters:
regionId region id
Returns:
'TRUE' if cache enable specified, otherwise 'FALSE'
Int SharedRegion_setEntry | ( | UInt16 | regionId,
 |  | SharedRegion_Entry * | entry
 | ) |  |

Sets the entry at the specified region id.

SharedRegion_setEntry is used to set up a shared region that is currently invalid. Configuration is performed using the values supplied in the 'entry' parameter. If the 'createHeap' flag is TRUE, then a region heap will be created (if the processor is the region owner) or opened.

If 'createHeap' is TRUE, SharedRegion_setEntry must always be called by a 'client' of the shared region only after the region owner has called SharedRegion_setEntry. It is unsafe to poll using SharedRegion_setEntry to wait for the corresponding heap to be created by the owner. An external synchronization mechanism (i.e. Notify, shared memory, etc) must be used to ensure the proper sequence of operations.

NOTE: This function should never be called upon a region that is currently valid.

Parameters:
regionId | region id
entry | pointer to set region information.
Returns:
Status
  • SharedRegion_S_SUCCESS: Operation was successful
  • SharedRegion_E_FAIL: Region already exists or overlaps with with another region
  • SharedRegion_E_MEMORY: Unable to create Heap
Bool SharedRegion_translateEnabled ( Void )

Whether address translation is enabled.

Returns:
'TRUE' if translate is enabled otherwise 'FALSE'
SharedRegion_SRPtr SharedRegion_invalidSRPtr ( Void )

Returns the SharedRegion_SRPtr value that maps to NULL.

Returns:
Value in SRPtr-space that maps to NULL in Ptr-space


SysLink Application Programming Interface (API): SharedRegion.h Source File

SharedRegion.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2012, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * */
00101 #ifndef ti_ipc_SharedRegion__include
00102 #define ti_ipc_SharedRegion__include
00103
00104
00105 #if defined (__cplusplus)
00106 extern "C" {
00107 #endif
00108
00109 /* ============================================================================
00110  *  All success and failure codes for the module
00111  * =============================================================================
00112  */
00113
00118 #define SharedRegion_S_BUSY             2
00119
00124 #define SharedRegion_S_ALREADYSETUP     1
00125
00130 #define SharedRegion_S_SUCCESS          0
00131
00136 #define SharedRegion_E_FAIL             -1
00137
00142 #define SharedRegion_E_INVALIDARG       -2
00143
00148 #define SharedRegion_E_MEMORY           -3
00149
00154 #define SharedRegion_E_ALREADYEXISTS    -4
00155
00160 #define SharedRegion_E_NOTFOUND         -5
00161
00166 #define SharedRegion_E_TIMEOUT          -6
00167
00172 #define SharedRegion_E_INVALIDSTATE     -7
00173
00178 #define SharedRegion_E_OSFAILURE        -8
00179
00184 #define SharedRegion_E_RESOURCE         -9
00185
00190 #define SharedRegion_E_RESTART          -10
00191
00192 /* =============================================================================
00193  *  Macros
00194  * =============================================================================
00195  */
00196
00201 #define SharedRegion_INVALIDREGIONID    (0xFFFF)
00202
00203 /* =============================================================================
00204  *  Structures & Enums
00205  * =============================================================================
00206  */
00207
00211 typedef Bits32 SharedRegion_SRPtr;
00212
00216 typedef struct SharedRegion_Entry {
00217     Ptr base;
00220     SizeT len;
00227     UInt16 ownerProcId;
00234     Bool isValid;
00237     Bool cacheEnable;
00246     SizeT cacheLineSize;
00254     Bool createHeap;
00263     String name;
00269 } SharedRegion_Entry;
00270
00271
00272 /* =============================================================================
00273  *  SharedRegion Module-wide Functions
00274  * =============================================================================
00275  */
00276
00298 Int SharedRegion_clearEntry(UInt16 regionId);
00299
00307 Void SharedRegion_entryInit(SharedRegion_Entry *entry);
00308
00318 SizeT SharedRegion_getCacheLineSize(UInt16 regionId);
00319
00332 Int SharedRegion_getEntry(UInt16 regionId, SharedRegion_Entry *entry);
00333
00370 Ptr SharedRegion_getHeap(UInt16 regionId);
00371
00379 UInt16 SharedRegion_getId(Ptr addr);
00380
00388 UInt16 SharedRegion_getIdByName(String name);
00389
00395 UInt16 SharedRegion_getNumRegions(Void);
00396
00406 Ptr SharedRegion_getPtr(SharedRegion_SRPtr srptr);
00407
00418 SharedRegion_SRPtr SharedRegion_getSRPtr(Ptr addr, UInt16 regionId);
00419
00427 Bool SharedRegion_isCacheEnabled(UInt16 regionId);
00428
00457 Int SharedRegion_setEntry(UInt16 regionId, SharedRegion_Entry *entry);
00458
00464 Bool SharedRegion_translateEnabled(Void);
00465
00471 SharedRegion_SRPtr SharedRegion_invalidSRPtr(Void);
00472
00473 #if defined (__cplusplus)
00474 }
00475 #endif /* defined (__cplusplus) */
00476
00477 #endif /* ti_ipc_SharedRegion__include */
00478
00479 /*
00480  *  @(#) ti.ipc; 1, 0, 0, 0,1; 5-22-2012 16:16:06; /db/vtree/library/trees/ipc/ipc-h32/src/ xlibrary
00481
00482  */
00483


SysLink Application Programming Interface (API): Std.h File Reference

Defines | Typedefs

Std.h File Reference

Detailed Description

This will have definitions of standard data types for platform abstraction.

Go to the source code of this file.

Defines

#define | Void void
#define | TRUE 1
#define | FALSE 0
#define | Error_init(eb) *eb = 0

Typedefs

typedef char | Char
typedef unsigned char | UChar
typedef short | Short
typedef unsigned short | UShort
typedef int | Int
typedef unsigned int | UInt
typedef long | Long
typedef unsigned long | ULong
typedef float | Float
typedef double | Double
typedef long double | LDouble
typedef unsigned short | Bool
typedef void * | Ptr
typedef char * | String
typedef const char * | CString
typedef int * | IArg
typedef unsigned int * | UArg
typedef char | Int8
typedef short | Int16
typedef int | Int32
typedef unsigned char | UInt8
typedef unsigned short | UInt16
typedef unsigned int | UInt32
typedef unsigned int | SizeT
typedef unsigned char | Bits8
typedef unsigned short | Bits16
typedef UInt32 | Bits32
typedef UInt32 | Error_Block

Define Documentation

#define Void void
#define TRUE 1
#define FALSE 0
#define Error_init ( eb ) *eb = 0

Initialize error block

Typedef Documentation

typedef char Char
typedef unsigned char UChar
typedef short Short
typedef unsigned short UShort
typedef int Int
typedef unsigned int UInt
typedef long Long
typedef unsigned long ULong
typedef float Float
typedef double Double
typedef long double LDouble
typedef unsigned short Bool
typedef void* Ptr
typedef char* String
typedef const char* CString
typedef int* IArg
typedef unsigned int* UArg
typedef char Int8
typedef short Int16
typedef int Int32
typedef unsigned char UInt8
typedef unsigned short UInt16
typedef unsigned int UInt32
typedef unsigned int SizeT
typedef unsigned char Bits8
typedef unsigned short Bits16
typedef UInt32 Bits32
typedef UInt32 Error_Block

Data type for errors


SysLink Application Programming Interface (API): Std.h Source File

Std.h

Go to the documentation of this file.
00001
00009 /*
00010  *  ============================================================================
00011  *
00012  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00013  *
00014  *  Redistribution and use in source and binary forms, with or without
00015  *  modification, are permitted provided that the following conditions
00016  *  are met:
00017  *
00018  *  *  Redistributions of source code must retain the above copyright
00019  *     notice, this list of conditions and the following disclaimer.
00020  *
00021  *  *  Redistributions in binary form must reproduce the above copyright
00022  *     notice, this list of conditions and the following disclaimer in the
00023  *     documentation and/or other materials provided with the distribution.
00024  *
00025  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00026  *     its contributors may be used to endorse or promote products derived
00027  *     from this software without specific prior written permission.
00028  *
00029  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00030  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00031  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00032  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00033  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00034  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00035  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00036  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00037  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00038  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00039  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00040  *  Contact information for paper mail:
00041  *  Texas Instruments
00042  *  Post Office Box 655303
00043  *  Dallas, Texas 75265
00044  *  Contact information:
00045  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00046  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00047  *  ============================================================================
00048  *
00049  */
00050
00051
00052 #if !defined(STD_H)
00053 #define STD_H
00054
00055 #if defined(SYSLINK_BUILD_RTOS)
00056 #include <xdc/std.h>
00057 #else /* #if defined(SYSLINK_BUILD_RTOS) */
00058
00059 #ifdef SYSLINK_BUILDOS_LINUX
00060 #if defined (__KERNEL__)
00061 #include <ti/syslink/inc/knl/Linux/std_linux.h>
00062 #else
00063 #include <ti/syslink/inc/usr/Linux/std_linux.h>
00064 #endif
00065 #elif defined(SYSLINK_BUILDOS_QNX)
00066 #include <ti/syslink/inc/knl/Qnx/std_qnx.h>
00067 #endif
00068
00069 #if defined (__cplusplus)
00070 extern "C" {
00071 #endif
00072
00073 #define Void              void
00074
00075 typedef char              Char;
00076 typedef unsigned char     UChar;
00077 typedef short             Short;
00078 typedef unsigned short    UShort;
00079 typedef int               Int;
00080 typedef unsigned int      UInt;
00081 typedef long              Long;
00082 typedef unsigned long     ULong;
00083 typedef float             Float;
00084 typedef double            Double;
00085 typedef long double       LDouble;
00086
00087
00088 typedef unsigned short    Bool;
00089 typedef void            * Ptr;       /* data pointer */
00090 typedef char            * String;    /* null terminated string */
00091 typedef const char      * CString;   /* null terminated constant string */
00092
00093
00094 typedef int            *  IArg;
00095 typedef unsigned int   *  UArg;
00096 typedef char              Int8;
00097 typedef short             Int16;
00098 typedef int               Int32;
00099
00100 typedef unsigned char     UInt8;
00101 typedef unsigned short    UInt16;
00102 typedef unsigned int      UInt32;
00103 typedef unsigned int      SizeT;
00104 typedef unsigned char     Bits8;
00105 typedef unsigned short    Bits16;
00106 typedef UInt32            Bits32;
00107
00108 #ifdef SYSLINK_BUILDOS_QNX
00109 typedef void             * HANDLE;
00110 typedef unsigned int     atomic_t;
00111 typedef unsigned long     ULONG;
00112 typedef unsigned long     DWORD;
00113 typedef unsigned int      uint;
00114 typedef unsigned int      UINT32;
00115 typedef unsigned short    bool;
00116 #endif /* #ifdef SYSLINK_BUILDOS_QNX */
00117
00118 #define TRUE              1
00119 #define FALSE             0
00120
00122 typedef UInt32            Error_Block;
00123
00125 #define Error_init(eb) *eb = 0
00126
00127 #endif /* #if defined(SYSLINK_BUILD_RTOS) */
00128
00129
00130 #if defined (__cplusplus)
00131 }
00132 #endif
00133
00134 #endif
00135


SysLink Application Programming Interface (API): String.h File Reference

Functions

String.h File Reference

Detailed Description

Defines for String manipulation library.

Go to the source code of this file.

Functions

String | String_cat (String s1, String s2)
Int | String_cmp (String s1, String s2)
Int | String_ncmp (String s1, String s2, UInt32 n)
String | String_cpy (String s1, String s2)
String | String_ncpy (String s1, String s2, UInt32 n)
Int | String_len (String s)
Int | String_hexToStr (String s, UInt32 hex)
UInt32 | String_hash (String s)

Function Documentation

String String_cat | ( | String | s1,
 |  | String | s2
 | ) |  |
Int String_cmp | ( | String | s1,
 |  | String | s2
 | ) |  |
Int String_ncmp | ( | String | s1,
 |  | String | s2,
 |  | UInt32 | n
 | ) |  |
String String_cpy | ( | String | s1,
 |  | String | s2
 | ) |  |
String String_ncpy | ( | String | s1,
 |  | String | s2,
 |  | UInt32 | n
 | ) |  |
Int String_len ( String s )
Int String_hexToStr | ( | String | s,
 |  | UInt32 | hex
 | ) |  |
UInt32 String_hash ( String s )


SysLink Application Programming Interface (API): String.h Source File

String.h

Go to the documentation of this file.
00001
00008 /*
00009  *  ============================================================================
00010  *
00011  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00012  *
00013  *  Redistribution and use in source and binary forms, with or without
00014  *  modification, are permitted provided that the following conditions
00015  *  are met:
00016  *
00017  *  *  Redistributions of source code must retain the above copyright
00018  *     notice, this list of conditions and the following disclaimer.
00019  *
00020  *  *  Redistributions in binary form must reproduce the above copyright
00021  *     notice, this list of conditions and the following disclaimer in the
00022  *     documentation and/or other materials provided with the distribution.
00023  *
00024  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00025  *     its contributors may be used to endorse or promote products derived
00026  *     from this software without specific prior written permission.
00027  *
00028  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00029  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00030  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00031  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00032  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00033  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00034  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00035  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00036  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00037  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00038  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  *  Contact information for paper mail:
00040  *  Texas Instruments
00041  *  Post Office Box 655303
00042  *  Dallas, Texas 75265
00043  *  Contact information:
00044  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00045  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00046  *  ============================================================================
00047  *
00048  */
00049
00050
00051
00052 #ifndef UTILS_STRING_H_0XEFC8
00053 #define UTILS_STRING_H_0XEFC8
00054
00055
00056 #if defined (__cplusplus)
00057 extern "C" {
00058 #endif
00059
00060
00061 /* =============================================================================
00062  *  APIs
00063  * =============================================================================
00064  */
00065 /* Function to add a string at the end of another one */
00066 String String_cat (String s1, String s2);
00067
00068 /* Function to compare two string */
00069 Int String_cmp (String s1, String s2);
00070
00071 /* Function to compare two string only first n characters */
00072 Int String_ncmp (String s1, String s2, UInt32 n);
00073
00074 /* Function to copy strings */
00075 String String_cpy (String s1, String s2);
00076
00077 /* Function to copy first n bytes from s2 to s1 */
00078 String String_ncpy (String s1, String s2, UInt32 n);
00079
00080 /* Function to returns the number of characters in s */
00081 Int String_len (String s);
00082
00083 /* Function to get string representation of a hex number */
00084 Int String_hexToStr (String s, UInt32 hex);
00085
00086 /* Function to calculate hash for a string */
00087 UInt32 String_hash (String s);
00088
00089
00090 #if defined (__cplusplus)
00091 }
00092 #endif /* defined (__cplusplus) */
00093
00094 #endif /* STRING_H_0X5B4D */


SysLink Application Programming Interface (API): SysLink.h File Reference

Functions | Variables

SysLink.h File Reference

Detailed Description

This module contains common definitions, types, structures and functions used by SysLink.

Go to the source code of this file.

Functions

Void | SysLink_setup (Void)
Function to initialize SysLink.
Void | SysLink_destroy (Void)
Function to finalize SysLink.

Variables

String SysLink_params
Config params override strings.

Function Documentation

Void SysLink_setup ( Void )

Function to initialize SysLink.

This function must be called in every user process before making calls to any other SysLink APIs.

See also:
SysLink_destroy()
Void SysLink_destroy ( Void )

Function to finalize SysLink.

This function must be called in every user process at the end after all usage of SysLink in that process is complete.

See also:
SysLink_setup()

Variable Documentation

String SysLink_params

Config params override strings.

This string is a list of semi-colon-delimited "assignments" that can be set by users prior to the initial call to SysLink_setup() to affect system behavior.

Example assignments include:

  • "ProcMgr.proc[DSP].mmuEnable=FALSE;"
  • "ProcMgr.proc[VPSS-M3].mmuEnable=TRUE;"
  • "SharedRegion.entry[1].cacheEnable=FALSE;"
  • "SharedRegion.entry[3].cacheEnable=FALSE;"
Remarks:
Note that many users don't explicitly set this string and rebuild their app, but rather leverage the SL_PARAMS environment variable to set this string's value.
In many systems, slaveloader (or similar) is used to load and start the slaves, and is therefore the initial app in the system. In those systems, it's important to set this variable (or SL_PARAMS) prior to running slaveloader.
A common mistake is to forget to terminate the string with a trailing semi-colon.


SysLink Application Programming Interface (API): SysLink.h Source File

SysLink.h

Go to the documentation of this file.
00001
00009 /*
00010  *  ============================================================================
00011  *
00012  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00013  *
00014  *  Redistribution and use in source and binary forms, with or without
00015  *  modification, are permitted provided that the following conditions
00016  *  are met:
00017  *
00018  *  *  Redistributions of source code must retain the above copyright
00019  *     notice, this list of conditions and the following disclaimer.
00020  *
00021  *  *  Redistributions in binary form must reproduce the above copyright
00022  *     notice, this list of conditions and the following disclaimer in the
00023  *     documentation and/or other materials provided with the distribution.
00024  *
00025  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00026  *     its contributors may be used to endorse or promote products derived
00027  *     from this software without specific prior written permission.
00028  *
00029  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00030  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00031  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00032  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00033  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00034  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00035  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00036  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00037  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00038  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00039  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00040  *  Contact information for paper mail:
00041  *  Texas Instruments
00042  *  Post Office Box 655303
00043  *  Dallas, Texas 75265
00044  *  Contact information:
00045  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00046  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00047  *  ============================================================================
00048  *
00049  */
00050
00051
00052
00053 #ifndef _SysLink_H_
00054 #define _SysLink_H_
00055
00056
00057 #if defined (__cplusplus)
00058 extern "C" {
00059 #endif
00060
00061 /* =============================================================================
00062  * macros & defines
00063  * =============================================================================
00064  */
00065
00066 /* The bulk of this file is wrapped in this doxygen INTERNAL as it's not intended
00067  * to be used by end users.  Most of this is implementation details that users
00068  * shouldn't see or bind to.
00069  */
00070
00080 #define IPC_BUFFER_ALIGN(x, y) (UInt32)((UInt32)((x + y - 1) / y) * y)
00081
00082
00086 #define SYSLINK_MAX_MEMENTRIES  10
00087
00091 #define SYSLINK_MAX_NAMELENGTH  32
00092
00093 /* =============================================================================
00094  * Structures & Enums
00095  * =============================================================================
00096  */
00097
00098 typedef UInt32 SysLink_MapMask;
00099
00103 #define SysLink_MASTERKNLVIRT   (SysLink_MapMask)(1 << 0)
00104
00108 #define SysLink_MASTERUSRVIRT   (SysLink_MapMask)(1 << 1)
00109
00113 #define SysLink_SLAVEVIRT       (SysLink_MapMask)(1 << 2)
00114
00118 typedef enum SysLink_NotifyType_tag {
00119     SysLink_NOTIFICATION_NONE   = 0,
00121     SysLink_NOTIFICATION_ALWAYS = 1,
00123     SysLink_NOTIFICATION_ONCE   = 2,
00128     SysLink_NOTIFICATION_HDWRFIFO_ALWAYS = 3,
00132     SysLink_NOTIFICATION_HDWRFIFO_ONCE   = 4
00138 } SysLink_NotifyType;
00139
00143 typedef struct SysLink_MemEntry_tag {
00144     UInt32 slaveVirtAddr;
00145     UInt32 masterPhysAddr;
00146     UInt32 size;
00147     SysLink_MapMask mapMask;
00148     Bool   map;
00151     Bool   isCached;
00154     Bool   isValid;
00155 } SysLink_MemEntry;
00156
00160 typedef struct SysLink_MemEntry_Block_tag {
00161     Char             procName[SYSLINK_MAX_NAMELENGTH];
00163     UInt32           numEntries;
00165     SysLink_MemEntry memEntries [SYSLINK_MAX_MEMENTRIES];
00167 } SysLink_MemEntry_Block;
00168
00169
00173 typedef struct SysLink_MemoryMap_tag {
00174     UInt16                   numBlocks;
00176     SysLink_MemEntry_Block * memBlocks;
00178 } SysLink_MemoryMap;
00179
00207 extern String SysLink_params;
00208
00209
00210 /* =============================================================================
00211  * APIs
00212  * =============================================================================
00213  */
00222 Void SysLink_setup (Void);
00223
00232 Void SysLink_destroy (Void);
00233
00234
00235 #if defined (__cplusplus)
00236 }
00237 #endif
00238
00239
00240 #endif /*_SysLink_H_*/


SysLink Application Programming Interface (API): SyslinkMemMgr.h File Reference

Data Structures | Defines | Typedefs | Enumerations | Functions

SyslinkMemMgr.h File Reference

Detailed Description

Header file implementing Memory manager. It is a wrapper implementation to support Shared memory allocation using heap address translations using shared region or Tiler buffer allocation using tiler buffer manager and address translations.

Go to the source code of this file.

Data Structures

struct | SyslinkMemMgr_CreateParams_tag
Structure defining common create parameters for the Memory manager module.Should be the first element in implementation specific create params. More...
struct | SyslinkMemMgr_AllocBlock_tag
struct | SyslinkMemMgr_AllocParams_tag
Alloc params. More...

Defines

#define | MEMMGR_MAX_NAME_LENGTH 32u
#define | MEMMGR_MAX_TILER_BLOCKS 10u
#define | SyslinkMemMgr_Params SyslinkMemMgr_CreateParams

Typedefs

typedef enum
SyslinkMemMgr_Type_Type_tag 		SyslinkMemMgr_Type
enum for denoting the different types of SyslinkMemMgr implementations.
typedef struct
SyslinkMemMgr_CreateParams_tag 		SyslinkMemMgr_CreateParams
Structure defining common create parameters for the Memory manager module.Should be the first element in implementation specific create params.
typedef struct
SyslinkMemMgr_AllocBlock_tag 		SyslinkMemMgr_AllocBlock
typedef struct
SyslinkMemMgr_AllocParams_tag 		SyslinkMemMgr_AllocParams
Alloc params.
typedef struct SyslinkMemMgr_Object | SyslinkMemMgr_Object
Forward declaration of structure defining object for the MemoryManger.
typedef SyslinkMemMgr_Object * | SyslinkMemMgr_Handle
Handle for the MemoryManager instance.

Enumerations

enum SyslinkMemMgr_AddrType {
SyslinkMemMgr_AddrType_Virtual = 0u,
SyslinkMemMgr_AddrType_Portable = 1u,
SyslinkMemMgr_AddrType_EndValue = 2u
}

Enumerations to indicate address types used for translation.

More...
enum SyslinkMemMgr_Type_Type_tag {
SyslinkMemMgr_TYPE_SHAREDMEM = 0x0,
SyslinkMemMgr_TYPE_TILERMEM = 0x1
}

enum for denoting the different types of SyslinkMemMgr implementations.

More...

Functions

Int32 | SyslinkMemMgr_setup (Void)
Int32 | SyslinkMemMgr_destroy (Void)
SyslinkMemMgr_Handle | SyslinkMemMgr_create (Ptr params)
Int32 | SyslinkMemMgr_delete (SyslinkMemMgr_Handle *pHandle)
Ptr | SyslinkMemMgr_alloc (SyslinkMemMgr_Handle handle, SyslinkMemMgr_AllocParams *params)
Int32 | SyslinkMemMgr_free (SyslinkMemMgr_Handle handle, Ptr ptr, UInt32 size)
Ptr | SyslinkMemMgr_map (SyslinkMemMgr_Handle handle, Ptr arg)
Int32 | SyslinkMemMgr_unmap (SyslinkMemMgr_Handle handle, Ptr arg)
Ptr | SyslinkMemMgr_translate (SyslinkMemMgr_Handle handle, Ptr srcAddr, SyslinkMemMgr_AddrType srcAddrType, SyslinkMemMgr_AddrType desAddrType)
Ptr | SyslinkMemMgr_getKnlHandle (SyslinkMemMgr_Handle handle)

Define Documentation

#define MEMMGR_MAX_NAME_LENGTH 32u
#define MEMMGR_MAX_TILER_BLOCKS 10u
#define SyslinkMemMgr_Params SyslinkMemMgr_CreateParams

Typedef Documentation

typedef enum SyslinkMemMgr_Type_Type_tag SyslinkMemMgr_Type

enum for denoting the different types of SyslinkMemMgr implementations.

typedef struct SyslinkMemMgr_CreateParams_tag SyslinkMemMgr_CreateParams

Structure defining common create parameters for the Memory manager module.Should be the first element in implementation specific create params.

typedef struct SyslinkMemMgr_AllocBlock_tag SyslinkMemMgr_AllocBlock
typedef struct SyslinkMemMgr_AllocParams_tag SyslinkMemMgr_AllocParams

Alloc params.

typedef struct SyslinkMemMgr_Object SyslinkMemMgr_Object

Forward declaration of structure defining object for the MemoryManger.

typedef SyslinkMemMgr_Object* SyslinkMemMgr_Handle

Handle for the MemoryManager instance.

Enumeration Type Documentation

enum SyslinkMemMgr_AddrType

Enumerations to indicate address types used for translation.

Enumerator:
SyslinkMemMgr_AddrType_Virtual

Virtual address on calling process on DSP where MMU is not configured it could be physical address.

SyslinkMemMgr_AddrType_Portable

This is the shared region address incase sharedmemory manager plugged in to frameQbufMgr. In case of tiler it could be the tiler specific portable address

SyslinkMemMgr_AddrType_EndValue

End delimiter indicating start of invalid values for this enum

enum SyslinkMemMgr_Type_Type_tag

enum for denoting the different types of SyslinkMemMgr implementations.

Enumerator:
SyslinkMemMgr_TYPE_SHAREDMEM
SyslinkMemMgr_TYPE_TILERMEM

Function Documentation

Int32 SyslinkMemMgr_setup ( Void )
Int32 SyslinkMemMgr_destroy ( Void )
SyslinkMemMgr_Handle SyslinkMemMgr_create ( Ptr params )
Int32 SyslinkMemMgr_delete ( SyslinkMemMgr_Handle * pHandle )
Ptr SyslinkMemMgr_alloc | ( | SyslinkMemMgr_Handle | handle,
 |  | SyslinkMemMgr_AllocParams * | params
 | ) |  |
Int32 SyslinkMemMgr_free | ( | SyslinkMemMgr_Handle | handle,
 |  | Ptr | ptr,
 |  | UInt32 | size
 | ) |  |
Ptr SyslinkMemMgr_map | ( | SyslinkMemMgr_Handle | handle,
 |  | Ptr | arg
 | ) |  |
Int32 SyslinkMemMgr_unmap | ( | SyslinkMemMgr_Handle | handle,
 |  | Ptr | arg
 | ) |  |
Ptr SyslinkMemMgr_translate | ( | SyslinkMemMgr_Handle | handle,
 |  | Ptr | srcAddr,
 |  | SyslinkMemMgr_AddrType | srcAddrType,
 |  | SyslinkMemMgr_AddrType | desAddrType
 | ) |  |
Ptr SyslinkMemMgr_getKnlHandle ( SyslinkMemMgr_Handle handle )


SysLink Application Programming Interface (API): SyslinkMemMgr.h Source File

SyslinkMemMgr.h

Go to the documentation of this file.
00001
00011 /*
00012  *  ============================================================================
00013  *
00014  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00015  *
00016  *  Redistribution and use in source and binary forms, with or without
00017  *  modification, are permitted provided that the following conditions
00018  *  are met:
00019  *
00020  *  *  Redistributions of source code must retain the above copyright
00021  *     notice, this list of conditions and the following disclaimer.
00022  *
00023  *  *  Redistributions in binary form must reproduce the above copyright
00024  *     notice, this list of conditions and the following disclaimer in the
00025  *     documentation and/or other materials provided with the distribution.
00026  *
00027  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00028  *     its contributors may be used to endorse or promote products derived
00029  *     from this software without specific prior written permission.
00030  *
00031  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00032  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00033  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00034  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00035  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00036  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00037  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00038  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00039  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00040  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00041  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00042  *  Contact information for paper mail:
00043  *  Texas Instruments
00044  *  Post Office Box 655303
00045  *  Dallas, Texas 75265
00046  *  Contact information:
00047  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00048  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00049  *  ============================================================================
00050  *
00051  */
00052
00053
00054
00055 #ifndef MEMMGR_H
00056 #define MEMMGR_H
00057
00058
00059 #if defined (__cplusplus)
00060 extern "C" {
00061 #endif
00062
00063 #define MEMMGR_MAX_NAME_LENGTH 32u
00064
00065 #define MEMMGR_MAX_TILER_BLOCKS 10u
00066
00067 /* =============================================================================
00068  * Structures & Enums
00069  * =============================================================================
00070  */
00071
00075 typedef enum {
00076     SyslinkMemMgr_AddrType_Virtual = 0u,
00080     SyslinkMemMgr_AddrType_Portable = 1u,
00084     SyslinkMemMgr_AddrType_EndValue = 2u
00086 } SyslinkMemMgr_AddrType;
00087
00091 typedef enum SyslinkMemMgr_Type_Type_tag {
00092     SyslinkMemMgr_TYPE_SHAREDMEM = 0x0,
00093     SyslinkMemMgr_TYPE_TILERMEM  = 0x1
00094 }SyslinkMemMgr_Type;
00095
00096
00102 typedef struct SyslinkMemMgr_CreateParams_tag {
00103     UInt32          size;
00105     SyslinkMemMgr_Type     memMgrType;
00107     UInt8           name[MEMMGR_MAX_NAME_LENGTH];
00109 } SyslinkMemMgr_CreateParams;
00110
00111 #define SyslinkMemMgr_Params SyslinkMemMgr_CreateParams
00112
00113 typedef struct SyslinkMemMgr_AllocBlock_tag {
00114     UInt16 pixelFormat;
00115     union {
00116         struct {
00117             UInt16 width;
00118             UInt16 height;
00119         } area;
00120         UInt16  len;
00121     } dim;
00122     UInt32 stride;
00123 } SyslinkMemMgr_AllocBlock;
00124
00125
00129 typedef struct SyslinkMemMgr_AllocParams_tag {
00130     UInt32 size;
00131     UInt32 align;
00132     SyslinkMemMgr_AllocBlock block[MEMMGR_MAX_TILER_BLOCKS];
00133     UInt32 tilerBlocks;
00134 } SyslinkMemMgr_AllocParams;
00135
00136
00141 typedef struct SyslinkMemMgr_Object SyslinkMemMgr_Object;
00142
00146 typedef SyslinkMemMgr_Object * SyslinkMemMgr_Handle;
00147
00148 /* =============================================================================
00149  * APIs
00150  * =============================================================================
00151  */
00152 /* Function to setup the SyslinkMemMgr module */
00153 Int32 SyslinkMemMgr_setup(Void);
00154
00155 /* Function to setup the SyslinkMemMgr module */
00156 Int32 SyslinkMemMgr_destroy(Void);
00157
00158 /* Function to create a SyslinkMemMgr instance */
00159 SyslinkMemMgr_Handle SyslinkMemMgr_create(Ptr params);
00160
00161 /* Function to delete the created Memory Manager  instance*/
00162 Int32 SyslinkMemMgr_delete(SyslinkMemMgr_Handle * pHandle);
00163
00164
00165 /* Function to allocate memory from the SyslinkMemMgr */
00166 Ptr SyslinkMemMgr_alloc(SyslinkMemMgr_Handle handle,
00167         SyslinkMemMgr_AllocParams *params);
00168
00169 /* Function to free memory from the SyslinkMemMgr */
00170 Int32 SyslinkMemMgr_free(SyslinkMemMgr_Handle handle, Ptr ptr, UInt32 size);
00171
00172 /* Function to map. not used for shared memory*/
00173 Ptr SyslinkMemMgr_map(SyslinkMemMgr_Handle handle, Ptr arg);
00174
00175 /* Function to do unmap */
00176 Int32 SyslinkMemMgr_unmap(SyslinkMemMgr_Handle handle, Ptr arg);
00177
00178 /* Function to translate source address to destination address type */
00179 Ptr SyslinkMemMgr_translate(SyslinkMemMgr_Handle handle, Ptr srcAddr,
00180         SyslinkMemMgr_AddrType srcAddrType,
00181         SyslinkMemMgr_AddrType desAddrType);
00182
00183 /* Function to return the kernel space instance handle pointer when user space
00184  * instance handle is passed
00185  */
00186 Ptr SyslinkMemMgr_getKnlHandle(SyslinkMemMgr_Handle handle);
00187
00188
00189 #if defined (__cplusplus)
00190 }
00191 #endif
00192
00193 #endif


SysLink Application Programming Interface (API): Trace.h File Reference

Defines | Enumerations

Trace.h File Reference

Detailed Description

Kernel Trace enabling/disabling/application interface.

This will have the definitions for kernel side traces statements and also details of variable traces supported in existing implementation.

#include <ti/syslink/utils/OsalPrint.h>
Include dependency graph for Trace.h:

Go to the source code of this file.

Defines

#define | OSALTRACE_MODULEID (UInt16) 0xDA50
Module ID for OsalTrace OSAL module.
#define | GT_TRACESTATE_MASK 0x0000000F
Trace state mask.
#define | GT_TRACESTATE_SHIFT 0u
Bit shift for trace state.
#define | GT_TRACEENTER_MASK 0x000000F0
Trace enter mask.
#define | GT_TRACEENTER_SHIFT 4u
Bit shift for trace enter.
#define | GT_TRACESETFAILURE_MASK 0x00000F00
Trace Set Failure Reason mask.
#define | GT_TRACESETFAILURE_SHIFT 8u
Bit shift for trace Set Failure Reason.
#define | GT_TRACECLASS_MASK 0x000F0000
GT class mask.
#define | GT_TRACECLASS_SHIFT 16u
Bit shift for GT class mask.
#define | GT_assert(x, y)
#define | GT_setFailureReason(mask, classId, func, status, msg)
#define | GT_0trace(mask, classId, format)
#define | GT_1trace(mask, classId, format, arg1)
#define | GT_2trace(mask, classId, format, arg1, arg2)
#define | GT_3trace(mask, classId, format, arg1, arg2, arg3)
#define | GT_4trace(mask, classId, format, arg1, arg2, arg3, arg4)
#define | GT_5trace(mask, classId, format, arg1, arg2, arg3, arg4, arg5)
#define | GT_6trace(mask, classId, format, arg1, arg2, arg3, arg4, arg5, arg6)
#define | GT_setTrace(mask, type) 0

Enumerations

enum GT_TraceState {
GT_TraceState_Disable = 0x00000000,
GT_TraceState_Enable = 0x00000001,
GT_TraceState_EndValue = 0x00000002
}

Enumerates the types of states of trace (enable/disable)

More...
enum GT_TraceEnter {
GT_TraceEnter_Disable = 0x00000000,
GT_TraceEnter_Enable = 0x00000010,
GT_TraceEnter_EndValue = 0x00000020
}

Enumerates the states of enter/leave trace (enable/disable)

More...
enum GT_TraceSetFailure {
GT_TraceSetFailure_Disable = 0x00000000,
GT_TraceSetFailure_Enable = 0x00000100,
GT_TraceSetFailure_EndValue = 0x00000200
}

Enumerates the states of SetFailureReason trace (enable/disable)

More...
enum GT_TraceClass {
GT_1CLASS = 0x00010000,
GT_2CLASS = 0x00020000,
GT_3CLASS = 0x00030000,
GT_4CLASS = 0x00040000,
GT_ENTER = 0x00050000,
GT_LEAVE = 0x00060000
}

Enumerates the types of trace classes.

More...
enum GT_TraceType {
GT_TraceType_User = 0x00000000,
GT_TraceType_Kernel = 0x00000001,
GT_TraceType_EndValue = 0x00000003
}

Enumerates the types of trace.

More...

Define Documentation

#define OSALTRACE_MODULEID (UInt16) 0xDA50

Module ID for OsalTrace OSAL module.

#define GT_TRACESTATE_MASK 0x0000000F

Trace state mask.

#define GT_TRACESTATE_SHIFT 0u

Bit shift for trace state.

#define GT_TRACEENTER_MASK 0x000000F0

Trace enter mask.

#define GT_TRACEENTER_SHIFT 4u

Bit shift for trace enter.

#define GT_TRACESETFAILURE_MASK 0x00000F00

Trace Set Failure Reason mask.

#define GT_TRACESETFAILURE_SHIFT 8u

Bit shift for trace Set Failure Reason.

#define GT_TRACECLASS_MASK 0x000F0000

GT class mask.

#define GT_TRACECLASS_SHIFT 16u

Bit shift for GT class mask.

#define GT_assert | ( | x,
 |  | y
 | ) |
#define GT_setFailureReason | ( | mask,
 |  | classId,
 |  | func,
 |  | status,
 |  | msg
 | ) |
#define GT_0trace | ( | mask,
 |  | classId,
 |  | format
 | ) |
#define GT_1trace | ( | mask,
 |  | classId,
 |  | format,
 |  | arg1
 | ) |
#define GT_2trace | ( | mask,
 |  | classId,
 |  | format,
 |  | arg1,
 |  | arg2
 | ) |
#define GT_3trace | ( | mask,
 |  | classId,
 |  | format,
 |  | arg1,
 |  | arg2,
 |  | arg3
 | ) |
#define GT_4trace | ( | mask,
 |  | classId,
 |  | format,
 |  | arg1,
 |  | arg2,
 |  | arg3,
 |  | arg4
 | ) |
#define GT_5trace | ( | mask,
 |  | classId,
 |  | format,
 |  | arg1,
 |  | arg2,
 |  | arg3,
 |  | arg4,
 |  | arg5
 | ) |
#define GT_6trace | ( | mask,
 |  | classId,
 |  | format,
 |  | arg1,
 |  | arg2,
 |  | arg3,
 |  | arg4,
 |  | arg5,
 |  | arg6
 | ) |
#define GT_setTrace | ( | mask,
 |  | type
 | ) | 0

Enumeration Type Documentation

enum GT_TraceState

Enumerates the types of states of trace (enable/disable)

Enumerator:
GT_TraceState_Disable

Disable trace

GT_TraceState_Enable

Enable trace

GT_TraceState_EndValue

End delimiter indicating start of invalid values for this enum

enum GT_TraceEnter

Enumerates the states of enter/leave trace (enable/disable)

Enumerator:
GT_TraceEnter_Disable

Disable GT_ENTER trace prints

GT_TraceEnter_Enable

Enable GT_ENTER trace prints

GT_TraceEnter_EndValue

End delimiter indicating start of invalid values for this enum

enum GT_TraceSetFailure

Enumerates the states of SetFailureReason trace (enable/disable)

Enumerator:
GT_TraceSetFailure_Disable

Disable Set Failure trace prints

GT_TraceSetFailure_Enable

Enable Set Failure trace prints

GT_TraceSetFailure_EndValue

End delimiter indicating start of invalid values for this enum

enum GT_TraceClass

Enumerates the types of trace classes.

Enumerator:
GT_1CLASS

Class 1 trace: Used for block level or critical information

GT_2CLASS

Class 2 trace: Used for semi-critical information

GT_3CLASS

Class 3 trace: Used for additional information

GT_4CLASS

Class 4 trace: Used for errors

GT_ENTER

Indicates a function entry class of trace

GT_LEAVE

Indicates a function leave class of trace

enum GT_TraceType

Enumerates the types of trace.

Enumerator:
GT_TraceType_User

User side trace

GT_TraceType_Kernel

Kernel side trace

GT_TraceType_EndValue

End delimiter indicating start of invalid values for this enum


SysLink Application Programming Interface (API): Trace.h Source File

Trace.h

Go to the documentation of this file.
00001
00012 /*
00013  *  ============================================================================
00014  *
00015  *  Copyright (c) 2008-2012, Texas Instruments Incorporated
00016  *
00017  *  Redistribution and use in source and binary forms, with or without
00018  *  modification, are permitted provided that the following conditions
00019  *  are met:
00020  *
00021  *  *  Redistributions of source code must retain the above copyright
00022  *     notice, this list of conditions and the following disclaimer.
00023  *
00024  *  *  Redistributions in binary form must reproduce the above copyright
00025  *     notice, this list of conditions and the following disclaimer in the
00026  *     documentation and/or other materials provided with the distribution.
00027  *
00028  *  *  Neither the name of Texas Instruments Incorporated nor the names of
00029  *     its contributors may be used to endorse or promote products derived
00030  *     from this software without specific prior written permission.
00031  *
00032  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00033  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00034  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00035  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00036  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00037  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00038  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00039  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00040  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00041  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00042  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00043  *  Contact information for paper mail:
00044  *  Texas Instruments
00045  *  Post Office Box 655303
00046  *  Dallas, Texas 75265
00047  *  Contact information:
00048  *  http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
00049  *  DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
00050  *  ============================================================================
00051  *
00052  */
00053
00054
00055 #ifndef OSALTRACE_H_0xDA50
00056 #define OSALTRACE_H_0xDA50
00057
00058 /* OSAL and utils headers */
00059 #include <ti/syslink/utils/OsalPrint.h>
00060
00061 #if defined (__cplusplus)
00062 extern "C" {
00063 #endif
00064
00065
00070 #define OSALTRACE_MODULEID                 (UInt16) 0xDA50
00071
00072
00077 #define GT_TRACESTATE_MASK                 0x0000000F
00078
00083 #define GT_TRACESTATE_SHIFT                0u
00084
00089 #define GT_TRACEENTER_MASK                 0x000000F0
00090
00095 #define GT_TRACEENTER_SHIFT                4u
00096
00101 #define GT_TRACESETFAILURE_MASK            0x00000F00
00102
00107 #define GT_TRACESETFAILURE_SHIFT           8u
00108
00113 #define GT_TRACECLASS_MASK                 0x000F0000
00114
00119 #define GT_TRACECLASS_SHIFT                16u
00120
00124 typedef enum {
00125     GT_TraceState_Disable       = 0x00000000,
00127     GT_TraceState_Enable        = 0x00000001,
00129     GT_TraceState_EndValue      = 0x00000002
00131 } GT_TraceState;
00132
00136 typedef enum {
00137     GT_TraceEnter_Disable       = 0x00000000,
00139     GT_TraceEnter_Enable        = 0x00000010,
00141     GT_TraceEnter_EndValue      = 0x00000020
00143 } GT_TraceEnter;
00144
00148 typedef enum {
00149     GT_TraceSetFailure_Disable       = 0x00000000,
00151     GT_TraceSetFailure_Enable        = 0x00000100,
00153     GT_TraceSetFailure_EndValue      = 0x00000200
00155 } GT_TraceSetFailure;
00156
00160 typedef enum {
00161     GT_1CLASS                   = 0x00010000,
00163     GT_2CLASS                   = 0x00020000,
00165     GT_3CLASS                   = 0x00030000,
00167     GT_4CLASS                   = 0x00040000,
00169     GT_ENTER                    = 0x00050000,
00171     GT_LEAVE                    = 0x00060000
00173 } GT_TraceClass;
00174
00178 typedef enum {
00179     GT_TraceType_User       = 0x00000000,
00181     GT_TraceType_Kernel     = 0x00000001,
00183     GT_TraceType_EndValue   = 0x00000003
00185 } GT_TraceType;
00186
00187
00188 #if defined(SYSLINK_BUILD_DEBUG)
00189 #if defined(SYSLINK_BUILD_HLOS)
00190 #define GT_assert(x, y)                                                 \
00191 do {                                                                    \
00192     if (!(y)) {                                                         \
00193         Osal_printf ("Assertion at Line no: %d in %s: %s : failed\n",   \
00194                      __LINE__, __FILE__, #y);                           \
00195     }                                                                   \
00196 } while (0);
00197 #endif /* defined(SYSLINK_BUILD_HLOS) */
00198
00199 #if defined(SYSLINK_BUILD_RTOS)
00200 #define GT_assert(x, y)                                                 \
00201 do {                                                                    \
00202     if (!(y)) {                                                         \
00203         Osal_printf ("Assertion at Line no: %d in %s: %s : failed\n",   \
00204                      __LINE__, __FILE__, #y);                           \
00205         volatile int a =1;                                              \
00206         while(a);                                                       \
00207     }                                                                   \
00208 } while (0);
00209 #endif /*#if defined(SYSLINK_BUILD_RTOS) */
00210 #endif /*#if defined(SYSLINK_BUILD_DEBUG) */
00211
00212
00213 #if !defined(GT_assert)
00214 #define GT_assert(x, y)
00215 #endif
00216
00217
00218 #if defined (SYSLINK_TRACE_ENABLE)
00219 /* The global trace variable containing current trace configuration. */
00220 extern Int curTrace;
00221
00222 UInt32 _GT_setTrace (UInt32 mask, GT_TraceType type);
00223 #define GT_setTrace(mask,type) _GT_setTrace(mask, type)
00224
00225 /* Function to report the syslink failure and log the trace. */
00226 Void _GT_setFailureReason (Int enableMask,
00227                            Char * func,
00228                            Char * fileName,
00229                            UInt32 lineNo,
00230                            Int32 status,
00231                            Char * msg);
00232 #define GT_setFailureReason(mask, classId, func, status, msg)           \
00233        _GT_setFailureReason(mask, func,                                 \
00234                             __FILE__, __LINE__, status, (Char*) (msg"\n"))
00235
00236
00237 /* Log the trace with zero parameters and information string. */
00238 Void _GT_0trace (UInt32 maskType, GT_TraceClass classtype, Char* infoString);
00239 #define GT_0trace(mask, classId, format) \
00240 do {                                                            \
00241     if (classId == GT_ENTER) {                                  \
00242        _GT_0trace(mask, classId,                                \
00243                   "Entered "format"\n");                        \
00244     }                                                           \
00245     else if (classId == GT_LEAVE) {                             \
00246        _GT_0trace(mask, classId,                                \
00247                   "Leaving "format"\n");                        \
00248     }                                                           \
00249     else {                                                      \
00250        _GT_0trace(mask, classId,                                \
00251                   format"\n");                                  \
00252     }                                                           \
00253 } while (0)
00254
00255
00256 /* Function to log the trace with one additional parameter */
00257 Void _GT_1trace (UInt32         maskType,
00258                  GT_TraceClass  classtype,
00259                  Char *         infoString,
00260                  UInt32         param);
00261 #define GT_1trace(mask, classId, format, a)                     \
00262 do {                                                            \
00263     if (classId == GT_ENTER) {                                  \
00264        _GT_1trace(mask, classId,                                \
00265                   "Entered "format"\n\t"#a"\t[0x%x]\n",         \
00266                   (UInt32) (a));                                \
00267     }                                                           \
00268     else if (classId == GT_LEAVE) {                             \
00269        _GT_1trace(mask, classId,                                \
00270                   "Leaving "format"\n\t"#a"\t[0x%x]\n",         \
00271                   (UInt32) (a));                                \
00272     }                                                           \
00273     else {                                                      \
00274        _GT_1trace(mask, classId,                                \
00275                   format"\n",                                   \
00276                   (UInt32) (a));                                \
00277     }                                                           \
00278 } while (0)
00279
00280
00281 /* Function to log the trace with two additional parameters */
00282 Void _GT_2trace (UInt32         maskType,
00283                  GT_TraceClass  classtype,
00284                  Char *         infoString,
00285                  UInt32         param0,
00286                  UInt32         param1);
00287 #define GT_2trace(mask, classId, format, a, b)                  \
00288 do {                                                            \
00289     if (classId == GT_ENTER) {                                  \
00290        _GT_2trace(mask, classId,                                \
00291                   "Entered "format"\n\t"#a"\t[0x%x]\n"          \
00292                   "\t"#b"\t[0x%x]\n",                           \
00293                   (UInt32) (a),                                 \
00294                   (UInt32) (b));                                \
00295     }                                                           \
00296     else if (classId == GT_LEAVE) {                             \
00297        _GT_2trace(mask, classId,                                \
00298                   "Leaving "format"\n\t"#a"\t[0x%x]\n"          \
00299                   "\t"#b"\t[0x%x]\n",                           \
00300                   (UInt32) (a),                                 \
00301                   (UInt32) (b));                                \
00302     }                                                           \
00303     else {                                                      \
00304        _GT_2trace(mask, classId,                                \
00305                   format"\n",                                   \
00306                   (UInt32) (a),                                 \
00307                   (UInt32) (b));                                \
00308     }                                                           \
00309 } while (0)
00310
00311
00312 /* Function to log the trace with three parameters. */
00313 Void _GT_3trace (UInt32         maskType,
00314                  GT_TraceClass  classtype,
00315                  Char*          infoString,
00316                  UInt32         param0,
00317                  UInt32         param1,
00318                  UInt32         param2);
00319 #define GT_3trace(mask, classId, format, a, b, c)               \
00320 do {                                                            \
00321     if (classId == GT_ENTER) {                                  \
00322        _GT_3trace(mask, classId,                                \
00323                   "Entered "format"\n\t"#a"\t[0x%x]\n"          \
00324                   "\t"#b"\t[0x%x]\n"                            \
00325                   "\t"#c"\t[0x%x]\n",                           \
00326                   (UInt32) (a),                                 \
00327                   (UInt32) (b),                                 \
00328                   (UInt32) (c));                                \
00329     }                                                           \
00330     else if (classId == GT_LEAVE) {                             \
00331        _GT_3trace(mask, classId,                                \
00332                   "Leaving "format"\n\t"#a"\t[0x%x]\n"          \
00333                   "\t"#b"\t[0x%x]\n"                            \
00334                   "\t"#c"\t[0x%x]\n",                           \
00335                   (UInt32) (a),                                 \
00336                   (UInt32) (b),                                 \
00337                   (UInt32) (c));                                \
00338     }                                                           \
00339     else {                                                      \
00340        _GT_3trace(mask, classId,                                \
00341                   format"\n",                                   \
00342                   (UInt32) (a),                                 \
00343                   (UInt32) (b),                                 \
00344                   (UInt32) (c));                                \
00345     }                                                           \
00346 } while (0)
00347
00348
00349 /* Function to log the trace with four parameters. */
00350 Void _GT_4trace (UInt32         maskType,
00351                  GT_TraceClass  classtype,
00352                  Char*          infoString,
00353                  UInt32         param0,
00354                  UInt32         param1,
00355                  UInt32         param2,
00356                  UInt32         param3);
00357 #define GT_4trace(mask, classId, format, a, b, c, d) \
00358 do {                                                            \
00359     if (classId == GT_ENTER) {                                  \
00360        _GT_4trace(mask, classId,                                \
00361                   "Entered "format"\n\t"#a"\t[0x%x]\n"          \
00362                   "\t"#b"\t[0x%x]\n"                            \
00363                   "\t"#c"\t[0x%x]\n"                            \
00364                   "\t"#d"\t[0x%x]\n",                           \
00365                   (UInt32) (a),                                 \
00366                   (UInt32) (b),                                 \
00367                   (UInt32) (c),                                 \
00368                   (UInt32) (d));                                \
00369     }                                                           \
00370     else if (classId == GT_LEAVE) {                             \
00371        _GT_4trace(mask, classId,                                \
00372                   "Leaving "format"\n\t"#a"\t[0x%x]\n"          \
00373                   "\t"#b"\t[0x%x]\n"                            \
00374                   "\t"#c"\t[0x%x]\n"                            \
00375                   "\t"#d"\t[0x%x]\n",                           \
00376                   (UInt32) (a),                                 \
00377                   (UInt32) (b),                                 \
00378                   (UInt32) (c),                                 \
00379                   (UInt32) (d));                                \
00380     }                                                           \
00381     else {                                                      \
00382        _GT_4trace(mask, classId,                                \
00383                   format"\n",                                   \
00384                   (UInt32) (a),                                 \
00385                   (UInt32) (b),                                 \
00386                   (UInt32) (c),                                 \
00387                   (UInt32) (d));                                \
00388     }                                                           \
00389 } while (0)
00390
00391
00392 /* Function to log the trace with five parameters. */
00393 Void _GT_5trace (UInt32         maskType,
00394                  GT_TraceClass  classtype,
00395                  Char*          infoString,
00396                  UInt32         param0,
00397                  UInt32         param1,
00398                  UInt32         param2,
00399                  UInt32         param3,
00400                  UInt32         param4);
00401 #define GT_5trace(mask, classId, format, a, b, c, d, e) \
00402 do {                                                            \
00403     if (classId == GT_ENTER) {                                  \
00404        _GT_5trace(mask, classId,                                \
00405                   "Entered "format"\n\t"#a"\t[0x%x]\n"          \
00406                   "\t"#b"\t[0x%x]\n"                            \
00407                   "\t"#c"\t[0x%x]\n"                            \
00408                   "\t"#d"\t[0x%x]\n"                            \
00409                   "\t"#e"\t[0x%x]\n",                           \
00410                   (UInt32) (a),                                 \
00411                   (UInt32) (b),                                 \
00412                   (UInt32) (c),                                 \
00413                   (UInt32) (d),                                 \
00414                   (UInt32) (e));                                \
00415     }                                                           \
00416     else if (classId == GT_LEAVE) {                             \
00417        _GT_5trace(mask, classId,                                \
00418                   "Leaving "format"\n\t"#a"\t[0x%x]\n"          \
00419                   "\t"#b"\t[0x%x]\n"                            \
00420                   "\t"#c"\t[0x%x]\n"                            \
00421                   "\t"#d"\t[0x%x]\n"                            \
00422                   "\t"#e"\t[0x%x]\n",                           \
00423                   (UInt32) (a),                                 \
00424                   (UInt32) (b),                                 \
00425                   (UInt32) (c),                                 \
00426                   (UInt32) (d),                                 \
00427                   (UInt32) (e));                                \
00428     }                                                           \
00429     else {                                                      \
00430        _GT_5trace(mask, classId,                                \
00431                   format"\n",                                   \
00432                   (UInt32) (a),                                 \
00433                   (UInt32) (b),                                 \
00434                   (UInt32) (c),                                 \
00435                   (UInt32) (d),                                 \
00436                   (UInt32) (e));                                \
00437     }                                                           \
00438 } while (0)
00439
00440 /* Function to log the trace with six parameters. */
00441 Void _GT_6trace (UInt32         maskType,
00442                  GT_TraceClass  classtype,
00443                  Char*          infoString,
00444                  UInt32         param0,
00445                  UInt32         param1,
00446                  UInt32         param2,
00447                  UInt32         param3,
00448                  UInt32         param4,
00449                                  UInt32         param5);
00450 #define GT_6trace(mask, classId, format, a, b, c, d, e, f) \
00451 do {                                                            \
00452     if (classId == GT_ENTER) {                                  \
00453        _GT_6trace(mask, classId,                                \
00454                   "Entered "format"\n\t"#a"\t[0x%x]\n"          \
00455                   "\t"#b"\t[0x%x]\n"                            \
00456                   "\t"#c"\t[0x%x]\n"                            \
00457                   "\t"#d"\t[0x%x]\n"                            \
00458                   "\t"#e"\t[0x%x]\n"                            \
00459                   "\t"#f"\t[0x%x]\n",                           \
00460                   (UInt32) (a),                                 \
00461                   (UInt32) (b),                                 \
00462                   (UInt32) (c),                                 \
00463                   (UInt32) (d),                                 \
00464                   (UInt32) (e),                                 \
00465                   (UInt32) (f));                                \
00466     }                                                           \
00467     else if (classId == GT_LEAVE) {                             \
00468        _GT_6trace(mask, classId,                                \
00469                   "Leaving "format"\n\t"#a"\t[0x%x]\n"          \
00470                   "\t"#b"\t[0x%x]\n"                            \
00471                   "\t"#c"\t[0x%x]\n"                            \
00472                   "\t"#d"\t[0x%x]\n"                            \
00473                   "\t"#e"\t[0x%x]\n"                            \
00474                   "\t"#f"\t[0x%x]\n",                           \
00475                   (UInt32) (a),                                 \
00476                   (UInt32) (b),                                 \
00477                   (UInt32) (c),                                 \
00478                   (UInt32) (d),                                 \
00479                   (UInt32) (e),                                 \
00480                   (UInt32) (f));                                \
00481     }                                                           \
00482     else {                                                      \
00483        _GT_6trace(mask, classId,                                \
00484                   format"\n",                                   \
00485                   (UInt32) (a),                                 \
00486                   (UInt32) (b),                                 \
00487                   (UInt32) (c),                                 \
00488                   (UInt32) (d),                                 \
00489                   (UInt32) (e),                                 \
00490                   (UInt32) (f));                                \
00491     }                                                           \
00492 } while (0)
00493
00494 #else /* if defined (SYSLINK_TRACE_ENABLE) */
00495
00496 #define GT_setFailureReason(mask, classId, func, status, msg)
00497 #define GT_0trace(mask, classId, format)
00498 #define GT_1trace(mask, classId, format, arg1)
00499 #define GT_2trace(mask, classId, format, arg1, arg2)
00500 #define GT_3trace(mask, classId, format, arg1, arg2, arg3)
00501 #define GT_4trace(mask, classId, format, arg1, arg2, arg3, arg4)
00502 #define GT_5trace(mask, classId, format, arg1, arg2, arg3, arg4, arg5)
00503 #define GT_6trace(mask, classId, format, arg1, arg2, arg3, arg4, arg5, arg6)
00504 #define GT_setTrace(mask, type) 0
00505
00506 #endif /* if defined (SYSLINK_TRACE_ENABLE) */
00507
00508
00509 #if defined (__cplusplus)
00510 }
00511 #endif /* defined (__cplusplus) */
00512
00513 #endif /* ifndef OSALTRACE_H_0xDA50 */


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- b -

  • Bits16 : Std.h
  • Bits32 : Std.h
  • Bits8 : Std.h
  • Bool : Std.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- l -

  • LDouble : Std.h
  • List_construct() : List.h
  • List_create() : List.h
  • List_delete() : List.h
  • List_dequeue() : List.h
  • List_destruct() : List.h
  • List_Elem : List.h
  • List_elemClear() : List.h
  • List_empty() : List.h
  • List_enqueue() : List.h
  • List_enqueueHead() : List.h
  • List_get() : List.h
  • List_Handle : List.h
  • List_insert() : List.h
  • List_next() : List.h
  • List_Object : List.h
  • List_Params : List.h
  • List_Params_init() : List.h
  • List_prev() : List.h
  • List_put() : List.h
  • List_putHead() : List.h
  • List_remove() : List.h
  • List_traverse : List.h
  • ListMP_close() : ListMP.h
  • ListMP_create() : ListMP.h
  • ListMP_delete() : ListMP.h
  • ListMP_E_ALREADYEXISTS : ListMP.h
  • ListMP_E_FAIL : ListMP.h
  • ListMP_E_INVALIDARG : ListMP.h
  • ListMP_E_INVALIDSTATE : ListMP.h
  • ListMP_E_MEMORY : ListMP.h
  • ListMP_E_NOTFOUND : ListMP.h
  • ListMP_E_OSFAILURE : ListMP.h
  • ListMP_E_RESOURCE : ListMP.h
  • ListMP_E_RESTART : ListMP.h
  • ListMP_E_TIMEOUT : ListMP.h
  • ListMP_Elem : ListMP.h
  • ListMP_empty() : ListMP.h
  • ListMP_getGate() : ListMP.h
  • ListMP_getHead() : ListMP.h
  • ListMP_getTail() : ListMP.h
  • ListMP_Handle : ListMP.h
  • ListMP_insert() : ListMP.h
  • ListMP_next() : ListMP.h
  • ListMP_open() : ListMP.h
  • ListMP_Params : ListMP.h
  • ListMP_Params_init() : ListMP.h
  • ListMP_prev() : ListMP.h
  • ListMP_putHead() : ListMP.h
  • ListMP_putTail() : ListMP.h
  • ListMP_remove() : ListMP.h
  • ListMP_S_ALREADYSETUP : ListMP.h
  • ListMP_S_BUSY : ListMP.h
  • ListMP_S_SUCCESS : ListMP.h
  • Long : Std.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- m -

  • MEMMGR_MAX_NAME_LENGTH : SyslinkMemMgr.h
  • MEMMGR_MAX_TILER_BLOCKS : SyslinkMemMgr.h
  • Memory_alloc() : Memory.h
  • Memory_calloc() : Memory.h
  • Memory_copy : Memory.h
  • Memory_free() : Memory.h
  • Memory_getMaxDefaultTypeAlign() : Memory.h
  • Memory_getStats() : Memory.h
  • Memory_map : _Memory.h
  • Memory_MapInfo : _MemoryDefs.h
  • Memory_Q_BLOCKING : Memory.h
  • Memory_query() : Memory.h
  • Memory_set : Memory.h
  • Memory_SGList : _MemoryDefs.h
  • Memory_Stats : MemoryDefs.h
  • Memory_translate() : _Memory.h
  • Memory_unmap : _Memory.h
  • Memory_UnmapInfo : _MemoryDefs.h
  • Memory_valloc() : Memory.h
  • Memory_XltFlags : _MemoryDefs.h
  • Memory_XltFlags_EndValue : _MemoryDefs.h
  • Memory_XltFlags_Phys2Virt : _MemoryDefs.h
  • Memory_XltFlags_Virt2Phys : _MemoryDefs.h
  • MemoryOS_alloc() : MemoryOS.h
  • MemoryOS_CacheFlags : MemoryDefs.h
  • MemoryOS_CacheFlags_Cached : MemoryDefs.h
  • MemoryOS_CacheFlags_Default : MemoryDefs.h
  • MemoryOS_CacheFlags_EndValue : MemoryDefs.h
  • MemoryOS_CacheFlags_Uncached : MemoryDefs.h
  • MemoryOS_calloc() : MemoryOS.h
  • MemoryOS_copy() : MemoryOS.h
  • MemoryOS_destroy() : MemoryOS.h
  • MEMORYOS_E_FAIL : _MemoryOS.h
  • MEMORYOS_E_INVALIDARG : _MemoryOS.h
  • MEMORYOS_E_INVALIDSTATE : _MemoryOS.h
  • MEMORYOS_E_MAP : _MemoryOS.h
  • MEMORYOS_E_MEMORY : _MemoryOS.h
  • MEMORYOS_E_UNMAP : _MemoryOS.h
  • MemoryOS_free() : MemoryOS.h
  • MEMORYOS_MAKE_FAILURE : _MemoryOS.h
  • MEMORYOS_MAKE_SUCCESS : _MemoryOS.h
  • MemoryOS_map() : _MemoryOS.h
  • MemoryOS_MapInfo : _MemoryDefs.h
  • MemoryOS_MemTypeFlags : MemoryDefs.h
  • MemoryOS_MemTypeFlags_Default : MemoryDefs.h
  • MemoryOS_MemTypeFlags_Dma : MemoryDefs.h
  • MemoryOS_MemTypeFlags_EndValue : MemoryDefs.h
  • MemoryOS_MemTypeFlags_Physical : MemoryDefs.h
  • MEMORYOS_MODULEID : _MemoryOS.h
  • MEMORYOS_S_ALREADYSETUP : _MemoryOS.h
  • MEMORYOS_S_SUCCESS : _MemoryOS.h
  • MemoryOS_set() : MemoryOS.h
  • MemoryOS_setup() : MemoryOS.h
  • MemoryOS_SGList : _MemoryDefs.h
  • MEMORYOS_STATUSCODEBASE : _MemoryOS.h
  • MemoryOS_translate() : MemoryOS.h
  • MemoryOS_unmap() : _MemoryOS.h
  • MemoryOS_UnmapInfo : _MemoryDefs.h
  • MessageQ_alloc() : MessageQ.h
  • MessageQ_close() : MessageQ.h
  • MessageQ_count() : MessageQ.h
  • MessageQ_create() : MessageQ.h
  • MessageQ_delete() : MessageQ.h
  • MessageQ_E_ALREADYEXISTS : MessageQ.h
  • MessageQ_E_CANNOTFREESTATICMSG : MessageQ.h
  • MessageQ_E_FAIL : MessageQ.h
  • MessageQ_E_INVALIDARG : MessageQ.h
  • MessageQ_E_INVALIDHEAPID : MessageQ.h
  • MessageQ_E_INVALIDMSG : MessageQ.h
  • MessageQ_E_INVALIDPROCID : MessageQ.h
  • MessageQ_E_INVALIDSTATE : MessageQ.h
  • MessageQ_E_MAXREACHED : MessageQ.h
  • MessageQ_E_MEMORY : MessageQ.h
  • MessageQ_E_NOTFOUND : MessageQ.h
  • MessageQ_E_NOTOWNER : MessageQ.h
  • MessageQ_E_OSFAILURE : MessageQ.h
  • MessageQ_E_REMOTEACTIVE : MessageQ.h
  • MessageQ_E_RESOURCE : MessageQ.h
  • MessageQ_E_RESTART : MessageQ.h
  • MessageQ_E_TIMEOUT : MessageQ.h
  • MessageQ_E_UNBLOCKED : MessageQ.h
  • MessageQ_E_UNREGISTEREDHEAPID : MessageQ.h
  • MessageQ_FOREVER : MessageQ.h
  • MessageQ_free() : MessageQ.h
  • MessageQ_get() : MessageQ.h
  • MessageQ_getDstQueue : MessageQ.h
  • MessageQ_getMsgId : MessageQ.h
  • MessageQ_getMsgPri : MessageQ.h
  • MessageQ_getMsgSize : MessageQ.h
  • MessageQ_getProcId : MessageQ.h
  • MessageQ_getQueueId() : MessageQ.h
  • MessageQ_getReplyQueue : MessageQ.h
  • MessageQ_Handle : MessageQ.h
  • MessageQ_HIGHPRI : MessageQ.h
  • MessageQ_INVALIDMESSAGEQ : MessageQ.h
  • MessageQ_INVALIDMSGID : MessageQ.h
  • MessageQ_Msg : MessageQ.h
  • MessageQ_NORMALPRI : MessageQ.h
  • MessageQ_open() : MessageQ.h
  • MessageQ_Params_init() : MessageQ.h
  • MessageQ_Priority : MessageQ.h
  • MessageQ_PRIORITYMASK : MessageQ.h
  • MessageQ_put() : MessageQ.h
  • MessageQ_QueueId : MessageQ.h
  • MessageQ_QueueIndex : MessageQ.h
  • MessageQ_registerHeap() : MessageQ.h
  • MessageQ_RESERVEDPRI : MessageQ.h
  • MessageQ_S_ALREADYSETUP : MessageQ.h
  • MessageQ_S_BUSY : MessageQ.h
  • MessageQ_S_SUCCESS : MessageQ.h
  • MessageQ_setMsgId : MessageQ.h
  • MessageQ_setMsgPri : MessageQ.h
  • MessageQ_setMsgTrace() : MessageQ.h
  • MessageQ_setReplyQueue() : MessageQ.h
  • MessageQ_staticMsgInit() : MessageQ.h
  • MessageQ_unblock() : MessageQ.h
  • MessageQ_unregisterHeap() : MessageQ.h
  • MessageQ_URGENTPRI : MessageQ.h
  • MultiProc_E_ALREADYEXISTS : MultiProc.h
  • MultiProc_E_FAIL : MultiProc.h
  • MultiProc_E_INVALIDARG : MultiProc.h
  • MultiProc_E_INVALIDSTATE : MultiProc.h
  • MultiProc_E_MEMORY : MultiProc.h
  • MultiProc_E_NOTFOUND : MultiProc.h
  • MultiProc_E_OSFAILURE : MultiProc.h
  • MultiProc_E_RESOURCE : MultiProc.h
  • MultiProc_E_RESTART : MultiProc.h
  • MultiProc_E_TIMEOUT : MultiProc.h
  • MultiProc_getBaseIdOfCluster() : MultiProc.h
  • MultiProc_getId() : MultiProc.h
  • MultiProc_getName() : MultiProc.h
  • MultiProc_getNumProcessors() : MultiProc.h
  • MultiProc_getNumProcsInCluster() : MultiProc.h
  • MultiProc_INVALIDID : MultiProc.h
  • MultiProc_S_ALREADYSETUP : MultiProc.h
  • MultiProc_S_BUSY : MultiProc.h
  • MultiProc_S_SUCCESS : MultiProc.h
  • MultiProc_self() : MultiProc.h
  • MultiProc_setBaseIdOfCluster() : MultiProc.h
  • MultiProc_setLocalId() : MultiProc.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- n -

  • NameServer_add() : NameServer.h
  • NameServer_addUInt32() : NameServer.h
  • NameServer_ALLOWGROWTH : NameServer.h
  • NameServer_create() : NameServer.h
  • NameServer_delete() : NameServer.h
  • NameServer_E_ALREADYEXISTS : NameServer.h
  • NameServer_E_FAIL : NameServer.h
  • NameServer_E_INVALIDARG : NameServer.h
  • NameServer_E_INVALIDSTATE : NameServer.h
  • NameServer_E_MEMORY : NameServer.h
  • NameServer_E_NOTFOUND : NameServer.h
  • NameServer_E_OSFAILURE : NameServer.h
  • NameServer_E_RESOURCE : NameServer.h
  • NameServer_E_RESTART : NameServer.h
  • NameServer_E_TIMEOUT : NameServer.h
  • NameServer_get() : NameServer.h
  • NameServer_getHandle() : NameServer.h
  • NameServer_getLocal() : NameServer.h
  • NameServer_getLocalUInt32() : NameServer.h
  • NameServer_getUInt32() : NameServer.h
  • NameServer_Handle : NameServer.h
  • NameServer_Params : NameServer.h
  • NameServer_Params_init() : NameServer.h
  • NameServer_Params_MAXNAMELEN : NameServer.h
  • NameServer_remove() : NameServer.h
  • NameServer_removeEntry() : NameServer.h
  • NameServer_S_ALREADYSETUP : NameServer.h
  • NameServer_S_BUSY : NameServer.h
  • NameServer_S_SUCCESS : NameServer.h
  • Notify_attach() : Notify.h
  • Notify_disable() : Notify.h
  • Notify_disableEvent() : Notify.h
  • Notify_E_ALREADYEXISTS : Notify.h
  • Notify_E_ALREADYSETUP : Notify.h
  • Notify_E_BUSY : Notify.h
  • Notify_E_DRIVERNOTREGISTERED : Notify.h
  • Notify_E_EVTDISABLED : Notify.h
  • Notify_E_EVTNOTREGISTERED : Notify.h
  • Notify_E_EVTRESERVED : Notify.h
  • Notify_E_FAIL : Notify.h
  • Notify_E_INVALIDARG : Notify.h
  • Notify_E_INVALIDSTATE : Notify.h
  • Notify_E_MEMORY : Notify.h
  • Notify_E_NOTFOUND : Notify.h
  • Notify_E_NOTINITIALIZED : Notify.h
  • Notify_E_OSFAILURE : Notify.h
  • Notify_E_RESOURCE : Notify.h
  • Notify_E_RESTART : Notify.h
  • Notify_E_TIMEOUT : Notify.h
  • Notify_enableEvent() : Notify.h
  • Notify_eventAvailable() : Notify.h
  • Notify_FnNotifyCbck : Notify.h
  • Notify_intLineRegistered() : Notify.h
  • Notify_MAX_INTLINES : Notify.h
  • Notify_MAXEVENTS : Notify.h
  • Notify_numIntLines() : Notify.h
  • Notify_registerEvent() : Notify.h
  • Notify_registerEventSingle() : Notify.h
  • Notify_restore() : Notify.h
  • Notify_S_ALREADYSETUP : Notify.h
  • Notify_S_BUSY : Notify.h
  • Notify_S_SUCCESS : Notify.h
  • Notify_sendEvent() : Notify.h
  • Notify_SYSTEMKEY : Notify.h
  • Notify_unregisterEvent() : Notify.h
  • Notify_unregisterEventSingle() : Notify.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- o -

  • Osal_printf() : OsalPrint.h
  • OSALPRINT_MODULEID : OsalPrint.h
  • OsalSemaphore_create() : OsalSemaphore.h
  • OsalSemaphore_delete() : OsalSemaphore.h
  • OSALSEMAPHORE_E_FAIL : OsalSemaphore.h
  • OSALSEMAPHORE_E_HANDLE : OsalSemaphore.h
  • OSALSEMAPHORE_E_INVALIDARG : OsalSemaphore.h
  • OSALSEMAPHORE_E_MEMORY : OsalSemaphore.h
  • OSALSEMAPHORE_E_RESOURCE : OsalSemaphore.h
  • OSALSEMAPHORE_E_TIMEOUT : OsalSemaphore.h
  • OSALSEMAPHORE_E_WAITNONE : OsalSemaphore.h
  • OsalSemaphore_Handle : OsalSemaphore.h
  • OsalSemaphore_IntType : OsalSemaphore.h
  • OsalSemaphore_IntType_EndValue : OsalSemaphore.h
  • OsalSemaphore_IntType_Interruptible : OsalSemaphore.h
  • OsalSemaphore_IntType_Noninterruptible : OsalSemaphore.h
  • OSALSEMAPHORE_INTTYPE_VALUE : OsalSemaphore.h
  • OSALSEMAPHORE_MAKE_FAILURE : OsalSemaphore.h
  • OSALSEMAPHORE_MAKE_SUCCESS : OsalSemaphore.h
  • OSALSEMAPHORE_MODULEID : OsalSemaphore.h
  • OsalSemaphore_pend() : OsalSemaphore.h
  • OsalSemaphore_post() : OsalSemaphore.h
  • OSALSEMAPHORE_STATUSCODEBASE : OsalSemaphore.h
  • OSALSEMAPHORE_SUCCESS : OsalSemaphore.h
  • OsalSemaphore_Type : OsalSemaphore.h
  • OsalSemaphore_Type_Binary : OsalSemaphore.h
  • OsalSemaphore_Type_Counting : OsalSemaphore.h
  • OsalSemaphore_Type_EndValue : OsalSemaphore.h
  • OSALSEMAPHORE_TYPE_VALUE : OsalSemaphore.h
  • OSALSEMAPHORE_WAIT_FOREVER : OsalSemaphore.h
  • OSALSEMAPHORE_WAIT_NONE : OsalSemaphore.h
  • OSALTRACE_MODULEID : Trace.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- c -

  • Cache_destroy() : _Cache_qnx.h
  • Cache_E_FAIL : Cache.h
  • Cache_E_INVALIDARG : Cache.h
  • Cache_E_OSFAILURE : Cache.h
  • Cache_inv() : Cache.h
  • Cache_Mode : Cache.h
  • Cache_Mode_BYPASS : Cache.h
  • Cache_Mode_FREEZE : Cache.h
  • Cache_Mode_NORMAL : Cache.h
  • Cache_ModuleObject : _Cache_qnx.h
  • Cache_S_ALREADYSETUP : Cache.h
  • Cache_S_SUCCESS : Cache.h
  • Cache_setMode() : Cache.h
  • Cache_setup() : _Cache_qnx.h
  • Cache_Type : Cache.h
  • Cache_Type_ALL : Cache.h
  • Cache_Type_L1 : Cache.h
  • Cache_Type_L1D : Cache.h
  • Cache_Type_L1P : Cache.h
  • Cache_Type_L2 : Cache.h
  • Cache_Type_L2D : Cache.h
  • Cache_Type_L2P : Cache.h
  • Cache_wait() : Cache.h
  • Cache_wb() : Cache.h
  • Cache_wbInv() : Cache.h
  • Cfg_prop() : Cfg.h
  • Cfg_propBool() : Cfg.h
  • Char : Std.h
  • CString : Std.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- d -

  • Double : Std.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- e -

  • Error_Block : Std.h
  • Error_init : Std.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- f -

  • FALSE : Std.h
  • Float : Std.h
  • Frame : FrameQDefs.h
  • Frame_FrameBufInfo : FrameQDefs.h
  • Frame_FrameHeader : FrameQDefs.h
  • FrameQ_alloc() : FrameQ.h
  • FrameQ_allocv() : FrameQ.h
  • FrameQ_close() : FrameQ.h
  • FrameQ_CommonOpenParams : FrameQ.h
  • FrameQ_Config : FrameQ.h
  • FrameQ_control() : FrameQ.h
  • FrameQ_CpuAccessFlags : FrameQ.h
  • FrameQ_CpuAccessFlags_Tag : FrameQ.h
  • FrameQ_create() : FrameQ.h
  • FrameQ_CreateParams : FrameQ.h
  • FrameQ_delete() : FrameQ.h
  • FrameQ_destroy() : FrameQ.h
  • FrameQ_dup() : FrameQ.h
  • FrameQ_E_ACCESSDENIED : FrameQ.h
  • FrameQ_E_ALLOC_FRAME : FrameQ.h
  • FrameQ_E_ALLOC_FRAMEBUF : FrameQ.h
  • FrameQ_E_ALLOC_MEMORY : FrameQ.h
  • FrameQ_E_ALREADYREGISTERED : FrameQ.h
  • FrameQ_E_CLIENTNOTIFYMGRREGCLIENT : FrameQ.h
  • FrameQ_E_CLIENTNOTIFYMGRUNREGCLIENT : FrameQ.h
  • FrameQ_E_CREATE_GATEMP : FrameQ.h
  • FrameQ_E_CREATE_NAMESERVER : FrameQ.h
  • FrameQ_E_EMPTY : FrameQ.h
  • FrameQ_E_FAIL : FrameQ.h
  • FrameQ_E_FAIL_CLIENTN0TIFYMGR_CREATE : FrameQ.h
  • FrameQ_E_FAIL_CLIENTN0TIFYMGR_OPEN : FrameQ.h
  • FrameQ_E_FAIL_NAMESERVERADD : FrameQ.h
  • FrameQ_E_FRAMEQBUFMGROPEN : FrameQ.h
  • FrameQ_E_FRAMEQBUFMGRREGCLIENT : FrameQ.h
  • FrameQ_E_FRAMEQBUFMGRUNREGCLIENT : FrameQ.h
  • FrameQ_E_INST_EXISTS : FrameQ.h
  • FrameQ_E_INSUFFICENT_FRAMES : FrameQ.h
  • FrameQ_E_INVALID_FRAMEQBUFMGRID : FrameQ.h
  • FrameQ_E_INVALID_INTERFACE : FrameQ.h
  • FrameQ_E_INVALIDARG : FrameQ.h
  • FrameQ_E_INVALIDSTATE : FrameQ.h
  • FrameQ_E_LISTMPOPEN : FrameQ.h
  • FrameQ_E_MAX_READERS : FrameQ.h
  • FrameQ_E_MEMORY : FrameQ.h
  • FrameQ_E_NAMESERVERADD : FrameQ.h
  • FrameQ_E_NOTFOUND : FrameQ.h
  • FrameQ_E_NOTIMPLEMENTED : FrameQ.h
  • FrameQ_E_OPEN_GATEMP : FrameQ.h
  • FrameQ_E_OPEN_NAMESERVER : FrameQ.h
  • FrameQ_E_OSFAILURE : FrameQ.h
  • FrameQ_E_WRITER_EXISTS : FrameQ.h
  • FrameQ_Frame : FrameQ.h
  • FrameQ_FRAMEBUF0_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF1_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF2_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF3_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF4_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF5_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF6_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF7_CPUACCESS : FrameQ.h
  • FrameQ_FrameBufInfo : FrameQ.h
  • FrameQ_FrameHeader : FrameQ.h
  • FrameQ_free() : FrameQ.h
  • FrameQ_freev() : FrameQ.h
  • FrameQ_get() : FrameQ.h
  • FrameQ_getConfig() : FrameQ.h
  • FrameQ_getExtendedHeaderPtr() : FrameQ.h
  • FrameQ_getFrameBufDataStartOffset() : FrameQ.h
  • FrameQ_getFrameBuffer() : FrameQ.h
  • FrameQ_getFrameBufSize() : FrameQ.h
  • FrameQ_getFrameBufValidSize() : FrameQ.h
  • FrameQ_getNumFrameBuffers() : FrameQ.h
  • FrameQ_getNumFrames() : FrameQ.h
  • FrameQ_getNumFreeFrames() : FrameQ.h
  • FrameQ_getv() : FrameQ.h
  • FrameQ_getvNumFrames() : FrameQ.h
  • FrameQ_getvNumFreeFrames() : FrameQ.h
  • FrameQ_Handle : FrameQ.h
  • FrameQ_Interface : FrameQ.h
  • FrameQ_INTERFACE_NONE : FrameQ.h
  • FrameQ_INTERFACE_SHAREDMEM : FrameQ.h
  • FrameQ_Interface_Tag : FrameQ.h
  • FrameQ_isSupportedInterface() : FrameQ.h
  • FrameQ_MAX_FRAMESINVAPI : FrameQDefs.h
  • FrameQ_MAX_INST_READERS : FrameQ.h
  • FrameQ_MAX_INSTANCES : FrameQ.h
  • FrameQ_MAX_NAMELEN : FrameQ.h
  • FrameQ_MAXFILLEDQUEUS_FOR_READER : FrameQ.h
  • FrameQ_MODE_NONE : FrameQ.h
  • FrameQ_MODE_READER : FrameQ.h
  • FrameQ_MODE_WRITER : FrameQ.h
  • FrameQ_NOTIFICATION_ALWAYS : FrameQ.h
  • FrameQ_NOTIFICATION_HDWRFIFO_ALWAYS : FrameQ.h
  • FrameQ_NOTIFICATION_HDWRFIFO_ONCE : FrameQ.h
  • FrameQ_NOTIFICATION_NONE : FrameQ.h
  • FrameQ_NOTIFICATION_ONCE : FrameQ.h
  • FrameQ_NOTIFY_RESERVED_EVENTNO : FrameQ.h
  • FrameQ_NotifyFunc : FrameQ.h
  • FrameQ_NotifyMsg : FrameQ.h
  • FrameQ_NotifyParams : FrameQ.h
  • FrameQ_NotifyType : FrameQ.h
  • FrameQ_NotifyType_Tag : FrameQ.h
  • FrameQ_open() : FrameQ.h
  • FrameQ_openByAddr() : FrameQ.h
  • FrameQ_OpenMode : FrameQ.h
  • FrameQ_OpenMode_Tag : FrameQ.h
  • FrameQ_Params : FrameQ.h
  • FrameQ_put() : FrameQ.h
  • FrameQ_putv() : FrameQ.h
  • FrameQ_registerNotifier() : FrameQ.h
  • FrameQ_S_ALREADYDESTROYED : FrameQ.h
  • FrameQ_S_ALREADYSETUP : FrameQ.h
  • FrameQ_S_SUCCESS : FrameQ.h
  • FrameQ_sendNotify() : FrameQ.h
  • FrameQ_setFrameBufDataStartOffset() : FrameQ.h
  • FrameQ_setFrameBufValidSize() : FrameQ.h
  • FrameQ_setup() : FrameQ.h
  • FrameQ_ShMem_Config : FrameQ_ShMem.h
  • FrameQ_ShMem_destroy() : FrameQ_ShMem.h
  • FrameQ_ShMem_getConfig() : FrameQ_ShMem.h
  • FrameQ_ShMem_OpenParams : FrameQ_ShMem.h
  • FrameQ_ShMem_Params : FrameQ_ShMem.h
  • FrameQ_ShMem_Params_init() : FrameQ_ShMem.h
  • FrameQ_ShMem_setup() : FrameQ_ShMem.h
  • FrameQ_ShMem_sharedMemReq() : FrameQ_ShMem.h
  • FrameQ_unregisterNotifier() : FrameQ.h
  • FrameQBufMgr_add() : FrameQBufMgr.h
  • FrameQBufMgr_AddrType : FrameQBufMgr.h
  • FrameQBufMgr_AddrType_EndValue : FrameQBufMgr.h
  • FrameQBufMgr_AddrType_Portable : FrameQBufMgr.h
  • FrameQBufMgr_AddrType_Tag : FrameQBufMgr.h
  • FrameQBufMgr_AddrType_Virtual : FrameQBufMgr.h
  • FrameQBufMgr_alloc() : FrameQBufMgr.h
  • FrameQBufMgr_allocv() : FrameQBufMgr.h
  • FrameQBufMgr_BUF_ENDVALUE : FrameQBufMgr.h
  • FrameQBufMgr_BUF_FRAMEBUF : FrameQBufMgr.h
  • FrameQBufMgr_BUF_FRAMEHEADER : FrameQBufMgr.h
  • FrameQBufMgr_BUFINTERFACE_NONE : FrameQBufMgr.h
  • FrameQBufMgr_BUFINTERFACE_SHAREDMEM : FrameQBufMgr.h
  • FrameQBufMgr_BUFINTERFACE_TILERMEM : FrameQBufMgr.h
  • FrameQBufMgr_BufType : FrameQBufMgr.h
  • FrameQBufMgr_BufType_Tag : FrameQBufMgr.h
  • FRAMEQBUFMGR_CACHE_LINESIZE : FrameQBufMgrDefs.h
  • FrameQBufMgr_close() : FrameQBufMgr.h
  • FrameQBufMgr_CommonOpenParams : FrameQBufMgr.h
  • FrameQBufMgr_Config : FrameQBufMgr.h
  • FrameQBufMgr_control() : FrameQBufMgr.h
  • FrameQBufMgr_CpuAccessFlags : FrameQBufMgr.h
  • FrameQBufMgr_CpuAccessFlags_Tag : FrameQBufMgr.h
  • FrameQBufMgr_create() : FrameQBufMgr.h
  • FrameQBufMgr_CreateParams : FrameQBufMgr.h
  • FrameQBufMgr_delete() : FrameQBufMgr.h
  • FrameQBufMgr_destroy() : FrameQBufMgr.h
  • FrameQBufMgr_dup() : FrameQBufMgr.h
  • FrameQBufMgr_dupv() : FrameQBufMgr.h
  • FrameQBufMgr_E_ACCESSDENIED : FrameQBufMgr.h
  • FrameQBufMgr_E_ALLOC_ALLFRAMES : FrameQBufMgr.h
  • FrameQBufMgr_E_ALLOC_BUF : FrameQBufMgr.h
  • FrameQBufMgr_E_ALLOC_FRAME : FrameQBufMgr.h
  • FrameQBufMgr_E_ALLOC_MEMORY : FrameQBufMgr.h
  • FrameQBufMgr_E_CLIENTN0TIFYMGR_OPEN : FrameQBufMgr.h
  • FrameQBufMgr_E_CREATE_GATEMP : FrameQBufMgr.h
  • FrameQBufMgr_E_CREATE_NAMESERVER : FrameQBufMgr.h
  • FrameQBufMgr_E_FAIL : FrameQBufMgr.h
  • FrameQBufMgr_E_FAIL_CLIENTN0TIFYMGR_CREATE : FrameQBufMgr.h
  • FrameQBufMgr_E_INST_EXISTS : FrameQBufMgr.h
  • FrameQBufMgr_E_INSUFFICIENT_HDRBUFS : FrameQBufMgr.h
  • FrameQBufMgr_E_INVALID_BUFINTERFACETYPE : FrameQBufMgr.h
  • FrameQBufMgr_E_INVALID_HDRINTERFACETYPE : FrameQBufMgr.h
  • FrameQBufMgr_E_INVALID_INTERFACE : FrameQBufMgr.h
  • FrameQBufMgr_E_INVALID_MEMMGRTYPE : FrameQBufMgr.h
  • FrameQBufMgr_E_INVALIDARG : FrameQBufMgr.h
  • FrameQBufMgr_E_INVALIDSTATE : FrameQBufMgr.h
  • FrameQBufMgr_E_MAX_CLIENTS : FrameQBufMgr.h
  • FrameQBufMgr_E_MAXINSTANCES : FrameQBufMgr.h
  • FrameQBufMgr_E_NAMESERVERADD : FrameQBufMgr.h
  • FrameQBufMgr_E_NOTFOUND : FrameQBufMgr.h
  • FrameQBufMgr_E_NOTIMPLEMENTED : FrameQBufMgr.h
  • FrameQBufMgr_E_OPEN_GATEMP : FrameQBufMgr.h
  • FrameQBufMgr_E_OPEN_NAMESERVER : FrameQBufMgr.h
  • FrameQBufMgr_E_OSFAILURE : FrameQBufMgr.h
  • FrameQBufMgr_Frame : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF0_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF1_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF2_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF3_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF4_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF5_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF6_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF7_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FrameBufferInterface : FrameQBufMgr.h
  • FrameQBufMgr_FrameBufferInterface_Tag : FrameQBufMgr.h
  • FrameQBufMgr_FrameBufInfo : FrameQBufMgr.h
  • FrameQBufMgr_FrameBufParams : FrameQBufMgr.h
  • FrameQBufMgr_FrameHeader : FrameQBufMgr.h
  • FrameQBufMgr_FrameHeaderInterface : FrameQBufMgr.h
  • FrameQBufMgr_FrameHeaderInterface_Tag : FrameQBufMgr.h
  • FrameQBufMgr_free() : FrameQBufMgr.h
  • FrameQBufMgr_freev() : FrameQBufMgr.h
  • FrameQBufMgr_getBaseHeaderSize() : FrameQBufMgr.h
  • FrameQBufMgr_getConfig() : FrameQBufMgr.h
  • FrameQBufMgr_getHandle() : FrameQBufMgr.h
  • FrameQBufMgr_getId() : FrameQBufMgr.h
  • FrameQBufMgr_getKnlHandle() : FrameQBufMgr.h
  • FrameQBufMgr_getNumFreeFrames() : FrameQBufMgr.h
  • FrameQBufMgr_Handle : FrameQBufMgr.h
  • FrameQBufMgr_HDRINTERFACE_NONE : FrameQBufMgr.h
  • FrameQBufMgr_HDRINTERFACE_SHAREDMEM : FrameQBufMgr.h
  • FrameQBufMgr_Interface : FrameQBufMgr.h
  • FrameQBufMgr_INTERFACE_NONE : FrameQBufMgr.h
  • FrameQBufMgr_INTERFACE_SHAREDMEM : FrameQBufMgr.h
  • FrameQBufMgr_Interface_Tag : FrameQBufMgr.h
  • FrameQBufMgr_invalidate() : FrameQBufMgr.h
  • FrameQBufMgr_invalidateFrameBuf() : FrameQBufMgr.h
  • FrameQBufMgr_invalidateHeaderBuf() : FrameQBufMgr.h
  • FrameQBufMgr_isCacheEnabledForFrameBuf() : FrameQBufMgr.h
  • FrameQBufMgr_isCacheEnabledForHeaderBuf() : FrameQBufMgr.h
  • FrameQBufMgr_MAX_FRAMEBUFS : FrameQBufMgr.h
  • FrameQBufMgr_MAX_FRAMESINVAPI : FrameQBufMgr.h
  • FrameQBufMgr_MAX_POOLS : FrameQBufMgr.h
  • FrameQBufMgr_MAXINSTANCES : FrameQBufMgr.h
  • FrameQBufMgr_MAXNAMELEN : FrameQBufMgr.h
  • FrameQBufMgr_NOTIFY_RESERVED_EVENTNO : FrameQBufMgr.h
  • FrameQBufMgr_NotifyFunc : FrameQBufMgr.h
  • FrameQBufMgr_NotifyParams : FrameQBufMgr.h
  • FrameQBufMgr_open() : FrameQBufMgr.h
  • FrameQBufMgr_openByAddr() : FrameQBufMgr.h
  • FrameQBufMgr_Params : FrameQBufMgr.h
  • FrameQBufMgr_POOL_DYNAMIC_MAXFRAMES : FrameQBufMgr.h
  • FrameQBufMgr_POOL_DYNAMIC_MAXHDRS : FrameQBufMgr.h
  • FrameQBufMgr_POOL_MAXFRAMES : FrameQBufMgr.h
  • FrameQBufMgr_POOL_MAXHDRS : FrameQBufMgr.h
  • FrameQBufMgr_registerNotifier() : FrameQBufMgr.h
  • FrameQBufMgr_remove() : FrameQBufMgr.h
  • FrameQBufMgr_S_ALREADYDESTROYED : FrameQBufMgr.h
  • FrameQBufMgr_S_ALREADYSETUP : FrameQBufMgr.h
  • FrameQBufMgr_S_SUCCESS : FrameQBufMgr.h
  • FrameQBufMgr_setup() : FrameQBufMgr.h
  • FrameQBufMgr_ShMem_BUFINTERFACE_SHAREDMEM : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_BUFINTERFACE_TILERMEM : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_Config : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_destroy() : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_FrameBufParams : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_getConfig() : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_HDRINTERFACE_SHAREDMEM : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_OpenParams : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_Params : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_Params_init() : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_setup() : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_sharedMemReq() : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_translateAddr() : FrameQBufMgr.h
  • FrameQBufMgr_unregisterNotifier() : FrameQBufMgr.h
  • FrameQBufMgr_writeBack() : FrameQBufMgr.h
  • FrameQBufMgr_writeBackBuf() : FrameQBufMgr.h
  • FrameQBufMgr_writeBackFrameBuf() : FrameQBufMgr.h
  • FrameQBufMgr_writeBackHeaderBuf() : FrameQBufMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- g -

  • Gate_enterSystem() : Gate.h
  • Gate_leaveSystem() : Gate.h
  • Gate_systemHandle : Gate.h
  • GateMonitor_create() : GateMonitor.h
  • GateMonitor_delete() : GateMonitor.h
  • GateMonitor_E_BUSY : GateMonitor.h
  • GateMonitor_E_FAIL : GateMonitor.h
  • GateMonitor_E_HANDLE : GateMonitor.h
  • GateMonitor_E_INUSE : GateMonitor.h
  • GateMonitor_E_INVALIDARG : GateMonitor.h
  • GateMonitor_E_INVALIDSTATE : GateMonitor.h
  • GateMonitor_E_MEMORY : GateMonitor.h
  • GateMonitor_E_NOTFOUND : GateMonitor.h
  • GateMonitor_Handle : GateMonitor.h
  • GateMonitor_Object : GateMonitor.h
  • GateMonitor_Params : GateMonitor.h
  • GateMonitor_S_SUCCESS : GateMonitor.h
  • GateMP_close() : GateMP.h
  • GateMP_create() : GateMP.h
  • GateMP_delete() : GateMP.h
  • GateMP_E_ALREADYEXISTS : GateMP.h
  • GateMP_E_FAIL : GateMP.h
  • GateMP_E_INVALIDARG : GateMP.h
  • GateMP_E_INVALIDSTATE : GateMP.h
  • GateMP_E_MEMORY : GateMP.h
  • GateMP_E_NOTFOUND : GateMP.h
  • GateMP_E_OSFAILURE : GateMP.h
  • GateMP_E_RESOURCE : GateMP.h
  • GateMP_E_RESTART : GateMP.h
  • GateMP_E_TIMEOUT : GateMP.h
  • GateMP_enter() : GateMP.h
  • GateMP_getDefaultRemote() : GateMP.h
  • GateMP_getLocalProtect() : GateMP.h
  • GateMP_getRemoteProtect() : GateMP.h
  • GateMP_Handle : GateMP.h
  • GateMP_leave() : GateMP.h
  • GateMP_LocalProtect : GateMP.h
  • GateMP_LocalProtect_INTERRUPT : GateMP.h
  • GateMP_LocalProtect_NONE : GateMP.h
  • GateMP_LocalProtect_PROCESS : GateMP.h
  • GateMP_LocalProtect_TASKLET : GateMP.h
  • GateMP_LocalProtect_THREAD : GateMP.h
  • GateMP_open() : GateMP.h
  • GateMP_Params : GateMP.h
  • GateMP_Params_init() : GateMP.h
  • GateMP_RemoteProtect : GateMP.h
  • GateMP_RemoteProtect_CUSTOM1 : GateMP.h
  • GateMP_RemoteProtect_CUSTOM2 : GateMP.h
  • GateMP_RemoteProtect_NONE : GateMP.h
  • GateMP_RemoteProtect_SYSTEM : GateMP.h
  • GateMP_S_ALREADYSETUP : GateMP.h
  • GateMP_S_BUSY : GateMP.h
  • GateMP_S_SUCCESS : GateMP.h
  • GateMutex_create() : GateMutex.h
  • GateMutex_delete() : GateMutex.h
  • GateMutex_E_BUSY : GateMutex.h
  • GateMutex_E_FAIL : GateMutex.h
  • GateMutex_E_INUSE : GateMutex.h
  • GateMutex_E_INVALIDARG : GateMutex.h
  • GateMutex_E_INVALIDSTATE : GateMutex.h
  • GateMutex_E_MEMORY : GateMutex.h
  • GateMutex_E_NOTFOUND : GateMutex.h
  • GateMutex_Handle : GateMutex.h
  • GateMutex_Object : GateMutex.h
  • GateMutex_Params : GateMutex.h
  • GateMutex_S_SUCCESS : GateMutex.h
  • GateProcess_close() : GateProcess.h
  • GateProcess_create() : GateProcess.h
  • GateProcess_delete() : GateProcess.h
  • GateProcess_E_BUSY : GateProcess.h
  • GateProcess_E_FAIL : GateProcess.h
  • GateProcess_E_INUSE : GateProcess.h
  • GateProcess_E_INVALIDARG : GateProcess.h
  • GateProcess_E_INVALIDSTATE : GateProcess.h
  • GateProcess_E_MEMORY : GateProcess.h
  • GateProcess_E_NOTFOUND : GateProcess.h
  • GateProcess_enter() : GateProcess.h
  • GateProcess_Handle : GateProcess.h
  • GateProcess_leave() : GateProcess.h
  • GateProcess_Object : GateProcess.h
  • GateProcess_open() : GateProcess.h
  • GateProcess_Params_init() : GateProcess.h
  • GateProcess_S_SUCCESS : GateProcess.h
  • GateProcess_shMemSize() : GateProcess.h
  • GateSem_create() : GateSem.h
  • GateSem_delete() : GateSem.h
  • GateSem_E_BUSY : GateSem.h
  • GateSem_E_FAIL : GateSem.h
  • GateSem_E_HANDLE : GateSem.h
  • GateSem_E_INUSE : GateSem.h
  • GateSem_E_INVALIDARG : GateSem.h
  • GateSem_E_INVALIDSTATE : GateSem.h
  • GateSem_E_MEMORY : GateSem.h
  • GateSem_E_NOTFOUND : GateSem.h
  • GateSem_Handle : GateSem.h
  • GateSem_Object : GateSem.h
  • GateSem_Params : GateSem.h
  • GateSem_S_SUCCESS : GateSem.h
  • GateSpinlock_create() : GateSpinlock.h
  • GateSpinlock_delete() : GateSpinlock.h
  • GateSpinlock_E_BUSY : GateSpinlock.h
  • GateSpinlock_E_FAIL : GateSpinlock.h
  • GateSpinlock_E_HANDLE : GateSpinlock.h
  • GateSpinlock_E_INUSE : GateSpinlock.h
  • GateSpinlock_E_INVALIDARG : GateSpinlock.h
  • GateSpinlock_E_INVALIDSTATE : GateSpinlock.h
  • GateSpinlock_E_MEMORY : GateSpinlock.h
  • GateSpinlock_E_NOTFOUND : GateSpinlock.h
  • GateSpinlock_Handle : GateSpinlock.h
  • GateSpinlock_Object : GateSpinlock.h
  • GateSpinlock_Params : GateSpinlock.h
  • GateSpinlock_S_SUCCESS : GateSpinlock.h
  • GT_0trace : Trace.h
  • GT_1CLASS : Trace.h
  • GT_1trace : Trace.h
  • GT_2CLASS : Trace.h
  • GT_2trace : Trace.h
  • GT_3CLASS : Trace.h
  • GT_3trace : Trace.h
  • GT_4CLASS : Trace.h
  • GT_4trace : Trace.h
  • GT_5trace : Trace.h
  • GT_6trace : Trace.h
  • GT_assert : Trace.h
  • GT_ENTER : Trace.h
  • GT_LEAVE : Trace.h
  • GT_setFailureReason : Trace.h
  • GT_setTrace : Trace.h
  • GT_TraceClass : Trace.h
  • GT_TRACECLASS_MASK : Trace.h
  • GT_TRACECLASS_SHIFT : Trace.h
  • GT_TraceEnter : Trace.h
  • GT_TraceEnter_Disable : Trace.h
  • GT_TraceEnter_Enable : Trace.h
  • GT_TraceEnter_EndValue : Trace.h
  • GT_TRACEENTER_MASK : Trace.h
  • GT_TRACEENTER_SHIFT : Trace.h
  • GT_TraceSetFailure : Trace.h
  • GT_TraceSetFailure_Disable : Trace.h
  • GT_TraceSetFailure_Enable : Trace.h
  • GT_TraceSetFailure_EndValue : Trace.h
  • GT_TRACESETFAILURE_MASK : Trace.h
  • GT_TRACESETFAILURE_SHIFT : Trace.h
  • GT_TraceState : Trace.h
  • GT_TraceState_Disable : Trace.h
  • GT_TraceState_Enable : Trace.h
  • GT_TraceState_EndValue : Trace.h
  • GT_TRACESTATE_MASK : Trace.h
  • GT_TRACESTATE_SHIFT : Trace.h
  • GT_TraceType : Trace.h
  • GT_TraceType_EndValue : Trace.h
  • GT_TraceType_Kernel : Trace.h
  • GT_TraceType_User : Trace.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- h -

  • HeapBufMP_alloc() : HeapBufMP.h
  • HeapBufMP_close() : HeapBufMP.h
  • HeapBufMP_create() : HeapBufMP.h
  • HeapBufMP_delete() : HeapBufMP.h
  • HeapBufMP_E_ALREADYEXISTS : HeapBufMP.h
  • HeapBufMP_E_FAIL : HeapBufMP.h
  • HeapBufMP_E_INVALIDARG : HeapBufMP.h
  • HeapBufMP_E_INVALIDSTATE : HeapBufMP.h
  • HeapBufMP_E_MEMORY : HeapBufMP.h
  • HeapBufMP_E_NOTFOUND : HeapBufMP.h
  • HeapBufMP_E_OSFAILURE : HeapBufMP.h
  • HeapBufMP_E_RESOURCE : HeapBufMP.h
  • HeapBufMP_E_RESTART : HeapBufMP.h
  • HeapBufMP_E_TIMEOUT : HeapBufMP.h
  • HeapBufMP_ExtendedStats : HeapBufMP.h
  • HeapBufMP_free() : HeapBufMP.h
  • HeapBufMP_getExtendedStats() : HeapBufMP.h
  • HeapBufMP_getStats() : HeapBufMP.h
  • HeapBufMP_Handle : HeapBufMP.h
  • HeapBufMP_open() : HeapBufMP.h
  • HeapBufMP_Params : HeapBufMP.h
  • HeapBufMP_Params_init() : HeapBufMP.h
  • HeapBufMP_S_ALREADYSETUP : HeapBufMP.h
  • HeapBufMP_S_BUSY : HeapBufMP.h
  • HeapBufMP_S_SUCCESS : HeapBufMP.h
  • HeapMemMP_alloc() : HeapMemMP.h
  • HeapMemMP_close() : HeapMemMP.h
  • HeapMemMP_create() : HeapMemMP.h
  • HeapMemMP_delete() : HeapMemMP.h
  • HeapMemMP_E_ALREADYEXISTS : HeapMemMP.h
  • HeapMemMP_E_FAIL : HeapMemMP.h
  • HeapMemMP_E_INVALIDARG : HeapMemMP.h
  • HeapMemMP_E_INVALIDSTATE : HeapMemMP.h
  • HeapMemMP_E_MEMORY : HeapMemMP.h
  • HeapMemMP_E_NOTFOUND : HeapMemMP.h
  • HeapMemMP_E_OSFAILURE : HeapMemMP.h
  • HeapMemMP_E_RESOURCE : HeapMemMP.h
  • HeapMemMP_E_RESTART : HeapMemMP.h
  • HeapMemMP_E_TIMEOUT : HeapMemMP.h
  • HeapMemMP_ExtendedStats : HeapMemMP.h
  • HeapMemMP_free() : HeapMemMP.h
  • HeapMemMP_getExtendedStats() : HeapMemMP.h
  • HeapMemMP_getStats() : HeapMemMP.h
  • HeapMemMP_Handle : HeapMemMP.h
  • HeapMemMP_open() : HeapMemMP.h
  • HeapMemMP_Params : HeapMemMP.h
  • HeapMemMP_Params_init() : HeapMemMP.h
  • HeapMemMP_restore() : HeapMemMP.h
  • HeapMemMP_S_ALREADYSETUP : HeapMemMP.h
  • HeapMemMP_S_BUSY : HeapMemMP.h
  • HeapMemMP_S_SUCCESS : HeapMemMP.h
  • HeapMultiBufMP_alloc() : HeapMultiBufMP.h
  • HeapMultiBufMP_Bucket : HeapMultiBufMP.h
  • HeapMultiBufMP_close() : HeapMultiBufMP.h
  • HeapMultiBufMP_create() : HeapMultiBufMP.h
  • HeapMultiBufMP_delete() : HeapMultiBufMP.h
  • HeapMultiBufMP_E_ALREADYEXISTS : HeapMultiBufMP.h
  • HeapMultiBufMP_E_FAIL : HeapMultiBufMP.h
  • HeapMultiBufMP_E_INVALIDARG : HeapMultiBufMP.h
  • HeapMultiBufMP_E_INVALIDSTATE : HeapMultiBufMP.h
  • HeapMultiBufMP_E_MEMORY : HeapMultiBufMP.h
  • HeapMultiBufMP_E_NOTFOUND : HeapMultiBufMP.h
  • HeapMultiBufMP_E_OSFAILURE : HeapMultiBufMP.h
  • HeapMultiBufMP_E_RESOURCE : HeapMultiBufMP.h
  • HeapMultiBufMP_E_RESTART : HeapMultiBufMP.h
  • HeapMultiBufMP_E_TIMEOUT : HeapMultiBufMP.h
  • HeapMultiBufMP_ExtendedStats : HeapMultiBufMP.h
  • HeapMultiBufMP_free() : HeapMultiBufMP.h
  • HeapMultiBufMP_getExtendedStats() : HeapMultiBufMP.h
  • HeapMultiBufMP_getStats() : HeapMultiBufMP.h
  • HeapMultiBufMP_Handle : HeapMultiBufMP.h
  • HeapMultiBufMP_MAXBUCKETS : HeapMultiBufMP.h
  • HeapMultiBufMP_open() : HeapMultiBufMP.h
  • HeapMultiBufMP_Params : HeapMultiBufMP.h
  • HeapMultiBufMP_Params_init() : HeapMultiBufMP.h
  • HeapMultiBufMP_S_ALREADYSETUP : HeapMultiBufMP.h
  • HeapMultiBufMP_S_BUSY : HeapMultiBufMP.h
  • HeapMultiBufMP_S_SUCCESS : HeapMultiBufMP.h
  • HeapQueueMgr_alloc() : HeapQueueMgr.h
  • HeapQueueMgr_close() : HeapQueueMgr.h
  • HeapQueueMgr_create() : HeapQueueMgr.h
  • HeapQueueMgr_delete() : HeapQueueMgr.h
  • HeapQueueMgr_E_ALREADYEXISTS : HeapQueueMgr.h
  • HeapQueueMgr_E_FAIL : HeapQueueMgr.h
  • HeapQueueMgr_E_INVALIDARG : HeapQueueMgr.h
  • HeapQueueMgr_E_INVALIDSTATE : HeapQueueMgr.h
  • HeapQueueMgr_E_MEMORY : HeapQueueMgr.h
  • HeapQueueMgr_E_NOTFOUND : HeapQueueMgr.h
  • HeapQueueMgr_E_OSFAILURE : HeapQueueMgr.h
  • HeapQueueMgr_E_RESOURCE : HeapQueueMgr.h
  • HeapQueueMgr_E_RESTART : HeapQueueMgr.h
  • HeapQueueMgr_E_TIMEOUT : HeapQueueMgr.h
  • HeapQueueMgr_free() : HeapQueueMgr.h
  • HeapQueueMgr_getStats() : HeapQueueMgr.h
  • HeapQueueMgr_Handle : HeapQueueMgr.h
  • HeapQueueMgr_open() : HeapQueueMgr.h
  • HeapQueueMgr_Params : HeapQueueMgr.h
  • HeapQueueMgr_Params_init() : HeapQueueMgr.h
  • HeapQueueMgr_S_ALREADYSETUP : HeapQueueMgr.h
  • HeapQueueMgr_S_BUSY : HeapQueueMgr.h
  • HeapQueueMgr_S_SUCCESS : HeapQueueMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- i -

  • IArg : Std.h
  • IGateProvider_ENTER : IGateProvider.h
  • IGateProvider_Handle : IGateProvider.h
  • IGateProvider_LEAVE : IGateProvider.h
  • IGateProvider_NULL : IGateProvider.h
  • IGateProvider_Object : IGateProvider.h
  • IGateProvider_ObjectInitializer : IGateProvider.h
  • IGateProvider_Q_BLOCKING : IGateProvider.h
  • IGateProvider_Q_PREEMPTING : IGateProvider.h
  • IGateProvider_SuperObject : IGateProvider.h
  • IHeap_allocFxn : IHeap.h
  • IHeap_freeFxn : IHeap.h
  • IHeap_getKnlHandleFxn : IHeap.h
  • IHeap_getStatsFxn : IHeap.h
  • IHeap_Handle : IHeap.h
  • IHeap_isBlockingFxn : IHeap.h
  • IHeap_Object : IHeap.h
  • Int : Std.h
  • Int16 : Std.h
  • Int32 : Std.h
  • Int8 : Std.h
  • Ipc_attach() : Ipc.h
  • Ipc_control() : IpcHost.h
  • Ipc_CONTROLCMD_LOADCALLBACK : IpcHost.h
  • Ipc_CONTROLCMD_STARTCALLBACK : IpcHost.h
  • Ipc_CONTROLCMD_STOPCALLBACK : IpcHost.h
  • Ipc_detach() : Ipc.h
  • Ipc_E_ALREADYEXISTS : Ipc.h
  • Ipc_E_FAIL : Ipc.h
  • Ipc_E_INVALIDARG : Ipc.h
  • Ipc_E_INVALIDSTATE : Ipc.h
  • Ipc_E_MEMORY : Ipc.h
  • Ipc_E_NOTFOUND : Ipc.h
  • Ipc_E_NOTREADY : Ipc.h
  • Ipc_E_OSFAILURE : Ipc.h
  • Ipc_E_RESOURCE : Ipc.h
  • Ipc_E_RESTART : Ipc.h
  • Ipc_E_TIMEOUT : Ipc.h
  • Ipc_isAttached() : Ipc.h
  • Ipc_readConfig() : Ipc.h
  • Ipc_runtimeId() : IpcHost.h
  • Ipc_S_ALREADYSETUP : Ipc.h
  • Ipc_S_BUSY : Ipc.h
  • Ipc_S_SUCCESS : Ipc.h
  • Ipc_start() : Ipc.h
  • Ipc_stop() : Ipc.h
  • Ipc_writeConfig() : Ipc.h
  • IpcMemMgr_acquire() : IpcMemMgr.h
  • IpcMemMgr_alloc() : IpcMemMgr.h
  • IpcMemMgr_allocShmemHeap() : IpcMemMgr.h
  • IpcMemMgr_ALLOCTYPE_END : IpcMemMgr.h
  • IpcMemMgr_ALLOCTYPE_PHYS_CACHE : IpcMemMgr.h
  • IpcMemMgr_ALLOCTYPE_PHYS_NOCACHE : IpcMemMgr.h
  • IpcMemMgr_ALLOCTYPE_PSHMEM : IpcMemMgr.h
  • IpcMemMgr_Config : IpcMemMgr.h
  • IpcMemMgr_destroy() : IpcMemMgr.h
  • IpcMemMgr_E_FAIL : IpcMemMgr.h
  • IpcMemMgr_E_INVALIDARG : IpcMemMgr.h
  • IpcMemMgr_E_INVALIDSTATE : IpcMemMgr.h
  • IpcMemMgr_E_MEMORY : IpcMemMgr.h
  • IpcMemMgr_E_NOTFOUND : IpcMemMgr.h
  • IpcMemMgr_E_OSFAILURE : IpcMemMgr.h
  • IpcMemMgr_E_TOOMANYNAMEDALLOCS : IpcMemMgr.h
  • IpcMemMgr_E_WRONGSIZE : IpcMemMgr.h
  • IpcMemMgr_enterGate() : IpcMemMgr.h
  • IpcMemMgr_free() : IpcMemMgr.h
  • IpcMemMgr_freeShmemHeap() : IpcMemMgr.h
  • IpcMemMgr_freeShmemHeapByName() : IpcMemMgr.h
  • IpcMemMgr_getConfig() : IpcMemMgr.h
  • IpcMemMgr_getOffset() : IpcMemMgr.h
  • IpcMemMgr_getPtr() : IpcMemMgr.h
  • IpcMemMgr_leaveGate() : IpcMemMgr.h
  • IpcMemMgr_MAX_NAMELEN : IpcMemMgr.h
  • IpcMemMgr_MAXNAMEDBUFFERS : IpcMemMgr.h
  • IpcMemMgr_MemType : IpcMemMgr.h
  • IpcMemMgr_MODULEID : IpcMemMgr.h
  • IpcMemMgr_release() : IpcMemMgr.h
  • IpcMemMgr_S_ALREADYSETUP : IpcMemMgr.h
  • IpcMemMgr_S_NOTLAST : IpcMemMgr.h
  • IpcMemMgr_S_SUCCESS : IpcMemMgr.h
  • IpcMemMgr_setup() : IpcMemMgr.h
  • IpcMemMgr_SHAREDMEMNAME : IpcMemMgr.h
  • IpcMemMgr_SHPtr : IpcMemMgr.h
  • IS_VALID_PROCID : ProcMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- p -

  • ProcMgr_AddrInfo : ProcMgr.h
  • ProcMgr_AddrType : ProcMgr.h
  • ProcMgr_AddrType_EndValue : ProcMgr.h
  • ProcMgr_AddrType_MasterKnlVirt : ProcMgr.h
  • ProcMgr_AddrType_MasterPhys : ProcMgr.h
  • ProcMgr_AddrType_MasterUsrVirt : ProcMgr.h
  • ProcMgr_AddrType_SlavePhys : ProcMgr.h
  • ProcMgr_AddrType_SlaveVirt : ProcMgr.h
  • ProcMgr_attach() : ProcMgr.h
  • ProcMgr_AttachParams : ProcMgr.h
  • ProcMgr_BootMode : ProcMgr.h
  • ProcMgr_BootMode_Boot : ProcMgr.h
  • ProcMgr_BootMode_EndValue : ProcMgr.h
  • ProcMgr_BootMode_NoBoot : ProcMgr.h
  • ProcMgr_BootMode_NoLoad_NoPwr : ProcMgr.h
  • ProcMgr_BootMode_NoLoad_Pwr : ProcMgr.h
  • ProcMgr_close() : ProcMgr.h
  • ProcMgr_control() : ProcMgr.h
  • ProcMgr_detach() : ProcMgr.h
  • ProcMgr_E_ACCESSDENIED : ProcMgr.h
  • ProcMgr_E_ALREADYEXISTS : ProcMgr.h
  • ProcMgr_E_FAIL : ProcMgr.h
  • ProcMgr_E_HANDLE : ProcMgr.h
  • ProcMgr_E_INVALIDARG : ProcMgr.h
  • ProcMgr_E_INVALIDSTATE : ProcMgr.h
  • ProcMgr_E_MAP : ProcMgr.h
  • ProcMgr_E_MEMORY : ProcMgr.h
  • ProcMgr_E_NOTFOUND : ProcMgr.h
  • ProcMgr_E_OSFAILURE : ProcMgr.h
  • ProcMgr_E_RESOURCE : ProcMgr.h
  • ProcMgr_E_RESTART : ProcMgr.h
  • ProcMgr_E_SYMBOLNOTFOUND : ProcMgr.h
  • ProcMgr_E_TIMEOUT : ProcMgr.h
  • ProcMgr_E_TRANSLATE : ProcMgr.h
  • ProcMgr_getAttachParams() : ProcMgr.h
  • ProcMgr_getLoadedFileId() : ProcMgr.h
  • ProcMgr_getMaxMemoryRegions() : ProcMgr.h
  • ProcMgr_getProcInfo() : ProcMgr.h
  • ProcMgr_getSectionData() : ProcMgr.h
  • ProcMgr_getSectionInfo() : ProcMgr.h
  • ProcMgr_getStartParams() : ProcMgr.h
  • ProcMgr_getState() : ProcMgr.h
  • ProcMgr_getSymbolAddress() : ProcMgr.h
  • ProcMgr_Handle : ProcMgr.h
  • ProcMgr_load() : ProcMgr.h
  • ProcMgr_map() : ProcMgr.h
  • ProcMgr_MapMask : ProcMgr.h
  • ProcMgr_MappedMemEntry : ProcMgr.h
  • ProcMgr_MASTERKNLVIRT : ProcMgr.h
  • ProcMgr_MASTERUSRVIRT : ProcMgr.h
  • ProcMgr_open() : ProcMgr.h
  • ProcMgr_ProcInfo : ProcMgr.h
  • ProcMgr_read() : ProcMgr.h
  • ProcMgr_S_ALREADYEXISTS : ProcMgr.h
  • ProcMgr_S_ALREADYSETUP : ProcMgr.h
  • ProcMgr_S_BUSY : ProcMgr.h
  • ProcMgr_S_OPENHANDLE : ProcMgr.h
  • ProcMgr_S_SETUP : ProcMgr.h
  • ProcMgr_S_SUCCESS : ProcMgr.h
  • ProcMgr_SectionInfo : ProcMgr.h
  • ProcMgr_SLAVEVIRT : ProcMgr.h
  • ProcMgr_start() : ProcMgr.h
  • ProcMgr_StartParams : ProcMgr.h
  • ProcMgr_State : ProcMgr.h
  • ProcMgr_State_EndValue : ProcMgr.h
  • ProcMgr_State_Loaded : ProcMgr.h
  • ProcMgr_State_Powered : ProcMgr.h
  • ProcMgr_State_Reset : ProcMgr.h
  • ProcMgr_State_Running : ProcMgr.h
  • ProcMgr_State_Unavailable : ProcMgr.h
  • ProcMgr_State_Unknown : ProcMgr.h
  • ProcMgr_stop() : ProcMgr.h
  • ProcMgr_translateAddr() : ProcMgr.h
  • ProcMgr_unload() : ProcMgr.h
  • ProcMgr_unmap() : ProcMgr.h
  • ProcMgr_write() : ProcMgr.h
  • Ptr : Std.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- r -

  • ResTrack_create() : ResTrack.h
  • ResTrack_delete() : ResTrack.h
  • ResTrack_E_FAIL : ResTrack.h
  • ResTrack_E_MEMORY : ResTrack.h
  • ResTrack_E_NOTFOUND : ResTrack.h
  • ResTrack_E_PID : ResTrack.h
  • ResTrack_Fxn : ResTrack.h
  • ResTrack_Handle : ResTrack.h
  • ResTrack_Params_init() : ResTrack.h
  • ResTrack_pop() : ResTrack.h
  • ResTrack_push() : ResTrack.h
  • ResTrack_register() : ResTrack.h
  • ResTrack_remove() : ResTrack.h
  • ResTrack_S_SUCCESS : ResTrack.h
  • ResTrack_unregister() : ResTrack.h
  • RingIO_acquire() : RingIO.h
  • RingIO_BufPtr : RingIO.h
  • RingIO_cancel() : RingIO.h
  • RingIO_close() : RingIO.h
  • RingIO_create() : RingIO.h
  • RingIO_DATABUF_MAINTAINCACHE : RingIO.h
  • RingIO_delete() : RingIO.h
  • RingIO_E_ALREADYEXISTS : RingIO.h
  • RingIO_E_BADVERSION : RingIO.h
  • RingIO_E_BUFEMPTY : RingIO.h
  • RingIO_E_BUFFULL : RingIO.h
  • RingIO_E_BUFWRAP : RingIO.h
  • RingIO_E_FAIL : RingIO.h
  • RingIO_E_INUSE : RingIO.h
  • RingIO_E_INVALIDARG : RingIO.h
  • RingIO_E_INVALIDCONTEXT : RingIO.h
  • RingIO_E_INVALIDHEAPID : RingIO.h
  • RingIO_E_INVALIDMSG : RingIO.h
  • RingIO_E_INVALIDPROCID : RingIO.h
  • RingIO_E_INVALIDSTATE : RingIO.h
  • RingIO_E_MAXREACHED : RingIO.h
  • RingIO_E_MEMORY : RingIO.h
  • RingIO_E_NOTFOUND : RingIO.h
  • RingIO_E_NOTIFYFAIL : RingIO.h
  • RingIO_E_NOTOWNER : RingIO.h
  • RingIO_E_OSFAILURE : RingIO.h
  • RingIO_E_PENDINGATTRIBUTE : RingIO.h
  • RingIO_E_PENDINGDATA : RingIO.h
  • RingIO_E_REMOTEACTIVE : RingIO.h
  • RingIO_E_RESOURCE : RingIO.h
  • RingIO_E_RESTART : RingIO.h
  • RingIO_E_TIMEOUT : RingIO.h
  • RingIO_E_VARIABLEATTRIBUTE : RingIO.h
  • RingIO_E_WRONGSTATE : RingIO.h
  • RingIO_Flags : RingIO.h
  • RingIO_Flags_tag : RingIO.h
  • RingIO_flush() : RingIO.h
  • RingIO_getAcquiredOffset() : RingIO.h
  • RingIO_getAcquiredSize() : RingIO.h
  • RingIO_getAttribute() : RingIO.h
  • RingIO_getEmptyAttrSize() : RingIO.h
  • RingIO_getEmptySize() : RingIO.h
  • RingIO_getValidAttrSize() : RingIO.h
  • RingIO_getValidSize() : RingIO.h
  • RingIO_getvAttribute() : RingIO.h
  • RingIO_getWaterMark() : RingIO.h
  • RingIO_Handle : RingIO.h
  • RingIO_MODE_READER : RingIO.h
  • RingIO_MODE_WRITER : RingIO.h
  • RingIO_NEED_EXACT_SIZE : RingIO.h
  • RingIO_NOTIFICATION_ALWAYS : RingIO.h
  • RingIO_NOTIFICATION_HDWRFIFO_ALWAYS : RingIO.h
  • RingIO_NOTIFICATION_HDWRFIFO_ONCE : RingIO.h
  • RingIO_NOTIFICATION_NONE : RingIO.h
  • RingIO_NOTIFICATION_ONCE : RingIO.h
  • RingIO_NotifyFxn : RingIO.h
  • RingIO_NotifyMsg : RingIO.h
  • RingIO_NotifyType : RingIO.h
  • RingIO_NotifyType_Tag : RingIO.h
  • RingIO_open() : RingIO.h
  • RingIO_openByAddr() : RingIO.h
  • RingIO_OpenMode : RingIO.h
  • RingIO_OpenMode_Tag : RingIO.h
  • RingIO_openParams : RingIO.h
  • RingIO_Params : RingIO.h
  • RingIO_Params_init() : RingIO.h
  • RingIO_registerNotifier() : RingIO.h
  • RingIO_release() : RingIO.h
  • RingIO_S_ALREADYSETUP : RingIO.h
  • RingIO_S_BUSY : RingIO.h
  • RingIO_S_NOTCONTIGUOUSDATA : RingIO.h
  • RingIO_S_PENDINGATTRIBUTE : RingIO.h
  • RingIO_S_SUCCESS : RingIO.h
  • RingIO_sendNotify() : RingIO.h
  • RingIO_setAttribute() : RingIO.h
  • RingIO_setNotifyType() : RingIO.h
  • RingIO_setvAttribute() : RingIO.h
  • RingIO_setWaterMark() : RingIO.h
  • RingIO_sharedMemReq() : RingIO.h
  • RingIO_sharedMemReqDetails : RingIO.h
  • RingIO_Type : RingIO.h
  • RingIO_Type_SHAREDMEM : RingIO.h
  • RingIO_Type_Tag : RingIO.h
  • RingIO_unregisterNotifier() : RingIO.h
  • RingIOShm_E_BADVERSION : RingIOShm.h
  • RingIOShm_E_BUFEMPTY : RingIOShm.h
  • RingIOShm_E_BUFFULL : RingIOShm.h
  • RingIOShm_E_BUFWRAP : RingIOShm.h
  • RingIOShm_E_FAIL : RingIOShm.h
  • RingIOShm_E_INVALIDARG : RingIOShm.h
  • RingIOShm_E_INVALIDCONTEXT : RingIOShm.h
  • RingIOShm_E_INVALIDPROCID : RingIOShm.h
  • RingIOShm_E_INVALIDSTATE : RingIOShm.h
  • RingIOShm_E_MEMORY : RingIOShm.h
  • RingIOShm_E_OSFAILURE : RingIOShm.h
  • RingIOShm_E_PENDINGDATA : RingIOShm.h
  • RingIOShm_E_VARIABLEATTRIBUTE : RingIOShm.h
  • RingIOShm_E_WRONGSTATE : RingIOShm.h
  • RingIOShm_MODULEID : RingIOShm.h
  • RingIOShm_Params : RingIOShm.h
  • RingIOShm_Params_init() : RingIOShm.h
  • RingIOShm_S_ALREADYSETUP : RingIOShm.h
  • RingIOShm_S_PENDINGATTRIBUTE : RingIOShm.h
  • RingIOShm_S_SUCCESS : RingIOShm.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- s -

  • SharedRegion_clearEntry() : SharedRegion.h
  • SharedRegion_E_ALREADYEXISTS : SharedRegion.h
  • SharedRegion_E_FAIL : SharedRegion.h
  • SharedRegion_E_INVALIDARG : SharedRegion.h
  • SharedRegion_E_INVALIDSTATE : SharedRegion.h
  • SharedRegion_E_MEMORY : SharedRegion.h
  • SharedRegion_E_NOTFOUND : SharedRegion.h
  • SharedRegion_E_OSFAILURE : SharedRegion.h
  • SharedRegion_E_RESOURCE : SharedRegion.h
  • SharedRegion_E_RESTART : SharedRegion.h
  • SharedRegion_E_TIMEOUT : SharedRegion.h
  • SharedRegion_Entry : SharedRegion.h
  • SharedRegion_entryInit() : SharedRegion.h
  • SharedRegion_getCacheLineSize() : SharedRegion.h
  • SharedRegion_getEntry() : SharedRegion.h
  • SharedRegion_getHeap() : SharedRegion.h
  • SharedRegion_getId() : SharedRegion.h
  • SharedRegion_getIdByName() : SharedRegion.h
  • SharedRegion_getNumRegions() : SharedRegion.h
  • SharedRegion_getPtr() : SharedRegion.h
  • SharedRegion_getSRPtr() : SharedRegion.h
  • SharedRegion_INVALIDREGIONID : SharedRegion.h
  • SharedRegion_invalidSRPtr() : SharedRegion.h
  • SharedRegion_isCacheEnabled() : SharedRegion.h
  • SharedRegion_S_ALREADYSETUP : SharedRegion.h
  • SharedRegion_S_BUSY : SharedRegion.h
  • SharedRegion_S_SUCCESS : SharedRegion.h
  • SharedRegion_setEntry() : SharedRegion.h
  • SharedRegion_SRPtr : SharedRegion.h
  • SharedRegion_translateEnabled() : SharedRegion.h
  • Short : Std.h
  • SizeT : Std.h
  • String : Std.h
  • String_cat() : String.h
  • String_cmp() : String.h
  • String_cpy() : String.h
  • String_hash() : String.h
  • String_hexToStr() : String.h
  • String_len() : String.h
  • String_ncmp() : String.h
  • String_ncpy() : String.h
  • SysLink_destroy() : SysLink.h
  • SysLink_params : SysLink.h
  • SysLink_setup() : SysLink.h
  • SyslinkMemMgr_AddrType : SyslinkMemMgr.h
  • SyslinkMemMgr_AddrType_EndValue : SyslinkMemMgr.h
  • SyslinkMemMgr_AddrType_Portable : SyslinkMemMgr.h
  • SyslinkMemMgr_AddrType_Virtual : SyslinkMemMgr.h
  • SyslinkMemMgr_alloc() : SyslinkMemMgr.h
  • SyslinkMemMgr_AllocBlock : SyslinkMemMgr.h
  • SyslinkMemMgr_AllocParams : SyslinkMemMgr.h
  • SyslinkMemMgr_create() : SyslinkMemMgr.h
  • SyslinkMemMgr_CreateParams : SyslinkMemMgr.h
  • SyslinkMemMgr_delete() : SyslinkMemMgr.h
  • SyslinkMemMgr_destroy() : SyslinkMemMgr.h
  • SyslinkMemMgr_free() : SyslinkMemMgr.h
  • SyslinkMemMgr_getKnlHandle() : SyslinkMemMgr.h
  • SyslinkMemMgr_Handle : SyslinkMemMgr.h
  • SyslinkMemMgr_map() : SyslinkMemMgr.h
  • SyslinkMemMgr_Object : SyslinkMemMgr.h
  • SyslinkMemMgr_Params : SyslinkMemMgr.h
  • SyslinkMemMgr_setup() : SyslinkMemMgr.h
  • SyslinkMemMgr_translate() : SyslinkMemMgr.h
  • SyslinkMemMgr_Type : SyslinkMemMgr.h
  • SyslinkMemMgr_TYPE_SHAREDMEM : SyslinkMemMgr.h
  • SyslinkMemMgr_TYPE_TILERMEM : SyslinkMemMgr.h
  • SyslinkMemMgr_Type_Type_tag : SyslinkMemMgr.h
  • SyslinkMemMgr_unmap() : SyslinkMemMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- t -

  • TRUE : Std.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- u -

  • UArg : Std.h
  • UChar : Std.h
  • UInt : Std.h
  • UInt16 : Std.h
  • UInt32 : Std.h
  • UInt8 : Std.h
  • ULong : Std.h
  • UShort : Std.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- v -

  • Void : Std.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- c -

  • Cache_E_FAIL : Cache.h
  • Cache_E_INVALIDARG : Cache.h
  • Cache_E_OSFAILURE : Cache.h
  • Cache_S_ALREADYSETUP : Cache.h
  • Cache_S_SUCCESS : Cache.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- l -

  • List_traverse : List.h
  • ListMP_E_ALREADYEXISTS : ListMP.h
  • ListMP_E_FAIL : ListMP.h
  • ListMP_E_INVALIDARG : ListMP.h
  • ListMP_E_INVALIDSTATE : ListMP.h
  • ListMP_E_MEMORY : ListMP.h
  • ListMP_E_NOTFOUND : ListMP.h
  • ListMP_E_OSFAILURE : ListMP.h
  • ListMP_E_RESOURCE : ListMP.h
  • ListMP_E_RESTART : ListMP.h
  • ListMP_E_TIMEOUT : ListMP.h
  • ListMP_S_ALREADYSETUP : ListMP.h
  • ListMP_S_BUSY : ListMP.h
  • ListMP_S_SUCCESS : ListMP.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- m -

  • MEMMGR_MAX_NAME_LENGTH : SyslinkMemMgr.h
  • MEMMGR_MAX_TILER_BLOCKS : SyslinkMemMgr.h
  • Memory_copy : Memory.h
  • Memory_map : _Memory.h
  • Memory_MapInfo : _MemoryDefs.h
  • Memory_Q_BLOCKING : Memory.h
  • Memory_set : Memory.h
  • Memory_SGList : _MemoryDefs.h
  • Memory_unmap : _Memory.h
  • Memory_UnmapInfo : _MemoryDefs.h
  • MEMORYOS_E_FAIL : _MemoryOS.h
  • MEMORYOS_E_INVALIDARG : _MemoryOS.h
  • MEMORYOS_E_INVALIDSTATE : _MemoryOS.h
  • MEMORYOS_E_MAP : _MemoryOS.h
  • MEMORYOS_E_MEMORY : _MemoryOS.h
  • MEMORYOS_E_UNMAP : _MemoryOS.h
  • MEMORYOS_MAKE_FAILURE : _MemoryOS.h
  • MEMORYOS_MAKE_SUCCESS : _MemoryOS.h
  • MEMORYOS_MODULEID : _MemoryOS.h
  • MEMORYOS_S_ALREADYSETUP : _MemoryOS.h
  • MEMORYOS_S_SUCCESS : _MemoryOS.h
  • MEMORYOS_STATUSCODEBASE : _MemoryOS.h
  • MessageQ_E_ALREADYEXISTS : MessageQ.h
  • MessageQ_E_CANNOTFREESTATICMSG : MessageQ.h
  • MessageQ_E_FAIL : MessageQ.h
  • MessageQ_E_INVALIDARG : MessageQ.h
  • MessageQ_E_INVALIDHEAPID : MessageQ.h
  • MessageQ_E_INVALIDMSG : MessageQ.h
  • MessageQ_E_INVALIDPROCID : MessageQ.h
  • MessageQ_E_INVALIDSTATE : MessageQ.h
  • MessageQ_E_MAXREACHED : MessageQ.h
  • MessageQ_E_MEMORY : MessageQ.h
  • MessageQ_E_NOTFOUND : MessageQ.h
  • MessageQ_E_NOTOWNER : MessageQ.h
  • MessageQ_E_OSFAILURE : MessageQ.h
  • MessageQ_E_REMOTEACTIVE : MessageQ.h
  • MessageQ_E_RESOURCE : MessageQ.h
  • MessageQ_E_RESTART : MessageQ.h
  • MessageQ_E_TIMEOUT : MessageQ.h
  • MessageQ_E_UNBLOCKED : MessageQ.h
  • MessageQ_E_UNREGISTEREDHEAPID : MessageQ.h
  • MessageQ_FOREVER : MessageQ.h
  • MessageQ_getDstQueue : MessageQ.h
  • MessageQ_getMsgId : MessageQ.h
  • MessageQ_getMsgPri : MessageQ.h
  • MessageQ_getMsgSize : MessageQ.h
  • MessageQ_getProcId : MessageQ.h
  • MessageQ_getReplyQueue : MessageQ.h
  • MessageQ_INVALIDMESSAGEQ : MessageQ.h
  • MessageQ_INVALIDMSGID : MessageQ.h
  • MessageQ_PRIORITYMASK : MessageQ.h
  • MessageQ_S_ALREADYSETUP : MessageQ.h
  • MessageQ_S_BUSY : MessageQ.h
  • MessageQ_S_SUCCESS : MessageQ.h
  • MessageQ_setMsgId : MessageQ.h
  • MessageQ_setMsgPri : MessageQ.h
  • MultiProc_E_ALREADYEXISTS : MultiProc.h
  • MultiProc_E_FAIL : MultiProc.h
  • MultiProc_E_INVALIDARG : MultiProc.h
  • MultiProc_E_INVALIDSTATE : MultiProc.h
  • MultiProc_E_MEMORY : MultiProc.h
  • MultiProc_E_NOTFOUND : MultiProc.h
  • MultiProc_E_OSFAILURE : MultiProc.h
  • MultiProc_E_RESOURCE : MultiProc.h
  • MultiProc_E_RESTART : MultiProc.h
  • MultiProc_E_TIMEOUT : MultiProc.h
  • MultiProc_INVALIDID : MultiProc.h
  • MultiProc_S_ALREADYSETUP : MultiProc.h
  • MultiProc_S_BUSY : MultiProc.h
  • MultiProc_S_SUCCESS : MultiProc.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- n -

  • NameServer_ALLOWGROWTH : NameServer.h
  • NameServer_E_ALREADYEXISTS : NameServer.h
  • NameServer_E_FAIL : NameServer.h
  • NameServer_E_INVALIDARG : NameServer.h
  • NameServer_E_INVALIDSTATE : NameServer.h
  • NameServer_E_MEMORY : NameServer.h
  • NameServer_E_NOTFOUND : NameServer.h
  • NameServer_E_OSFAILURE : NameServer.h
  • NameServer_E_RESOURCE : NameServer.h
  • NameServer_E_RESTART : NameServer.h
  • NameServer_E_TIMEOUT : NameServer.h
  • NameServer_Params_MAXNAMELEN : NameServer.h
  • NameServer_S_ALREADYSETUP : NameServer.h
  • NameServer_S_BUSY : NameServer.h
  • NameServer_S_SUCCESS : NameServer.h
  • Notify_E_ALREADYEXISTS : Notify.h
  • Notify_E_ALREADYSETUP : Notify.h
  • Notify_E_BUSY : Notify.h
  • Notify_E_DRIVERNOTREGISTERED : Notify.h
  • Notify_E_EVTDISABLED : Notify.h
  • Notify_E_EVTNOTREGISTERED : Notify.h
  • Notify_E_EVTRESERVED : Notify.h
  • Notify_E_FAIL : Notify.h
  • Notify_E_INVALIDARG : Notify.h
  • Notify_E_INVALIDSTATE : Notify.h
  • Notify_E_MEMORY : Notify.h
  • Notify_E_NOTFOUND : Notify.h
  • Notify_E_NOTINITIALIZED : Notify.h
  • Notify_E_OSFAILURE : Notify.h
  • Notify_E_RESOURCE : Notify.h
  • Notify_E_RESTART : Notify.h
  • Notify_E_TIMEOUT : Notify.h
  • Notify_MAX_INTLINES : Notify.h
  • Notify_MAXEVENTS : Notify.h
  • Notify_S_ALREADYSETUP : Notify.h
  • Notify_S_BUSY : Notify.h
  • Notify_S_SUCCESS : Notify.h
  • Notify_SYSTEMKEY : Notify.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- o -

  • OSALPRINT_MODULEID : OsalPrint.h
  • OSALSEMAPHORE_E_FAIL : OsalSemaphore.h
  • OSALSEMAPHORE_E_HANDLE : OsalSemaphore.h
  • OSALSEMAPHORE_E_INVALIDARG : OsalSemaphore.h
  • OSALSEMAPHORE_E_MEMORY : OsalSemaphore.h
  • OSALSEMAPHORE_E_RESOURCE : OsalSemaphore.h
  • OSALSEMAPHORE_E_TIMEOUT : OsalSemaphore.h
  • OSALSEMAPHORE_E_WAITNONE : OsalSemaphore.h
  • OSALSEMAPHORE_INTTYPE_VALUE : OsalSemaphore.h
  • OSALSEMAPHORE_MAKE_FAILURE : OsalSemaphore.h
  • OSALSEMAPHORE_MAKE_SUCCESS : OsalSemaphore.h
  • OSALSEMAPHORE_MODULEID : OsalSemaphore.h
  • OSALSEMAPHORE_STATUSCODEBASE : OsalSemaphore.h
  • OSALSEMAPHORE_SUCCESS : OsalSemaphore.h
  • OSALSEMAPHORE_TYPE_VALUE : OsalSemaphore.h
  • OSALSEMAPHORE_WAIT_FOREVER : OsalSemaphore.h
  • OSALSEMAPHORE_WAIT_NONE : OsalSemaphore.h
  • OSALTRACE_MODULEID : Trace.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- e -

  • Error_init : Std.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- f -

  • FALSE : Std.h
  • FrameQ_E_ACCESSDENIED : FrameQ.h
  • FrameQ_E_ALLOC_FRAME : FrameQ.h
  • FrameQ_E_ALLOC_FRAMEBUF : FrameQ.h
  • FrameQ_E_ALLOC_MEMORY : FrameQ.h
  • FrameQ_E_ALREADYREGISTERED : FrameQ.h
  • FrameQ_E_CLIENTNOTIFYMGRREGCLIENT : FrameQ.h
  • FrameQ_E_CLIENTNOTIFYMGRUNREGCLIENT : FrameQ.h
  • FrameQ_E_CREATE_GATEMP : FrameQ.h
  • FrameQ_E_CREATE_NAMESERVER : FrameQ.h
  • FrameQ_E_EMPTY : FrameQ.h
  • FrameQ_E_FAIL : FrameQ.h
  • FrameQ_E_FAIL_CLIENTN0TIFYMGR_CREATE : FrameQ.h
  • FrameQ_E_FAIL_CLIENTN0TIFYMGR_OPEN : FrameQ.h
  • FrameQ_E_FAIL_NAMESERVERADD : FrameQ.h
  • FrameQ_E_FRAMEQBUFMGROPEN : FrameQ.h
  • FrameQ_E_FRAMEQBUFMGRREGCLIENT : FrameQ.h
  • FrameQ_E_FRAMEQBUFMGRUNREGCLIENT : FrameQ.h
  • FrameQ_E_INST_EXISTS : FrameQ.h
  • FrameQ_E_INSUFFICENT_FRAMES : FrameQ.h
  • FrameQ_E_INVALID_FRAMEQBUFMGRID : FrameQ.h
  • FrameQ_E_INVALID_INTERFACE : FrameQ.h
  • FrameQ_E_INVALIDARG : FrameQ.h
  • FrameQ_E_INVALIDSTATE : FrameQ.h
  • FrameQ_E_LISTMPOPEN : FrameQ.h
  • FrameQ_E_MAX_READERS : FrameQ.h
  • FrameQ_E_MEMORY : FrameQ.h
  • FrameQ_E_NAMESERVERADD : FrameQ.h
  • FrameQ_E_NOTFOUND : FrameQ.h
  • FrameQ_E_NOTIMPLEMENTED : FrameQ.h
  • FrameQ_E_OPEN_GATEMP : FrameQ.h
  • FrameQ_E_OPEN_NAMESERVER : FrameQ.h
  • FrameQ_E_OSFAILURE : FrameQ.h
  • FrameQ_E_WRITER_EXISTS : FrameQ.h
  • FrameQ_FrameBufInfo : FrameQ.h
  • FrameQ_FrameHeader : FrameQ.h
  • FrameQ_MAX_FRAMESINVAPI : FrameQDefs.h
  • FrameQ_MAX_INST_READERS : FrameQ.h
  • FrameQ_MAX_INSTANCES : FrameQ.h
  • FrameQ_MAX_NAMELEN : FrameQ.h
  • FrameQ_MAXFILLEDQUEUS_FOR_READER : FrameQ.h
  • FrameQ_NOTIFY_RESERVED_EVENTNO : FrameQ.h
  • FrameQ_S_ALREADYDESTROYED : FrameQ.h
  • FrameQ_S_ALREADYSETUP : FrameQ.h
  • FrameQ_S_SUCCESS : FrameQ.h
  • FRAMEQBUFMGR_CACHE_LINESIZE : FrameQBufMgrDefs.h
  • FrameQBufMgr_E_ACCESSDENIED : FrameQBufMgr.h
  • FrameQBufMgr_E_ALLOC_ALLFRAMES : FrameQBufMgr.h
  • FrameQBufMgr_E_ALLOC_BUF : FrameQBufMgr.h
  • FrameQBufMgr_E_ALLOC_FRAME : FrameQBufMgr.h
  • FrameQBufMgr_E_ALLOC_MEMORY : FrameQBufMgr.h
  • FrameQBufMgr_E_CLIENTN0TIFYMGR_OPEN : FrameQBufMgr.h
  • FrameQBufMgr_E_CREATE_GATEMP : FrameQBufMgr.h
  • FrameQBufMgr_E_CREATE_NAMESERVER : FrameQBufMgr.h
  • FrameQBufMgr_E_FAIL : FrameQBufMgr.h
  • FrameQBufMgr_E_FAIL_CLIENTN0TIFYMGR_CREATE : FrameQBufMgr.h
  • FrameQBufMgr_E_INST_EXISTS : FrameQBufMgr.h
  • FrameQBufMgr_E_INSUFFICIENT_HDRBUFS : FrameQBufMgr.h
  • FrameQBufMgr_E_INVALID_BUFINTERFACETYPE : FrameQBufMgr.h
  • FrameQBufMgr_E_INVALID_HDRINTERFACETYPE : FrameQBufMgr.h
  • FrameQBufMgr_E_INVALID_INTERFACE : FrameQBufMgr.h
  • FrameQBufMgr_E_INVALID_MEMMGRTYPE : FrameQBufMgr.h
  • FrameQBufMgr_E_INVALIDARG : FrameQBufMgr.h
  • FrameQBufMgr_E_INVALIDSTATE : FrameQBufMgr.h
  • FrameQBufMgr_E_MAX_CLIENTS : FrameQBufMgr.h
  • FrameQBufMgr_E_MAXINSTANCES : FrameQBufMgr.h
  • FrameQBufMgr_E_NAMESERVERADD : FrameQBufMgr.h
  • FrameQBufMgr_E_NOTFOUND : FrameQBufMgr.h
  • FrameQBufMgr_E_NOTIMPLEMENTED : FrameQBufMgr.h
  • FrameQBufMgr_E_OPEN_GATEMP : FrameQBufMgr.h
  • FrameQBufMgr_E_OPEN_NAMESERVER : FrameQBufMgr.h
  • FrameQBufMgr_E_OSFAILURE : FrameQBufMgr.h
  • FrameQBufMgr_FrameBufInfo : FrameQBufMgr.h
  • FrameQBufMgr_FrameHeader : FrameQBufMgr.h
  • FrameQBufMgr_MAX_FRAMEBUFS : FrameQBufMgr.h
  • FrameQBufMgr_MAX_FRAMESINVAPI : FrameQBufMgr.h
  • FrameQBufMgr_MAX_POOLS : FrameQBufMgr.h
  • FrameQBufMgr_MAXINSTANCES : FrameQBufMgr.h
  • FrameQBufMgr_MAXNAMELEN : FrameQBufMgr.h
  • FrameQBufMgr_NOTIFY_RESERVED_EVENTNO : FrameQBufMgr.h
  • FrameQBufMgr_POOL_DYNAMIC_MAXFRAMES : FrameQBufMgr.h
  • FrameQBufMgr_POOL_DYNAMIC_MAXHDRS : FrameQBufMgr.h
  • FrameQBufMgr_POOL_MAXFRAMES : FrameQBufMgr.h
  • FrameQBufMgr_POOL_MAXHDRS : FrameQBufMgr.h
  • FrameQBufMgr_S_ALREADYDESTROYED : FrameQBufMgr.h
  • FrameQBufMgr_S_ALREADYSETUP : FrameQBufMgr.h
  • FrameQBufMgr_S_SUCCESS : FrameQBufMgr.h
  • FrameQBufMgr_ShMem_BUFINTERFACE_SHAREDMEM : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_BUFINTERFACE_TILERMEM : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_FrameBufParams : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_HDRINTERFACE_SHAREDMEM : FrameQBufMgr_ShMem.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- g -

  • GateMonitor_E_BUSY : GateMonitor.h
  • GateMonitor_E_FAIL : GateMonitor.h
  • GateMonitor_E_HANDLE : GateMonitor.h
  • GateMonitor_E_INUSE : GateMonitor.h
  • GateMonitor_E_INVALIDARG : GateMonitor.h
  • GateMonitor_E_INVALIDSTATE : GateMonitor.h
  • GateMonitor_E_MEMORY : GateMonitor.h
  • GateMonitor_E_NOTFOUND : GateMonitor.h
  • GateMonitor_S_SUCCESS : GateMonitor.h
  • GateMP_E_ALREADYEXISTS : GateMP.h
  • GateMP_E_FAIL : GateMP.h
  • GateMP_E_INVALIDARG : GateMP.h
  • GateMP_E_INVALIDSTATE : GateMP.h
  • GateMP_E_MEMORY : GateMP.h
  • GateMP_E_NOTFOUND : GateMP.h
  • GateMP_E_OSFAILURE : GateMP.h
  • GateMP_E_RESOURCE : GateMP.h
  • GateMP_E_RESTART : GateMP.h
  • GateMP_E_TIMEOUT : GateMP.h
  • GateMP_S_ALREADYSETUP : GateMP.h
  • GateMP_S_BUSY : GateMP.h
  • GateMP_S_SUCCESS : GateMP.h
  • GateMutex_E_BUSY : GateMutex.h
  • GateMutex_E_FAIL : GateMutex.h
  • GateMutex_E_INUSE : GateMutex.h
  • GateMutex_E_INVALIDARG : GateMutex.h
  • GateMutex_E_INVALIDSTATE : GateMutex.h
  • GateMutex_E_MEMORY : GateMutex.h
  • GateMutex_E_NOTFOUND : GateMutex.h
  • GateMutex_S_SUCCESS : GateMutex.h
  • GateProcess_E_BUSY : GateProcess.h
  • GateProcess_E_FAIL : GateProcess.h
  • GateProcess_E_INUSE : GateProcess.h
  • GateProcess_E_INVALIDARG : GateProcess.h
  • GateProcess_E_INVALIDSTATE : GateProcess.h
  • GateProcess_E_MEMORY : GateProcess.h
  • GateProcess_E_NOTFOUND : GateProcess.h
  • GateProcess_S_SUCCESS : GateProcess.h
  • GateSem_E_BUSY : GateSem.h
  • GateSem_E_FAIL : GateSem.h
  • GateSem_E_HANDLE : GateSem.h
  • GateSem_E_INUSE : GateSem.h
  • GateSem_E_INVALIDARG : GateSem.h
  • GateSem_E_INVALIDSTATE : GateSem.h
  • GateSem_E_MEMORY : GateSem.h
  • GateSem_E_NOTFOUND : GateSem.h
  • GateSem_S_SUCCESS : GateSem.h
  • GateSpinlock_E_BUSY : GateSpinlock.h
  • GateSpinlock_E_FAIL : GateSpinlock.h
  • GateSpinlock_E_HANDLE : GateSpinlock.h
  • GateSpinlock_E_INUSE : GateSpinlock.h
  • GateSpinlock_E_INVALIDARG : GateSpinlock.h
  • GateSpinlock_E_INVALIDSTATE : GateSpinlock.h
  • GateSpinlock_E_MEMORY : GateSpinlock.h
  • GateSpinlock_E_NOTFOUND : GateSpinlock.h
  • GateSpinlock_S_SUCCESS : GateSpinlock.h
  • GT_0trace : Trace.h
  • GT_1trace : Trace.h
  • GT_2trace : Trace.h
  • GT_3trace : Trace.h
  • GT_4trace : Trace.h
  • GT_5trace : Trace.h
  • GT_6trace : Trace.h
  • GT_assert : Trace.h
  • GT_setFailureReason : Trace.h
  • GT_setTrace : Trace.h
  • GT_TRACECLASS_MASK : Trace.h
  • GT_TRACECLASS_SHIFT : Trace.h
  • GT_TRACEENTER_MASK : Trace.h
  • GT_TRACEENTER_SHIFT : Trace.h
  • GT_TRACESETFAILURE_MASK : Trace.h
  • GT_TRACESETFAILURE_SHIFT : Trace.h
  • GT_TRACESTATE_MASK : Trace.h
  • GT_TRACESTATE_SHIFT : Trace.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- h -

  • HeapBufMP_E_ALREADYEXISTS : HeapBufMP.h
  • HeapBufMP_E_FAIL : HeapBufMP.h
  • HeapBufMP_E_INVALIDARG : HeapBufMP.h
  • HeapBufMP_E_INVALIDSTATE : HeapBufMP.h
  • HeapBufMP_E_MEMORY : HeapBufMP.h
  • HeapBufMP_E_NOTFOUND : HeapBufMP.h
  • HeapBufMP_E_OSFAILURE : HeapBufMP.h
  • HeapBufMP_E_RESOURCE : HeapBufMP.h
  • HeapBufMP_E_RESTART : HeapBufMP.h
  • HeapBufMP_E_TIMEOUT : HeapBufMP.h
  • HeapBufMP_S_ALREADYSETUP : HeapBufMP.h
  • HeapBufMP_S_BUSY : HeapBufMP.h
  • HeapBufMP_S_SUCCESS : HeapBufMP.h
  • HeapMemMP_E_ALREADYEXISTS : HeapMemMP.h
  • HeapMemMP_E_FAIL : HeapMemMP.h
  • HeapMemMP_E_INVALIDARG : HeapMemMP.h
  • HeapMemMP_E_INVALIDSTATE : HeapMemMP.h
  • HeapMemMP_E_MEMORY : HeapMemMP.h
  • HeapMemMP_E_NOTFOUND : HeapMemMP.h
  • HeapMemMP_E_OSFAILURE : HeapMemMP.h
  • HeapMemMP_E_RESOURCE : HeapMemMP.h
  • HeapMemMP_E_RESTART : HeapMemMP.h
  • HeapMemMP_E_TIMEOUT : HeapMemMP.h
  • HeapMemMP_S_ALREADYSETUP : HeapMemMP.h
  • HeapMemMP_S_BUSY : HeapMemMP.h
  • HeapMemMP_S_SUCCESS : HeapMemMP.h
  • HeapMultiBufMP_E_ALREADYEXISTS : HeapMultiBufMP.h
  • HeapMultiBufMP_E_FAIL : HeapMultiBufMP.h
  • HeapMultiBufMP_E_INVALIDARG : HeapMultiBufMP.h
  • HeapMultiBufMP_E_INVALIDSTATE : HeapMultiBufMP.h
  • HeapMultiBufMP_E_MEMORY : HeapMultiBufMP.h
  • HeapMultiBufMP_E_NOTFOUND : HeapMultiBufMP.h
  • HeapMultiBufMP_E_OSFAILURE : HeapMultiBufMP.h
  • HeapMultiBufMP_E_RESOURCE : HeapMultiBufMP.h
  • HeapMultiBufMP_E_RESTART : HeapMultiBufMP.h
  • HeapMultiBufMP_E_TIMEOUT : HeapMultiBufMP.h
  • HeapMultiBufMP_MAXBUCKETS : HeapMultiBufMP.h
  • HeapMultiBufMP_S_ALREADYSETUP : HeapMultiBufMP.h
  • HeapMultiBufMP_S_BUSY : HeapMultiBufMP.h
  • HeapMultiBufMP_S_SUCCESS : HeapMultiBufMP.h
  • HeapQueueMgr_E_ALREADYEXISTS : HeapQueueMgr.h
  • HeapQueueMgr_E_FAIL : HeapQueueMgr.h
  • HeapQueueMgr_E_INVALIDARG : HeapQueueMgr.h
  • HeapQueueMgr_E_INVALIDSTATE : HeapQueueMgr.h
  • HeapQueueMgr_E_MEMORY : HeapQueueMgr.h
  • HeapQueueMgr_E_NOTFOUND : HeapQueueMgr.h
  • HeapQueueMgr_E_OSFAILURE : HeapQueueMgr.h
  • HeapQueueMgr_E_RESOURCE : HeapQueueMgr.h
  • HeapQueueMgr_E_RESTART : HeapQueueMgr.h
  • HeapQueueMgr_E_TIMEOUT : HeapQueueMgr.h
  • HeapQueueMgr_S_ALREADYSETUP : HeapQueueMgr.h
  • HeapQueueMgr_S_BUSY : HeapQueueMgr.h
  • HeapQueueMgr_S_SUCCESS : HeapQueueMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- i -

  • IGateProvider_NULL : IGateProvider.h
  • IGateProvider_ObjectInitializer : IGateProvider.h
  • IGateProvider_Q_BLOCKING : IGateProvider.h
  • IGateProvider_Q_PREEMPTING : IGateProvider.h
  • IGateProvider_SuperObject : IGateProvider.h
  • Ipc_CONTROLCMD_LOADCALLBACK : IpcHost.h
  • Ipc_CONTROLCMD_STARTCALLBACK : IpcHost.h
  • Ipc_CONTROLCMD_STOPCALLBACK : IpcHost.h
  • Ipc_E_ALREADYEXISTS : Ipc.h
  • Ipc_E_FAIL : Ipc.h
  • Ipc_E_INVALIDARG : Ipc.h
  • Ipc_E_INVALIDSTATE : Ipc.h
  • Ipc_E_MEMORY : Ipc.h
  • Ipc_E_NOTFOUND : Ipc.h
  • Ipc_E_NOTREADY : Ipc.h
  • Ipc_E_OSFAILURE : Ipc.h
  • Ipc_E_RESOURCE : Ipc.h
  • Ipc_E_RESTART : Ipc.h
  • Ipc_E_TIMEOUT : Ipc.h
  • Ipc_S_ALREADYSETUP : Ipc.h
  • Ipc_S_BUSY : Ipc.h
  • Ipc_S_SUCCESS : Ipc.h
  • IpcMemMgr_E_FAIL : IpcMemMgr.h
  • IpcMemMgr_E_INVALIDARG : IpcMemMgr.h
  • IpcMemMgr_E_INVALIDSTATE : IpcMemMgr.h
  • IpcMemMgr_E_MEMORY : IpcMemMgr.h
  • IpcMemMgr_E_NOTFOUND : IpcMemMgr.h
  • IpcMemMgr_E_OSFAILURE : IpcMemMgr.h
  • IpcMemMgr_E_TOOMANYNAMEDALLOCS : IpcMemMgr.h
  • IpcMemMgr_E_WRONGSIZE : IpcMemMgr.h
  • IpcMemMgr_MAX_NAMELEN : IpcMemMgr.h
  • IpcMemMgr_MAXNAMEDBUFFERS : IpcMemMgr.h
  • IpcMemMgr_MODULEID : IpcMemMgr.h
  • IpcMemMgr_S_ALREADYSETUP : IpcMemMgr.h
  • IpcMemMgr_S_NOTLAST : IpcMemMgr.h
  • IpcMemMgr_S_SUCCESS : IpcMemMgr.h
  • IpcMemMgr_SHAREDMEMNAME : IpcMemMgr.h
  • IS_VALID_PROCID : ProcMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- p -

  • ProcMgr_E_ACCESSDENIED : ProcMgr.h
  • ProcMgr_E_ALREADYEXISTS : ProcMgr.h
  • ProcMgr_E_FAIL : ProcMgr.h
  • ProcMgr_E_HANDLE : ProcMgr.h
  • ProcMgr_E_INVALIDARG : ProcMgr.h
  • ProcMgr_E_INVALIDSTATE : ProcMgr.h
  • ProcMgr_E_MAP : ProcMgr.h
  • ProcMgr_E_MEMORY : ProcMgr.h
  • ProcMgr_E_NOTFOUND : ProcMgr.h
  • ProcMgr_E_OSFAILURE : ProcMgr.h
  • ProcMgr_E_RESOURCE : ProcMgr.h
  • ProcMgr_E_RESTART : ProcMgr.h
  • ProcMgr_E_SYMBOLNOTFOUND : ProcMgr.h
  • ProcMgr_E_TIMEOUT : ProcMgr.h
  • ProcMgr_E_TRANSLATE : ProcMgr.h
  • ProcMgr_MASTERKNLVIRT : ProcMgr.h
  • ProcMgr_MASTERUSRVIRT : ProcMgr.h
  • ProcMgr_S_ALREADYEXISTS : ProcMgr.h
  • ProcMgr_S_ALREADYSETUP : ProcMgr.h
  • ProcMgr_S_BUSY : ProcMgr.h
  • ProcMgr_S_OPENHANDLE : ProcMgr.h
  • ProcMgr_S_SETUP : ProcMgr.h
  • ProcMgr_S_SUCCESS : ProcMgr.h
  • ProcMgr_SLAVEVIRT : ProcMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- r -

  • ResTrack_E_FAIL : ResTrack.h
  • ResTrack_E_MEMORY : ResTrack.h
  • ResTrack_E_NOTFOUND : ResTrack.h
  • ResTrack_E_PID : ResTrack.h
  • ResTrack_S_SUCCESS : ResTrack.h
  • RingIO_E_ALREADYEXISTS : RingIO.h
  • RingIO_E_BADVERSION : RingIO.h
  • RingIO_E_BUFEMPTY : RingIO.h
  • RingIO_E_BUFFULL : RingIO.h
  • RingIO_E_BUFWRAP : RingIO.h
  • RingIO_E_FAIL : RingIO.h
  • RingIO_E_INUSE : RingIO.h
  • RingIO_E_INVALIDARG : RingIO.h
  • RingIO_E_INVALIDCONTEXT : RingIO.h
  • RingIO_E_INVALIDHEAPID : RingIO.h
  • RingIO_E_INVALIDMSG : RingIO.h
  • RingIO_E_INVALIDPROCID : RingIO.h
  • RingIO_E_INVALIDSTATE : RingIO.h
  • RingIO_E_MAXREACHED : RingIO.h
  • RingIO_E_MEMORY : RingIO.h
  • RingIO_E_NOTFOUND : RingIO.h
  • RingIO_E_NOTIFYFAIL : RingIO.h
  • RingIO_E_NOTOWNER : RingIO.h
  • RingIO_E_OSFAILURE : RingIO.h
  • RingIO_E_PENDINGATTRIBUTE : RingIO.h
  • RingIO_E_PENDINGDATA : RingIO.h
  • RingIO_E_REMOTEACTIVE : RingIO.h
  • RingIO_E_RESOURCE : RingIO.h
  • RingIO_E_RESTART : RingIO.h
  • RingIO_E_TIMEOUT : RingIO.h
  • RingIO_E_VARIABLEATTRIBUTE : RingIO.h
  • RingIO_E_WRONGSTATE : RingIO.h
  • RingIO_S_ALREADYSETUP : RingIO.h
  • RingIO_S_BUSY : RingIO.h
  • RingIO_S_NOTCONTIGUOUSDATA : RingIO.h
  • RingIO_S_PENDINGATTRIBUTE : RingIO.h
  • RingIO_S_SUCCESS : RingIO.h
  • RingIOShm_E_BADVERSION : RingIOShm.h
  • RingIOShm_E_BUFEMPTY : RingIOShm.h
  • RingIOShm_E_BUFFULL : RingIOShm.h
  • RingIOShm_E_BUFWRAP : RingIOShm.h
  • RingIOShm_E_FAIL : RingIOShm.h
  • RingIOShm_E_INVALIDARG : RingIOShm.h
  • RingIOShm_E_INVALIDCONTEXT : RingIOShm.h
  • RingIOShm_E_INVALIDPROCID : RingIOShm.h
  • RingIOShm_E_INVALIDSTATE : RingIOShm.h
  • RingIOShm_E_MEMORY : RingIOShm.h
  • RingIOShm_E_OSFAILURE : RingIOShm.h
  • RingIOShm_E_PENDINGDATA : RingIOShm.h
  • RingIOShm_E_VARIABLEATTRIBUTE : RingIOShm.h
  • RingIOShm_E_WRONGSTATE : RingIOShm.h
  • RingIOShm_MODULEID : RingIOShm.h
  • RingIOShm_S_ALREADYSETUP : RingIOShm.h
  • RingIOShm_S_PENDINGATTRIBUTE : RingIOShm.h
  • RingIOShm_S_SUCCESS : RingIOShm.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- s -

  • SharedRegion_E_ALREADYEXISTS : SharedRegion.h
  • SharedRegion_E_FAIL : SharedRegion.h
  • SharedRegion_E_INVALIDARG : SharedRegion.h
  • SharedRegion_E_INVALIDSTATE : SharedRegion.h
  • SharedRegion_E_MEMORY : SharedRegion.h
  • SharedRegion_E_NOTFOUND : SharedRegion.h
  • SharedRegion_E_OSFAILURE : SharedRegion.h
  • SharedRegion_E_RESOURCE : SharedRegion.h
  • SharedRegion_E_RESTART : SharedRegion.h
  • SharedRegion_E_TIMEOUT : SharedRegion.h
  • SharedRegion_INVALIDREGIONID : SharedRegion.h
  • SharedRegion_S_ALREADYSETUP : SharedRegion.h
  • SharedRegion_S_BUSY : SharedRegion.h
  • SharedRegion_S_SUCCESS : SharedRegion.h
  • SyslinkMemMgr_Params : SyslinkMemMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- t -

  • TRUE : Std.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v

- v -

  • Void : Std.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • i
  • m
  • o
  • p
  • r
  • s

- c -

  • Cache_Mode : Cache.h
  • Cache_Type : Cache.h

- f -

  • FrameQ_CpuAccessFlags_Tag : FrameQ.h
  • FrameQ_Interface_Tag : FrameQ.h
  • FrameQ_NotifyType_Tag : FrameQ.h
  • FrameQ_OpenMode_Tag : FrameQ.h
  • FrameQBufMgr_AddrType_Tag : FrameQBufMgr.h
  • FrameQBufMgr_BufType_Tag : FrameQBufMgr.h
  • FrameQBufMgr_CpuAccessFlags_Tag : FrameQBufMgr.h
  • FrameQBufMgr_FrameBufferInterface_Tag : FrameQBufMgr.h
  • FrameQBufMgr_FrameHeaderInterface_Tag : FrameQBufMgr.h
  • FrameQBufMgr_Interface_Tag : FrameQBufMgr.h

- g -

  • GateMP_LocalProtect : GateMP.h
  • GateMP_RemoteProtect : GateMP.h
  • GT_TraceClass : Trace.h
  • GT_TraceEnter : Trace.h
  • GT_TraceSetFailure : Trace.h
  • GT_TraceState : Trace.h
  • GT_TraceType : Trace.h

- i -

  • IpcMemMgr_MemType : IpcMemMgr.h

- m -

  • Memory_XltFlags : _MemoryDefs.h
  • MemoryOS_CacheFlags : MemoryDefs.h
  • MemoryOS_MemTypeFlags : MemoryDefs.h
  • MessageQ_Priority : MessageQ.h

- o -

  • OsalSemaphore_IntType : OsalSemaphore.h
  • OsalSemaphore_Type : OsalSemaphore.h

- p -

  • ProcMgr_AddrType : ProcMgr.h
  • ProcMgr_BootMode : ProcMgr.h
  • ProcMgr_State : ProcMgr.h

- r -

  • RingIO_Flags_tag : RingIO.h
  • RingIO_NotifyType_Tag : RingIO.h
  • RingIO_OpenMode_Tag : RingIO.h
  • RingIO_Type_Tag : RingIO.h

- s -

  • SyslinkMemMgr_AddrType : SyslinkMemMgr.h
  • SyslinkMemMgr_Type_Type_tag : SyslinkMemMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • i
  • m
  • o
  • p
  • r
  • s

- c -

  • Cache_Mode_BYPASS : Cache.h
  • Cache_Mode_FREEZE : Cache.h
  • Cache_Mode_NORMAL : Cache.h
  • Cache_Type_ALL : Cache.h
  • Cache_Type_L1 : Cache.h
  • Cache_Type_L1D : Cache.h
  • Cache_Type_L1P : Cache.h
  • Cache_Type_L2 : Cache.h
  • Cache_Type_L2D : Cache.h
  • Cache_Type_L2P : Cache.h

- f -

  • FrameQ_FRAMEBUF0_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF1_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF2_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF3_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF4_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF5_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF6_CPUACCESS : FrameQ.h
  • FrameQ_FRAMEBUF7_CPUACCESS : FrameQ.h
  • FrameQ_INTERFACE_NONE : FrameQ.h
  • FrameQ_INTERFACE_SHAREDMEM : FrameQ.h
  • FrameQ_MODE_NONE : FrameQ.h
  • FrameQ_MODE_READER : FrameQ.h
  • FrameQ_MODE_WRITER : FrameQ.h
  • FrameQ_NOTIFICATION_ALWAYS : FrameQ.h
  • FrameQ_NOTIFICATION_HDWRFIFO_ALWAYS : FrameQ.h
  • FrameQ_NOTIFICATION_HDWRFIFO_ONCE : FrameQ.h
  • FrameQ_NOTIFICATION_NONE : FrameQ.h
  • FrameQ_NOTIFICATION_ONCE : FrameQ.h
  • FrameQBufMgr_AddrType_EndValue : FrameQBufMgr.h
  • FrameQBufMgr_AddrType_Portable : FrameQBufMgr.h
  • FrameQBufMgr_AddrType_Virtual : FrameQBufMgr.h
  • FrameQBufMgr_BUF_ENDVALUE : FrameQBufMgr.h
  • FrameQBufMgr_BUF_FRAMEBUF : FrameQBufMgr.h
  • FrameQBufMgr_BUF_FRAMEHEADER : FrameQBufMgr.h
  • FrameQBufMgr_BUFINTERFACE_NONE : FrameQBufMgr.h
  • FrameQBufMgr_BUFINTERFACE_SHAREDMEM : FrameQBufMgr.h
  • FrameQBufMgr_BUFINTERFACE_TILERMEM : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF0_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF1_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF2_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF3_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF4_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF5_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF6_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_FRAMEBUF7_CPUACCESS : FrameQBufMgr.h
  • FrameQBufMgr_HDRINTERFACE_NONE : FrameQBufMgr.h
  • FrameQBufMgr_HDRINTERFACE_SHAREDMEM : FrameQBufMgr.h
  • FrameQBufMgr_INTERFACE_NONE : FrameQBufMgr.h
  • FrameQBufMgr_INTERFACE_SHAREDMEM : FrameQBufMgr.h

- g -

  • GateMP_LocalProtect_INTERRUPT : GateMP.h
  • GateMP_LocalProtect_NONE : GateMP.h
  • GateMP_LocalProtect_PROCESS : GateMP.h
  • GateMP_LocalProtect_TASKLET : GateMP.h
  • GateMP_LocalProtect_THREAD : GateMP.h
  • GateMP_RemoteProtect_CUSTOM1 : GateMP.h
  • GateMP_RemoteProtect_CUSTOM2 : GateMP.h
  • GateMP_RemoteProtect_NONE : GateMP.h
  • GateMP_RemoteProtect_SYSTEM : GateMP.h
  • GT_1CLASS : Trace.h
  • GT_2CLASS : Trace.h
  • GT_3CLASS : Trace.h
  • GT_4CLASS : Trace.h
  • GT_ENTER : Trace.h
  • GT_LEAVE : Trace.h
  • GT_TraceEnter_Disable : Trace.h
  • GT_TraceEnter_Enable : Trace.h
  • GT_TraceEnter_EndValue : Trace.h
  • GT_TraceSetFailure_Disable : Trace.h
  • GT_TraceSetFailure_Enable : Trace.h
  • GT_TraceSetFailure_EndValue : Trace.h
  • GT_TraceState_Disable : Trace.h
  • GT_TraceState_Enable : Trace.h
  • GT_TraceState_EndValue : Trace.h
  • GT_TraceType_EndValue : Trace.h
  • GT_TraceType_Kernel : Trace.h
  • GT_TraceType_User : Trace.h

- i -

  • IpcMemMgr_ALLOCTYPE_END : IpcMemMgr.h
  • IpcMemMgr_ALLOCTYPE_PHYS_CACHE : IpcMemMgr.h
  • IpcMemMgr_ALLOCTYPE_PHYS_NOCACHE : IpcMemMgr.h
  • IpcMemMgr_ALLOCTYPE_PSHMEM : IpcMemMgr.h

- m -

  • Memory_XltFlags_EndValue : _MemoryDefs.h
  • Memory_XltFlags_Phys2Virt : _MemoryDefs.h
  • Memory_XltFlags_Virt2Phys : _MemoryDefs.h
  • MemoryOS_CacheFlags_Cached : MemoryDefs.h
  • MemoryOS_CacheFlags_Default : MemoryDefs.h
  • MemoryOS_CacheFlags_EndValue : MemoryDefs.h
  • MemoryOS_CacheFlags_Uncached : MemoryDefs.h
  • MemoryOS_MemTypeFlags_Default : MemoryDefs.h
  • MemoryOS_MemTypeFlags_Dma : MemoryDefs.h
  • MemoryOS_MemTypeFlags_EndValue : MemoryDefs.h
  • MemoryOS_MemTypeFlags_Physical : MemoryDefs.h
  • MessageQ_HIGHPRI : MessageQ.h
  • MessageQ_NORMALPRI : MessageQ.h
  • MessageQ_RESERVEDPRI : MessageQ.h
  • MessageQ_URGENTPRI : MessageQ.h

- o -

  • OsalSemaphore_IntType_EndValue : OsalSemaphore.h
  • OsalSemaphore_IntType_Interruptible : OsalSemaphore.h
  • OsalSemaphore_IntType_Noninterruptible : OsalSemaphore.h
  • OsalSemaphore_Type_Binary : OsalSemaphore.h
  • OsalSemaphore_Type_Counting : OsalSemaphore.h
  • OsalSemaphore_Type_EndValue : OsalSemaphore.h

- p -

  • ProcMgr_AddrType_EndValue : ProcMgr.h
  • ProcMgr_AddrType_MasterKnlVirt : ProcMgr.h
  • ProcMgr_AddrType_MasterPhys : ProcMgr.h
  • ProcMgr_AddrType_MasterUsrVirt : ProcMgr.h
  • ProcMgr_AddrType_SlavePhys : ProcMgr.h
  • ProcMgr_AddrType_SlaveVirt : ProcMgr.h
  • ProcMgr_BootMode_Boot : ProcMgr.h
  • ProcMgr_BootMode_EndValue : ProcMgr.h
  • ProcMgr_BootMode_NoBoot : ProcMgr.h
  • ProcMgr_BootMode_NoLoad_NoPwr : ProcMgr.h
  • ProcMgr_BootMode_NoLoad_Pwr : ProcMgr.h
  • ProcMgr_State_EndValue : ProcMgr.h
  • ProcMgr_State_Loaded : ProcMgr.h
  • ProcMgr_State_Powered : ProcMgr.h
  • ProcMgr_State_Reset : ProcMgr.h
  • ProcMgr_State_Running : ProcMgr.h
  • ProcMgr_State_Unavailable : ProcMgr.h
  • ProcMgr_State_Unknown : ProcMgr.h

- r -

  • RingIO_DATABUF_MAINTAINCACHE : RingIO.h
  • RingIO_MODE_READER : RingIO.h
  • RingIO_MODE_WRITER : RingIO.h
  • RingIO_NEED_EXACT_SIZE : RingIO.h
  • RingIO_NOTIFICATION_ALWAYS : RingIO.h
  • RingIO_NOTIFICATION_HDWRFIFO_ALWAYS : RingIO.h
  • RingIO_NOTIFICATION_HDWRFIFO_ONCE : RingIO.h
  • RingIO_NOTIFICATION_NONE : RingIO.h
  • RingIO_NOTIFICATION_ONCE : RingIO.h
  • RingIO_Type_SHAREDMEM : RingIO.h

- s -

  • SyslinkMemMgr_AddrType_EndValue : SyslinkMemMgr.h
  • SyslinkMemMgr_AddrType_Portable : SyslinkMemMgr.h
  • SyslinkMemMgr_AddrType_Virtual : SyslinkMemMgr.h
  • SyslinkMemMgr_TYPE_SHAREDMEM : SyslinkMemMgr.h
  • SyslinkMemMgr_TYPE_TILERMEM : SyslinkMemMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s

- c -

  • Cache_destroy() : _Cache_qnx.h
  • Cache_inv() : Cache.h
  • Cache_setMode() : Cache.h
  • Cache_setup() : _Cache_qnx.h
  • Cache_wait() : Cache.h
  • Cache_wb() : Cache.h
  • Cache_wbInv() : Cache.h
  • Cfg_prop() : Cfg.h
  • Cfg_propBool() : Cfg.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s

- l -

  • List_construct() : List.h
  • List_create() : List.h
  • List_delete() : List.h
  • List_dequeue() : List.h
  • List_destruct() : List.h
  • List_elemClear() : List.h
  • List_empty() : List.h
  • List_enqueue() : List.h
  • List_enqueueHead() : List.h
  • List_get() : List.h
  • List_insert() : List.h
  • List_next() : List.h
  • List_Params_init() : List.h
  • List_prev() : List.h
  • List_put() : List.h
  • List_putHead() : List.h
  • List_remove() : List.h
  • ListMP_close() : ListMP.h
  • ListMP_create() : ListMP.h
  • ListMP_delete() : ListMP.h
  • ListMP_empty() : ListMP.h
  • ListMP_getGate() : ListMP.h
  • ListMP_getHead() : ListMP.h
  • ListMP_getTail() : ListMP.h
  • ListMP_insert() : ListMP.h
  • ListMP_next() : ListMP.h
  • ListMP_open() : ListMP.h
  • ListMP_Params_init() : ListMP.h
  • ListMP_prev() : ListMP.h
  • ListMP_putHead() : ListMP.h
  • ListMP_putTail() : ListMP.h
  • ListMP_remove() : ListMP.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s

- m -

  • Memory_alloc() : Memory.h
  • Memory_calloc() : Memory.h
  • Memory_free() : Memory.h
  • Memory_getMaxDefaultTypeAlign() : Memory.h
  • Memory_getStats() : Memory.h
  • Memory_query() : Memory.h
  • Memory_translate() : _Memory.h
  • Memory_valloc() : Memory.h
  • MemoryOS_alloc() : MemoryOS.h
  • MemoryOS_calloc() : MemoryOS.h
  • MemoryOS_copy() : MemoryOS.h
  • MemoryOS_destroy() : MemoryOS.h
  • MemoryOS_free() : MemoryOS.h
  • MemoryOS_map() : _MemoryOS.h
  • MemoryOS_set() : MemoryOS.h
  • MemoryOS_setup() : MemoryOS.h
  • MemoryOS_translate() : MemoryOS.h
  • MemoryOS_unmap() : _MemoryOS.h
  • MessageQ_alloc() : MessageQ.h
  • MessageQ_close() : MessageQ.h
  • MessageQ_count() : MessageQ.h
  • MessageQ_create() : MessageQ.h
  • MessageQ_delete() : MessageQ.h
  • MessageQ_free() : MessageQ.h
  • MessageQ_get() : MessageQ.h
  • MessageQ_getQueueId() : MessageQ.h
  • MessageQ_open() : MessageQ.h
  • MessageQ_Params_init() : MessageQ.h
  • MessageQ_put() : MessageQ.h
  • MessageQ_registerHeap() : MessageQ.h
  • MessageQ_setMsgTrace() : MessageQ.h
  • MessageQ_setReplyQueue() : MessageQ.h
  • MessageQ_staticMsgInit() : MessageQ.h
  • MessageQ_unblock() : MessageQ.h
  • MessageQ_unregisterHeap() : MessageQ.h
  • MultiProc_getBaseIdOfCluster() : MultiProc.h
  • MultiProc_getId() : MultiProc.h
  • MultiProc_getName() : MultiProc.h
  • MultiProc_getNumProcessors() : MultiProc.h
  • MultiProc_getNumProcsInCluster() : MultiProc.h
  • MultiProc_self() : MultiProc.h
  • MultiProc_setBaseIdOfCluster() : MultiProc.h
  • MultiProc_setLocalId() : MultiProc.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s

- n -

  • NameServer_add() : NameServer.h
  • NameServer_addUInt32() : NameServer.h
  • NameServer_create() : NameServer.h
  • NameServer_delete() : NameServer.h
  • NameServer_get() : NameServer.h
  • NameServer_getHandle() : NameServer.h
  • NameServer_getLocal() : NameServer.h
  • NameServer_getLocalUInt32() : NameServer.h
  • NameServer_getUInt32() : NameServer.h
  • NameServer_Params_init() : NameServer.h
  • NameServer_remove() : NameServer.h
  • NameServer_removeEntry() : NameServer.h
  • Notify_attach() : Notify.h
  • Notify_disable() : Notify.h
  • Notify_disableEvent() : Notify.h
  • Notify_enableEvent() : Notify.h
  • Notify_eventAvailable() : Notify.h
  • Notify_intLineRegistered() : Notify.h
  • Notify_numIntLines() : Notify.h
  • Notify_registerEvent() : Notify.h
  • Notify_registerEventSingle() : Notify.h
  • Notify_restore() : Notify.h
  • Notify_sendEvent() : Notify.h
  • Notify_unregisterEvent() : Notify.h
  • Notify_unregisterEventSingle() : Notify.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s

- o -

  • Osal_printf() : OsalPrint.h
  • OsalSemaphore_create() : OsalSemaphore.h
  • OsalSemaphore_delete() : OsalSemaphore.h
  • OsalSemaphore_pend() : OsalSemaphore.h
  • OsalSemaphore_post() : OsalSemaphore.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s

- f -

  • FrameQ_alloc() : FrameQ.h
  • FrameQ_allocv() : FrameQ.h
  • FrameQ_close() : FrameQ.h
  • FrameQ_control() : FrameQ.h
  • FrameQ_create() : FrameQ.h
  • FrameQ_delete() : FrameQ.h
  • FrameQ_destroy() : FrameQ.h
  • FrameQ_dup() : FrameQ.h
  • FrameQ_free() : FrameQ.h
  • FrameQ_freev() : FrameQ.h
  • FrameQ_get() : FrameQ.h
  • FrameQ_getConfig() : FrameQ.h
  • FrameQ_getExtendedHeaderPtr() : FrameQ.h
  • FrameQ_getFrameBufDataStartOffset() : FrameQ.h
  • FrameQ_getFrameBuffer() : FrameQ.h
  • FrameQ_getFrameBufSize() : FrameQ.h
  • FrameQ_getFrameBufValidSize() : FrameQ.h
  • FrameQ_getNumFrameBuffers() : FrameQ.h
  • FrameQ_getNumFrames() : FrameQ.h
  • FrameQ_getNumFreeFrames() : FrameQ.h
  • FrameQ_getv() : FrameQ.h
  • FrameQ_getvNumFrames() : FrameQ.h
  • FrameQ_getvNumFreeFrames() : FrameQ.h
  • FrameQ_isSupportedInterface() : FrameQ.h
  • FrameQ_open() : FrameQ.h
  • FrameQ_openByAddr() : FrameQ.h
  • FrameQ_put() : FrameQ.h
  • FrameQ_putv() : FrameQ.h
  • FrameQ_registerNotifier() : FrameQ.h
  • FrameQ_sendNotify() : FrameQ.h
  • FrameQ_setFrameBufDataStartOffset() : FrameQ.h
  • FrameQ_setFrameBufValidSize() : FrameQ.h
  • FrameQ_setup() : FrameQ.h
  • FrameQ_ShMem_destroy() : FrameQ_ShMem.h
  • FrameQ_ShMem_getConfig() : FrameQ_ShMem.h
  • FrameQ_ShMem_Params_init() : FrameQ_ShMem.h
  • FrameQ_ShMem_setup() : FrameQ_ShMem.h
  • FrameQ_ShMem_sharedMemReq() : FrameQ_ShMem.h
  • FrameQ_unregisterNotifier() : FrameQ.h
  • FrameQBufMgr_add() : FrameQBufMgr.h
  • FrameQBufMgr_alloc() : FrameQBufMgr.h
  • FrameQBufMgr_allocv() : FrameQBufMgr.h
  • FrameQBufMgr_close() : FrameQBufMgr.h
  • FrameQBufMgr_control() : FrameQBufMgr.h
  • FrameQBufMgr_create() : FrameQBufMgr.h
  • FrameQBufMgr_delete() : FrameQBufMgr.h
  • FrameQBufMgr_destroy() : FrameQBufMgr.h
  • FrameQBufMgr_dup() : FrameQBufMgr.h
  • FrameQBufMgr_dupv() : FrameQBufMgr.h
  • FrameQBufMgr_free() : FrameQBufMgr.h
  • FrameQBufMgr_freev() : FrameQBufMgr.h
  • FrameQBufMgr_getBaseHeaderSize() : FrameQBufMgr.h
  • FrameQBufMgr_getConfig() : FrameQBufMgr.h
  • FrameQBufMgr_getHandle() : FrameQBufMgr.h
  • FrameQBufMgr_getId() : FrameQBufMgr.h
  • FrameQBufMgr_getKnlHandle() : FrameQBufMgr.h
  • FrameQBufMgr_getNumFreeFrames() : FrameQBufMgr.h
  • FrameQBufMgr_invalidate() : FrameQBufMgr.h
  • FrameQBufMgr_invalidateFrameBuf() : FrameQBufMgr.h
  • FrameQBufMgr_invalidateHeaderBuf() : FrameQBufMgr.h
  • FrameQBufMgr_isCacheEnabledForFrameBuf() : FrameQBufMgr.h
  • FrameQBufMgr_isCacheEnabledForHeaderBuf() : FrameQBufMgr.h
  • FrameQBufMgr_open() : FrameQBufMgr.h
  • FrameQBufMgr_openByAddr() : FrameQBufMgr.h
  • FrameQBufMgr_registerNotifier() : FrameQBufMgr.h
  • FrameQBufMgr_remove() : FrameQBufMgr.h
  • FrameQBufMgr_setup() : FrameQBufMgr.h
  • FrameQBufMgr_ShMem_destroy() : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_getConfig() : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_Params_init() : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_setup() : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_sharedMemReq() : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_translateAddr() : FrameQBufMgr.h
  • FrameQBufMgr_unregisterNotifier() : FrameQBufMgr.h
  • FrameQBufMgr_writeBack() : FrameQBufMgr.h
  • FrameQBufMgr_writeBackBuf() : FrameQBufMgr.h
  • FrameQBufMgr_writeBackFrameBuf() : FrameQBufMgr.h
  • FrameQBufMgr_writeBackHeaderBuf() : FrameQBufMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s

- g -

  • Gate_enterSystem() : Gate.h
  • Gate_leaveSystem() : Gate.h
  • GateMonitor_create() : GateMonitor.h
  • GateMonitor_delete() : GateMonitor.h
  • GateMP_close() : GateMP.h
  • GateMP_create() : GateMP.h
  • GateMP_delete() : GateMP.h
  • GateMP_enter() : GateMP.h
  • GateMP_getDefaultRemote() : GateMP.h
  • GateMP_getLocalProtect() : GateMP.h
  • GateMP_getRemoteProtect() : GateMP.h
  • GateMP_leave() : GateMP.h
  • GateMP_open() : GateMP.h
  • GateMP_Params_init() : GateMP.h
  • GateMutex_create() : GateMutex.h
  • GateMutex_delete() : GateMutex.h
  • GateProcess_close() : GateProcess.h
  • GateProcess_create() : GateProcess.h
  • GateProcess_delete() : GateProcess.h
  • GateProcess_enter() : GateProcess.h
  • GateProcess_leave() : GateProcess.h
  • GateProcess_open() : GateProcess.h
  • GateProcess_Params_init() : GateProcess.h
  • GateProcess_shMemSize() : GateProcess.h
  • GateSem_create() : GateSem.h
  • GateSem_delete() : GateSem.h
  • GateSpinlock_create() : GateSpinlock.h
  • GateSpinlock_delete() : GateSpinlock.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s

- h -

  • HeapBufMP_alloc() : HeapBufMP.h
  • HeapBufMP_close() : HeapBufMP.h
  • HeapBufMP_create() : HeapBufMP.h
  • HeapBufMP_delete() : HeapBufMP.h
  • HeapBufMP_free() : HeapBufMP.h
  • HeapBufMP_getExtendedStats() : HeapBufMP.h
  • HeapBufMP_getStats() : HeapBufMP.h
  • HeapBufMP_open() : HeapBufMP.h
  • HeapBufMP_Params_init() : HeapBufMP.h
  • HeapMemMP_alloc() : HeapMemMP.h
  • HeapMemMP_close() : HeapMemMP.h
  • HeapMemMP_create() : HeapMemMP.h
  • HeapMemMP_delete() : HeapMemMP.h
  • HeapMemMP_free() : HeapMemMP.h
  • HeapMemMP_getExtendedStats() : HeapMemMP.h
  • HeapMemMP_getStats() : HeapMemMP.h
  • HeapMemMP_open() : HeapMemMP.h
  • HeapMemMP_Params_init() : HeapMemMP.h
  • HeapMemMP_restore() : HeapMemMP.h
  • HeapMultiBufMP_alloc() : HeapMultiBufMP.h
  • HeapMultiBufMP_close() : HeapMultiBufMP.h
  • HeapMultiBufMP_create() : HeapMultiBufMP.h
  • HeapMultiBufMP_delete() : HeapMultiBufMP.h
  • HeapMultiBufMP_free() : HeapMultiBufMP.h
  • HeapMultiBufMP_getExtendedStats() : HeapMultiBufMP.h
  • HeapMultiBufMP_getStats() : HeapMultiBufMP.h
  • HeapMultiBufMP_open() : HeapMultiBufMP.h
  • HeapMultiBufMP_Params_init() : HeapMultiBufMP.h
  • HeapQueueMgr_alloc() : HeapQueueMgr.h
  • HeapQueueMgr_close() : HeapQueueMgr.h
  • HeapQueueMgr_create() : HeapQueueMgr.h
  • HeapQueueMgr_delete() : HeapQueueMgr.h
  • HeapQueueMgr_free() : HeapQueueMgr.h
  • HeapQueueMgr_getStats() : HeapQueueMgr.h
  • HeapQueueMgr_open() : HeapQueueMgr.h
  • HeapQueueMgr_Params_init() : HeapQueueMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s

- i -

  • Ipc_attach() : Ipc.h
  • Ipc_control() : IpcHost.h
  • Ipc_detach() : Ipc.h
  • Ipc_isAttached() : Ipc.h
  • Ipc_readConfig() : Ipc.h
  • Ipc_runtimeId() : IpcHost.h
  • Ipc_start() : Ipc.h
  • Ipc_stop() : Ipc.h
  • Ipc_writeConfig() : Ipc.h
  • IpcMemMgr_acquire() : IpcMemMgr.h
  • IpcMemMgr_alloc() : IpcMemMgr.h
  • IpcMemMgr_allocShmemHeap() : IpcMemMgr.h
  • IpcMemMgr_destroy() : IpcMemMgr.h
  • IpcMemMgr_enterGate() : IpcMemMgr.h
  • IpcMemMgr_free() : IpcMemMgr.h
  • IpcMemMgr_freeShmemHeap() : IpcMemMgr.h
  • IpcMemMgr_freeShmemHeapByName() : IpcMemMgr.h
  • IpcMemMgr_getConfig() : IpcMemMgr.h
  • IpcMemMgr_getOffset() : IpcMemMgr.h
  • IpcMemMgr_getPtr() : IpcMemMgr.h
  • IpcMemMgr_leaveGate() : IpcMemMgr.h
  • IpcMemMgr_release() : IpcMemMgr.h
  • IpcMemMgr_setup() : IpcMemMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s

- p -

  • ProcMgr_attach() : ProcMgr.h
  • ProcMgr_close() : ProcMgr.h
  • ProcMgr_control() : ProcMgr.h
  • ProcMgr_detach() : ProcMgr.h
  • ProcMgr_getAttachParams() : ProcMgr.h
  • ProcMgr_getLoadedFileId() : ProcMgr.h
  • ProcMgr_getMaxMemoryRegions() : ProcMgr.h
  • ProcMgr_getProcInfo() : ProcMgr.h
  • ProcMgr_getSectionData() : ProcMgr.h
  • ProcMgr_getSectionInfo() : ProcMgr.h
  • ProcMgr_getStartParams() : ProcMgr.h
  • ProcMgr_getState() : ProcMgr.h
  • ProcMgr_getSymbolAddress() : ProcMgr.h
  • ProcMgr_load() : ProcMgr.h
  • ProcMgr_map() : ProcMgr.h
  • ProcMgr_open() : ProcMgr.h
  • ProcMgr_read() : ProcMgr.h
  • ProcMgr_start() : ProcMgr.h
  • ProcMgr_stop() : ProcMgr.h
  • ProcMgr_translateAddr() : ProcMgr.h
  • ProcMgr_unload() : ProcMgr.h
  • ProcMgr_unmap() : ProcMgr.h
  • ProcMgr_write() : ProcMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s

- r -

  • ResTrack_create() : ResTrack.h
  • ResTrack_delete() : ResTrack.h
  • ResTrack_Params_init() : ResTrack.h
  • ResTrack_pop() : ResTrack.h
  • ResTrack_push() : ResTrack.h
  • ResTrack_register() : ResTrack.h
  • ResTrack_remove() : ResTrack.h
  • ResTrack_unregister() : ResTrack.h
  • RingIO_acquire() : RingIO.h
  • RingIO_cancel() : RingIO.h
  • RingIO_close() : RingIO.h
  • RingIO_create() : RingIO.h
  • RingIO_delete() : RingIO.h
  • RingIO_flush() : RingIO.h
  • RingIO_getAcquiredOffset() : RingIO.h
  • RingIO_getAcquiredSize() : RingIO.h
  • RingIO_getAttribute() : RingIO.h
  • RingIO_getEmptyAttrSize() : RingIO.h
  • RingIO_getEmptySize() : RingIO.h
  • RingIO_getValidAttrSize() : RingIO.h
  • RingIO_getValidSize() : RingIO.h
  • RingIO_getvAttribute() : RingIO.h
  • RingIO_getWaterMark() : RingIO.h
  • RingIO_open() : RingIO.h
  • RingIO_openByAddr() : RingIO.h
  • RingIO_Params_init() : RingIO.h
  • RingIO_registerNotifier() : RingIO.h
  • RingIO_release() : RingIO.h
  • RingIO_sendNotify() : RingIO.h
  • RingIO_setAttribute() : RingIO.h
  • RingIO_setNotifyType() : RingIO.h
  • RingIO_setvAttribute() : RingIO.h
  • RingIO_setWaterMark() : RingIO.h
  • RingIO_sharedMemReq() : RingIO.h
  • RingIO_unregisterNotifier() : RingIO.h
  • RingIOShm_Params_init() : RingIOShm.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s

- s -

  • SharedRegion_clearEntry() : SharedRegion.h
  • SharedRegion_entryInit() : SharedRegion.h
  • SharedRegion_getCacheLineSize() : SharedRegion.h
  • SharedRegion_getEntry() : SharedRegion.h
  • SharedRegion_getHeap() : SharedRegion.h
  • SharedRegion_getId() : SharedRegion.h
  • SharedRegion_getIdByName() : SharedRegion.h
  • SharedRegion_getNumRegions() : SharedRegion.h
  • SharedRegion_getPtr() : SharedRegion.h
  • SharedRegion_getSRPtr() : SharedRegion.h
  • SharedRegion_invalidSRPtr() : SharedRegion.h
  • SharedRegion_isCacheEnabled() : SharedRegion.h
  • SharedRegion_setEntry() : SharedRegion.h
  • SharedRegion_translateEnabled() : SharedRegion.h
  • String_cat() : String.h
  • String_cmp() : String.h
  • String_cpy() : String.h
  • String_hash() : String.h
  • String_hexToStr() : String.h
  • String_len() : String.h
  • String_ncmp() : String.h
  • String_ncpy() : String.h
  • SysLink_destroy() : SysLink.h
  • SysLink_setup() : SysLink.h
  • SyslinkMemMgr_alloc() : SyslinkMemMgr.h
  • SyslinkMemMgr_create() : SyslinkMemMgr.h
  • SyslinkMemMgr_delete() : SyslinkMemMgr.h
  • SyslinkMemMgr_destroy() : SyslinkMemMgr.h
  • SyslinkMemMgr_free() : SyslinkMemMgr.h
  • SyslinkMemMgr_getKnlHandle() : SyslinkMemMgr.h
  • SyslinkMemMgr_map() : SyslinkMemMgr.h
  • SyslinkMemMgr_setup() : SyslinkMemMgr.h
  • SyslinkMemMgr_translate() : SyslinkMemMgr.h
  • SyslinkMemMgr_unmap() : SyslinkMemMgr.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • u

- b -

  • Bits16 : Std.h
  • Bits32 : Std.h
  • Bits8 : Std.h
  • Bool : Std.h

- c -

  • Cache_ModuleObject : _Cache_qnx.h
  • Char : Std.h
  • CString : Std.h

- d -

  • Double : Std.h

- e -

  • Error_Block : Std.h

- f -

  • Float : Std.h
  • Frame : FrameQDefs.h
  • Frame_FrameBufInfo : FrameQDefs.h
  • Frame_FrameHeader : FrameQDefs.h
  • FrameQ_CommonOpenParams : FrameQ.h
  • FrameQ_Config : FrameQ.h
  • FrameQ_CpuAccessFlags : FrameQ.h
  • FrameQ_CreateParams : FrameQ.h
  • FrameQ_Frame : FrameQ.h
  • FrameQ_Handle : FrameQ.h
  • FrameQ_Interface : FrameQ.h
  • FrameQ_NotifyFunc : FrameQ.h
  • FrameQ_NotifyMsg : FrameQ.h
  • FrameQ_NotifyParams : FrameQ.h
  • FrameQ_NotifyType : FrameQ.h
  • FrameQ_OpenMode : FrameQ.h
  • FrameQ_Params : FrameQ.h
  • FrameQ_ShMem_Config : FrameQ_ShMem.h
  • FrameQ_ShMem_OpenParams : FrameQ_ShMem.h
  • FrameQ_ShMem_Params : FrameQ_ShMem.h
  • FrameQBufMgr_AddrType : FrameQBufMgr.h
  • FrameQBufMgr_BufType : FrameQBufMgr.h
  • FrameQBufMgr_CommonOpenParams : FrameQBufMgr.h
  • FrameQBufMgr_Config : FrameQBufMgr.h
  • FrameQBufMgr_CpuAccessFlags : FrameQBufMgr.h
  • FrameQBufMgr_CreateParams : FrameQBufMgr.h
  • FrameQBufMgr_Frame : FrameQBufMgr.h
  • FrameQBufMgr_FrameBufferInterface : FrameQBufMgr.h
  • FrameQBufMgr_FrameBufParams : FrameQBufMgr.h
  • FrameQBufMgr_FrameHeaderInterface : FrameQBufMgr.h
  • FrameQBufMgr_Handle : FrameQBufMgr.h
  • FrameQBufMgr_Interface : FrameQBufMgr.h
  • FrameQBufMgr_NotifyFunc : FrameQBufMgr.h
  • FrameQBufMgr_NotifyParams : FrameQBufMgr.h
  • FrameQBufMgr_Params : FrameQBufMgr.h
  • FrameQBufMgr_ShMem_Config : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_OpenParams : FrameQBufMgr_ShMem.h
  • FrameQBufMgr_ShMem_Params : FrameQBufMgr_ShMem.h

- g -

  • GateMonitor_Handle : GateMonitor.h
  • GateMonitor_Object : GateMonitor.h
  • GateMonitor_Params : GateMonitor.h
  • GateMP_Handle : GateMP.h
  • GateMP_LocalProtect : GateMP.h
  • GateMP_Params : GateMP.h
  • GateMP_RemoteProtect : GateMP.h
  • GateMutex_Handle : GateMutex.h
  • GateMutex_Object : GateMutex.h
  • GateMutex_Params : GateMutex.h
  • GateProcess_Handle : GateProcess.h
  • GateProcess_Object : GateProcess.h
  • GateSem_Handle : GateSem.h
  • GateSem_Object : GateSem.h
  • GateSem_Params : GateSem.h
  • GateSpinlock_Handle : GateSpinlock.h
  • GateSpinlock_Object : GateSpinlock.h
  • GateSpinlock_Params : GateSpinlock.h

- h -

  • HeapBufMP_ExtendedStats : HeapBufMP.h
  • HeapBufMP_Handle : HeapBufMP.h
  • HeapBufMP_Params : HeapBufMP.h
  • HeapMemMP_ExtendedStats : HeapMemMP.h
  • HeapMemMP_Handle : HeapMemMP.h
  • HeapMemMP_Params : HeapMemMP.h
  • HeapMultiBufMP_Bucket : HeapMultiBufMP.h
  • HeapMultiBufMP_ExtendedStats : HeapMultiBufMP.h
  • HeapMultiBufMP_Handle : HeapMultiBufMP.h
  • HeapMultiBufMP_Params : HeapMultiBufMP.h
  • HeapQueueMgr_Handle : HeapQueueMgr.h
  • HeapQueueMgr_Params : HeapQueueMgr.h

- i -

  • IArg : Std.h
  • IGateProvider_ENTER : IGateProvider.h
  • IGateProvider_Handle : IGateProvider.h
  • IGateProvider_LEAVE : IGateProvider.h
  • IGateProvider_Object : IGateProvider.h
  • IHeap_allocFxn : IHeap.h
  • IHeap_freeFxn : IHeap.h
  • IHeap_getKnlHandleFxn : IHeap.h
  • IHeap_getStatsFxn : IHeap.h
  • IHeap_Handle : IHeap.h
  • IHeap_isBlockingFxn : IHeap.h
  • IHeap_Object : IHeap.h
  • Int : Std.h
  • Int16 : Std.h
  • Int32 : Std.h
  • Int8 : Std.h
  • IpcMemMgr_Config : IpcMemMgr.h
  • IpcMemMgr_SHPtr : IpcMemMgr.h

- l -

  • LDouble : Std.h
  • List_Elem : List.h
  • List_Handle : List.h
  • List_Object : List.h
  • List_Params : List.h
  • ListMP_Elem : ListMP.h
  • ListMP_Handle : ListMP.h
  • ListMP_Params : ListMP.h
  • Long : Std.h

- m -

  • Memory_Stats : MemoryDefs.h
  • MemoryOS_MapInfo : _MemoryDefs.h
  • MemoryOS_SGList : _MemoryDefs.h
  • MemoryOS_UnmapInfo : _MemoryDefs.h
  • MessageQ_Handle : MessageQ.h
  • MessageQ_Msg : MessageQ.h
  • MessageQ_QueueId : MessageQ.h
  • MessageQ_QueueIndex : MessageQ.h

- n -

  • NameServer_Handle : NameServer.h
  • NameServer_Params : NameServer.h
  • Notify_FnNotifyCbck : Notify.h

- o -

  • OsalSemaphore_Handle : OsalSemaphore.h

- p -

  • ProcMgr_AddrInfo : ProcMgr.h
  • ProcMgr_AttachParams : ProcMgr.h
  • ProcMgr_Handle : ProcMgr.h
  • ProcMgr_MapMask : ProcMgr.h
  • ProcMgr_MappedMemEntry : ProcMgr.h
  • ProcMgr_ProcInfo : ProcMgr.h
  • ProcMgr_SectionInfo : ProcMgr.h
  • ProcMgr_StartParams : ProcMgr.h
  • Ptr : Std.h

- r -

  • ResTrack_Fxn : ResTrack.h
  • ResTrack_Handle : ResTrack.h
  • RingIO_BufPtr : RingIO.h
  • RingIO_Flags : RingIO.h
  • RingIO_Handle : RingIO.h
  • RingIO_NotifyFxn : RingIO.h
  • RingIO_NotifyMsg : RingIO.h
  • RingIO_NotifyType : RingIO.h
  • RingIO_OpenMode : RingIO.h
  • RingIO_openParams : RingIO.h
  • RingIO_Params : RingIO.h
  • RingIO_sharedMemReqDetails : RingIO.h
  • RingIO_Type : RingIO.h
  • RingIOShm_Params : RingIOShm.h

- s -

  • SharedRegion_Entry : SharedRegion.h
  • SharedRegion_SRPtr : SharedRegion.h
  • Short : Std.h
  • SizeT : Std.h
  • String : Std.h
  • SyslinkMemMgr_AllocBlock : SyslinkMemMgr.h
  • SyslinkMemMgr_AllocParams : SyslinkMemMgr.h
  • SyslinkMemMgr_CreateParams : SyslinkMemMgr.h
  • SyslinkMemMgr_Handle : SyslinkMemMgr.h
  • SyslinkMemMgr_Object : SyslinkMemMgr.h
  • SyslinkMemMgr_Type : SyslinkMemMgr.h

- u -

  • UArg : Std.h
  • UChar : Std.h
  • UInt : Std.h
  • UInt16 : Std.h
  • UInt32 : Std.h
  • UInt8 : Std.h
  • ULong : Std.h
  • UShort : Std.h


SysLink Application Programming Interface (API): Data Fields

  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • Gate_systemHandle : Gate.h
  • SysLink_params : SysLink.h


SysLink Application Programming Interface (API): Alphabetical List

  • Data Structures
  • Data Structure Index
  • Data Fields

Data Structure Index

C | F | G | H | I | L | M | N | P | R | S
C
FrameQBufMgr_CreateParams_Tag HeapMemMP_Params ListMP_Params ProcMgr_ProcInfo_tag
Cache_ModuleObject FrameQBufMgr_FrameBufParams_Tag HeapMultiBufMP_Bucket
M
ProcMgr_SectionInfo_tag
F
FrameQBufMgr_NotifyParams_Tag HeapMultiBufMP_ExtendedStats Memory_Stats_tag ProcMgr_StartParams_tag
Frame_FrameBufInfo_tag FrameQBufMgr_Params HeapMultiBufMP_Params MemoryOS_MapInfo_tag
R
Frame_FrameHeader_Tag FrameQBufMgr_ShMem_OpenParams_tag HeapQueueMgr_Params MemoryOS_SGList ResTrack_Params
FrameQ_CommonOpenParams_Tag FrameQBufMgr_ShMem_Params_tag
I
MemoryOS_UnmapInfo_tag RingIO_openParams_Tag
FrameQ_Config_Tag
G
IGateProvider_Object MessageQ_MsgHeader RingIO_Params_Tag
FrameQ_CreateParams_Tag GateMP_Params IHeap_Object_tag MessageQ_Params RingIO_sharedMemReqDetails_tag
FrameQ_NotifyParams_Tag GateProcess_Params IpcMemMgr_Config_t
N
RingIOShm_Params_Tag
FrameQ_Params GateProcess_ShMem
L
NameServer_Params
S
FrameQ_ShMem_OpenParams_tag
H
List_Elem_tag
P
SharedRegion_Entry
FrameQ_ShMem_Params_tag HeapBufMP_ExtendedStats List_Object_tag ProcMgr_AddrInfo_tag SyslinkMemMgr_AllocBlock_tag
FrameQBufMgr_CommonOpenParams_Tag HeapBufMP_Params List_Params_tag ProcMgr_AttachParams_tag SyslinkMemMgr_AllocParams_tag
FrameQBufMgr_Config_Tag HeapMemMP_ExtendedStats ListMP_Elem ProcMgr_MappedMemEntry SyslinkMemMgr_CreateParams_tag
C | F | G | H | I | L | M | N | P | R | S
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines


SysLink Application Programming Interface (API): disclaimer.dox File Reference

disclaimer.dox File Reference

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines


SysLink Application Programming Interface (API): doxygen.txt File Reference

doxygen.txt File Reference

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines


SysLink Application Programming Interface (API): Graph Legend

Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };

/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };

/* Class not documented with doxygen comments */
class Undocumented { };

/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };

/*! A template class */
template<class T> class Templ { };

/*! Class that is inherited using protected inheritance */
class ProtectedBase { };

/*! Class that is inherited using private inheritance */
class PrivateBase { };

/*! Class that is used by the Inherited class */
class Used { };

/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
                  protected ProtectedBase,
                  private PrivateBase,
                  public Undocumented,
                  public Templ<int>
{
  private:
    Used *m_usedClass;
};

This will result in the following graph:

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a grey border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

The arrows have the following meaning:

  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.


SysLink Application Programming Interface (API): Page Index

Related Pages

Here is a list of all related documentation pages:
  • Disclaimer
  • Deprecated List