rman.h File Reference


Detailed Description

IRES generic Resource Manager RMAN Definitions - Generic Resource Manager that manages resource allocation for algorithms that implement the IRES interface.

#include <ti/xdais/ires.h>
#include <ti/sdo/fc/ires/iresman.h>
Include dependency graph for rman.h:

Go to the source code of this file.

Data Structures

struct  RMAN_Params
 The module configuration structure for RMAN. It is set at design time by the system integrator to register the specific Resource Managers(IRESMAN implementations). More...
struct  RMAN_YieldArgs
 Yield Arguments passed to the algorithm if RMAN's useDSKT2 flag is set. These arguments are used by the yield function set/get context and release/acquire locks for a particular scratch group. More...

Defines

#define ti_sdo_fc_ires_NOPROTOCOLREV
#define RMAN_GTNAME   "ti.sdo.fc.rman"
 Name used to identify the GT module.
#define RMAN_PROTOCOLNAMESIZE   200
 Size of the Protocol Name in the Resource Registry Table.

Typedefs

typedef struct Sem_Obj * RMAN_SemHandle
 Declare abstract handle for Semaphore object.

Functions

IRES_Status RMAN_init (Void)
 Initialize the RMAN object with static information from the headers/configuration etc. This function has to return successfully before the other APIs are called.
IRES_Status RMAN_exit (Void)
 Delete the generic IRES RMAN and release memory back.
IRES_Status RMAN_register (IRESMAN_Fxns *resmanFxns, IRESMAN_Params *initArgs)
 Register the IRESMAN protocol/protocol revision i.e., device specific resource manager implementation with the Resource Registry of RMAN. RMAN logs these entries in an internal table that is uses to satisfy requests for different IRES resources.
IRES_Status RMAN_unregister (IRESMAN_Fxns *resmanFxns)
 Unregisters the protocol and the corresponding resource manager implementation from RMAN's Resource Registry. This API is called when this resource no longer needs to be managed by RMAN.
IRES_Status RMAN_assignResources (IALG_Handle algHandle, IRES_Fxns *resFxns, Int scratchGroupId)
 Assign IRES resources to the algorithm indicated by algHandle. Algorithm could request multiple IRES resources of same/ different type through its IRES implementation. RMAN would identify which IRESMAN implementation (that is registered with it) to query and then request resources from that, to satisfy the individual IRES requests. Non-algorithm users of this API can obtain resources by passing * NULL as the algHandle. Resources will still be assigned to the IRES_Fxns::initResources API.
IRES_Status RMAN_freeResources (IALG_Handle algHandle, IRES_Fxns *resFxns, Int scratchGroupId)
 Free resources held by the algorithm resource handle.
IRES_Status RMAN_activateResource (IALG_Handle algHandle, IRES_Handle resourceHandle, IRES_Fxns *resFxns, Int scratchGroupId)
 Activate resource identified by the resourceHandle held by the algorithm.
IRES_Status RMAN_activateAllResources (IALG_Handle algHandle, IRES_Fxns *resFxns, Int scratchGroupId)
 Activate all resources held by the algorithm.
IRES_Status RMAN_deactivateResource (IALG_Handle algHandle, IRES_Handle resourceHandle, IRES_Fxns *resFxns, Int scratchGroupId)
 Deactivate resource identified by the resourceHandle held by the algorithm.
IRES_Status RMAN_deactivateAllResources (IALG_Handle algHandle, IRES_Fxns *resFxns, Int scratchGroupId)
 Deactivate all resources held by the algorithm.
void RMAN_yield (IRES_YieldResourceType resource, IRES_YieldContextHandle algYieldContext, IRES_YieldArgs yieldArgs)
 Yield function specifically for use when DSKT2 based algorithms need cooperative preemption and multi-tasking support This function is called by the algorithm at pre-determined points during its execution, to allow another algorithm of same, or higher prioirty to preempt its execution.

Variables

__FAR__ RMAN_Params RMAN_PARAMS
__FAR__ IRESMAN_FxnsRMAN_TABLE []
__FAR__ short RMAN_FREE_ENTRIES []
__FAR__ short RMAN_numRegistryEntries
__FAR__ IRESMAN_Fxns ** RMAN_registryEntries
__FAR__ IRESMAN_Params ** RMAN_registryResmanArgs

Define Documentation

#define ti_sdo_fc_ires_NOPROTOCOLREV

Copyright 2009, Texas Instruments Incorporated