Data Structures | Defines

mpcsdefs.h File Reference

#include <dsplink.h>
Include dependency graph for dsp/inc/mpcsdefs.h:

Go to the source code of this file.

Data Structures

struct  MPCS_Attrs_tag
struct  MPCS_ProcObj_tag
struct  MPCS_ShObj_tag
struct  MPCS_Entry_tag
struct  MPCS_Ctrl_tag

Defines

#define MPCS_INVALID_ID   (Uint32) -1
 Invalid value for identifier(s) used by the MPCS component ============================================================================.
#define MPCS_RESV_LOCKNAME   "DSPLINK_MPCS_RESV"
 Special reserved name prefix of the MPCS object(s) which are not stored in the entries table of the MPCS region. ============================================================================.
#define MPCS_RESV_LOCKNAMELEN   17
 String length of the special reserved name prefix of the MPCS object(s) which are not stored in entries table of the MPCS region. ============================================================================.

Typedefs

MPCS_Attrs

This structure defines the attributes for creation of MPCS object.

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

Parameters:
poolIdID of the pool from which the MPCS object is to be allocated. This must be provided when the memory for the MPCS object is to be allocated internally by the MPCS component. ============================================================================
typedef struct MPCS_Attrs_tag MPCS_Attrs
MPCS_ProcObj

This structure defines an object for a single processor used by the Multiprocessing Critical Section object.

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

Parameters:
localLockLocal lock to be used for protection on specific processor. The value stored also depends on the Operating System being used
flagFlags indicating whether the shared resource is being claimed by the processor.
freeObjectContains information about whether the object was allocated internally, and needs to be freed at the time of MPCS delete.
conflictsNumber of conflicts happened in MPCS Enter. Defined only when profiling is enabled.
numCallsNumber of calls made to MPCS Enter. Defined only when profiling is enabled.
priorityStore priority of current task in MPCS-enter. Restore priority while exiting MPCS in MPCS_leave.
mpcsEntryAddrAddress of shared region MPCS_entry for debugging ============================================================================
typedef struct MPCS_ProcObj_tag MPCS_ProcObj
MPCS_ShObj

This structure defines the shared Multiprocessor Critical Section object, which is used for protecting a specific critical section between multiple processors. The memory for this object is accessible to the two processors using the MPCS object.

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

Parameters:
gppMpcsObjMPCS object for the GPP processor.
gppPaddingPadding for alignment, depending on the platform.
dspMpcsObjMPCS object for the DSP processor.
dspPaddingPadding for alignment, depending on the platform.
localFlagFlag is used to identify the SEM object created during MPCS create phase or open phase
turnIndicates the processor that owns the turn to enter the critical section.
paddingPadding for alignment, depending on the platform. ============================================================================
typedef struct MPCS_ShObj_tag MPCS_ShObj
MPCS_Obj

Multiprocessor Critical Section object, which is used for protecting a specific critical section between multiple processors. For the DSP-side, this is the same as the shared MPCS object. ============================================================================

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

typedef MPCS_ShObj MPCS_Obj
MPCS_Handle

Handle to the MPCS object. ============================================================================

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

typedef MPCS_ObjMPCS_Handle
MPCS_Entry

Global entry structure for an MPCS object. Every MPCS object in the system is identified through information present in the entry structure.

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

Parameters:
ownerProcIdID of the processor that created the MPCS object.
poolIdID of the pool used to allocate the MPCS object.
physAddressPhysical address of the MPCS object.
nameUnique system wide name used for identifying the MPCS object.
paddingPadding for alignment, depending on the platform. ============================================================================
typedef struct MPCS_Entry_tag MPCS_Entry
MPCS_Ctrl

This structure defines the control structure required by the MPCS component. It contains information about all MPCS objects shared between the GPP and a specific DSP.

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

Parameters:
isInitializedIndicates whether the MPCS region has been initialized.
dspIdID of the DSP with which the MPCS region is shared.
maxEntriesMaximum number of MPCS instances supported by the MPCS.
ipsIdID of the IPS to be used (if any). A value of -1 indicates that no IPS is required by the MPCS.
ipsEventNoIPS Event number associated with MPCS (if any). A value of -1 indicates that no IPS is required by the MPCS.
dspAddrEntryPointer to array in DSP address space of MPCS objects that can be created.
paddingPadding for alignment, depending on the platform.
lockObjMPCS lock object to provide mutually exclusive access to the MPCS region. ============================================================================
typedef struct MPCS_Ctrl_tag MPCS_Ctrl

Define Documentation

#define MPCS_INVALID_ID   (Uint32) -1

Invalid value for identifier(s) used by the MPCS component ============================================================================.

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

Constant:
MPCS_INVALID_ID
#define MPCS_RESV_LOCKNAME   "DSPLINK_MPCS_RESV"

Special reserved name prefix of the MPCS object(s) which are not stored in the entries table of the MPCS region. ============================================================================.

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

Constant:
MPCS_RESV_LOCKNAME
#define MPCS_RESV_LOCKNAMELEN   17

String length of the special reserved name prefix of the MPCS object(s) which are not stored in entries table of the MPCS region. ============================================================================.

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

Constant:
MPCS_RESV_LOCKNAMELEN

Typedef Documentation

typedef struct MPCS_Attrs_tag MPCS_Attrs
typedef struct MPCS_ShObj_tag MPCS_ShObj
typedef struct MPCS_Entry_tag MPCS_Entry
typedef struct MPCS_Ctrl_tag MPCS_Ctrl
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Copyright 2012, Texas Instruments Incorporated