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 protocol/protocol revision and the device specific resource manager implementation with the Resource Registry of the RMAN. | |
IRES_Status | RMAN_unregister (IRESMAN_Fxns *resmanFxns) |
Unregister the protocol and the corresponding resource manager implementation from the Resource Registry. | |
IRES_Status | RMAN_assignResources (IALG_Handle algHandle, IRES_Fxns *resFxns, Int scratchGroupId) |
Assign resources to the algorithm indicated by algHandle. The resource requirements can be determined by using the IRES_Fxns implementation. | |
IRES_Status | RMAN_allocateResources (Int requestId, IRES_ResourceDescriptor *resDesc, Int numResources, Int scratchGroupId) |
Directly allocate IRES resources by client without implementing IRES_Fxns. | |
IRES_Status | RMAN_freeResources (IALG_Handle algHandle, IRES_Fxns *resFxns, Int scratchGroupId) |
Free resources held by the algorithm resource handle. | |
IRES_Status | RMAN_freeAllocatedResources (Int requestId, IRES_ResourceDescriptor *resDesc, Int numResources, 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. | |
Defines | |
#define | RMAN_MODNAME "ti.sdo.fc.rman" |
Name to pass to Diags_setMask() to enable logging for RMAN functions. For example, Diags_setMask(RMAN_MODNAME"+EX1234567"); turns on all Log statements in this module. Diags_setMask() must be called after initialization to take effect. | |
#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. | |
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... | |
Typedefs | |
typedef struct Sem_Obj * | RMAN_SemHandle |
Declare abstract handle for Semaphore object. | |
typedef struct RMAN_Params | 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). | |
Variables | |
__FAR__ RMAN_Params | RMAN_PARAMS |
Initialization parameters for the generic Resource Manager. | |
__FAR__ IRESMAN_Fxns * | RMAN_TABLE [] |
RMAN Table to hold IRESMAN registrations. | |
__FAR__ short | RMAN_FREE_ENTRIES [] |
Free Table to hold entries freed from RMAN Table. | |
__FAR__ short | RMAN_numRegistryEntries |
Number of entries statically configured for the Resource Registry table. Set this variable to zero if no static configuration is required. | |
__FAR__ IRESMAN_Fxns ** | RMAN_registryEntries |
To allow for static configuration of the Resource Registry table this can be set to a valid configuration table or to NULL. Set this variable to NULL if no static configuration is required. | |
__FAR__ IRESMAN_Params ** | RMAN_registryResmanArgs |
Initialization arguments for the entries to be registered Set this variable to NULL if no static configuration is required. | |
__FAR__ unsigned int ** | RMAN_iresVTable |
Table that holds the mapping from algorithms IALG_Fxns to IRES_Fxns. |
IRES generic Resource Manager RMAN Definitions - Generic Resource Manager that manages resource allocation for algorithms that implement the IRES interface
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_OK | IRES RMAN created successfully |
IRES_ENORESOURCE | One of the calls to the device specific Resource Manager failed |
IRES_Status RMAN_exit | ( | Void | ) |
Delete the generic IRES RMAN and release memory back.
IRES_OK | IRES RMAN exited successfully |
IRES_EFAIL | Error closing device specific RESMAN |
IRES_Status RMAN_register | ( | IRESMAN_Fxns * | resmanFxns, |
IRESMAN_Params * | initArgs | ||
) |
Register the protocol/protocol revision and the device specific resource manager implementation with the Resource Registry of the RMAN.
[in] | resmanFxns | Device-specific implementation of the RESMAN interfaces |
[in] | initArgs | Arguments to the initialization interface of the RESMAN interfaces |
IRES_OK | Registered successfully |
IRES_EEXISTS | Protocol already exists |
IRES_ENORESOURCE | Device specific Resman failed to initialize Resource Manager failed |
IRES_EFAIL | Error closing device specific RESMAN |
IRES_Status RMAN_unregister | ( | IRESMAN_Fxns * | resmanFxns ) |
Unregister the protocol and the corresponding resource manager implementation from the Resource Registry.
[in] | resmanFxns | Device-specific implementation of the RESMAN interfaces |
IRES_OK | Unregistered successfully |
IRES_ENOTFOUND | Entry not found in the RMAN Table |
IRES_EFAIL | Error closing device specific RESMAN |
IRES_Status RMAN_assignResources | ( | IALG_Handle | algHandle, |
IRES_Fxns * | resFxns, | ||
Int | scratchGroupId | ||
) |
Assign resources to the algorithm indicated by algHandle. The resource requirements can be determined by using the IRES_Fxns implementation.
[in] | algHandle | Handle to the algorithm |
[in] | resFxns | Handle to the IRES implementation |
[in] | scratchGroupId | Id of the scratch group in which resources are requested from -1 if persistent resources are requested. Note: If performing cooperative preemption, use the same scratchGroupId to request resources and to create algorithm. Failure to do so, will lead to unexpected behaviour. |
IRES_OK | Resources assigned successfully |
IRES_EALG | One of the calls to the IRES interfaces of the algorithm failed |
IRES_ENOMEM | Not enough memory |
IRES_ENOTFOUND | Entry not found |
IRES_ENORESOURCE | Resources unavailable |
IRES_EFAIL | Error freeing handles etc |
IRES_Status RMAN_allocateResources | ( | Int | requestId, |
IRES_ResourceDescriptor * | resDesc, | ||
Int | numResources, | ||
Int | scratchGroupId | ||
) |
Directly allocate IRES resources by client without implementing IRES_Fxns.
[in] | requestId | Unique identifier used when requesting IRES resource allocation directly. Same identifier must be supplied when freeing allocated resources using RMAN_freeAllocatedResources |
[in] | resDesc | IRES_ResourceDescriptor containing attributes of the resoureces that are being requested. |
[in] | numResources | Number of request descriptors in the resDesc array used for requesting resources. |
[in] | scratchGroupId | Id of the scratch group in which resources are requested from -1 if persistent resources are requested. Note: If performing cooperative preemption, use the same scratchGroupId to request resources and to create algorithm. Failure to do so, will lead to unexpected behaviour. |
IRES_OK | Resources assigned successfully |
IRES_ENOMEM | Not enough memory |
IRES_ENOTFOUND | Entry not found |
IRES_ENORESOURCE | Resources unavailable |
IRES_EFAIL | Error freeing handles etc |
IRES_Status RMAN_freeResources | ( | IALG_Handle | algHandle, |
IRES_Fxns * | resFxns, | ||
Int | scratchGroupId | ||
) |
Free resources held by the algorithm resource handle.
[in] | algHandle | Handle to the algorithm |
[in] | resFxns | Handle to the IRES implementation |
[in] | scratchGroupId | Id of the scratch group in which resources were requested -1 if persistent resources are requested |
IRES_OK | Resources freed successfully |
IRES_EALG | One of the calls to the IRES interfaces of the algorithm failed |
IRES_ENOMEM | Not enough memory |
IRES_ENOTFOUND | Entry not found |
IRES_ENORESOURCE | Error obtaining resource information |
IRES_EFAIL | Error freeing handles etc |
IRES_ENOMEM | Out of memory |
IRES_Status RMAN_freeAllocatedResources | ( | Int | requestId, |
IRES_ResourceDescriptor * | resDesc, | ||
Int | numResources, | ||
Int | scratchGroupId | ||
) |
Free resources held by the algorithm resource handle.
[in] | requestId | Unique identifier that has been previously used when requesting IRES resource allocation directly via RMAN_allocateResources Same identifier must be supplied when freeing allocated resources. |
[in] | resDesc | IRES_ResourceDescriptor containing attributes of the resoureces that have been used to obtain allocated resources. |
[in] | numResources | Number of request descriptors in the resDesc array used for requesting resources. |
[in] | scratchGroupId | Id of the scratch group in which resources were requested -1 if persistent resources are requested |
IRES_OK | Resources freed successfully |
IRES_ENOTFOUND | Entry not found |
IRES_ENORESOURCE | Error obtaining resource information |
IRES_EFAIL | Error freeing handles etc |
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.
[in] | algHandle | Handle to the algorithm |
[in] | resourceHandle | Handle to the resource |
[in] | resFxns | Handle to the IRES implementation |
[in] | scratchGroupId | Id of the scratch group in which resources are requested from |
IRES_OK | Resource activated successfully |
IRES_Status RMAN_activateAllResources | ( | IALG_Handle | algHandle, |
IRES_Fxns * | resFxns, | ||
Int | scratchGroupId | ||
) |
Activate all resources held by the algorithm.
[in] | algHandle | Handle to the algorithm |
[in] | resFxns | Handle to the IRES implementation |
[in] | scratchGroupId | Id of the scratch group in which resources are requested from |
IRES_OK | All resources activated successfully |
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.
[in] | algHandle | Handle to the algorithm |
[in] | resourceHandle | Handle to the resource |
[in] | resFxns | Handle to the IRES implementation |
[in] | scratchGroupId | Id of the scratch group in which resources are requested from |
IRES_OK | Resource deactivated successfully |
IRES_Status RMAN_deactivateAllResources | ( | IALG_Handle | algHandle, |
IRES_Fxns * | resFxns, | ||
Int | scratchGroupId | ||
) |
Deactivate all resources held by the algorithm.
[in] | algHandle | Handle to the algorithm |
[in] | resFxns | Handle to the IRES implementation |
[in] | scratchGroupId | Id of the scratch group in which resources are requested from |
IRES_OK | Resources deactivated successfully |
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.
[in] | resource | Enum identifying type of resource (ALL, Scratch Memory, Scratch DMA, IRES Resource) |
[in] | algYieldContext | Handle to the yield context that contains information supplied by the algorithm including the algorithm handle, the corresponding context save/restore fxns and arguments with which to call these fxns. |
[in] | yieldArgs | Framework supplied yield arguments that are passed to the algorithm at the time of granting resource handles. These should be passed back unmodified to this function. |
#define RMAN_MODNAME "ti.sdo.fc.rman" |
Name to pass to Diags_setMask() to enable logging for RMAN functions. For example, Diags_setMask(RMAN_MODNAME"+EX1234567"); turns on all Log statements in this module. Diags_setMask() must be called after initialization to take effect.
#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.
typedef struct Sem_Obj* RMAN_SemHandle |
Declare abstract handle for Semaphore object.
typedef struct RMAN_Params 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).
__FAR__ RMAN_Params RMAN_PARAMS |
Initialization parameters for the generic Resource Manager.
__FAR__ IRESMAN_Fxns* RMAN_TABLE[] |
RMAN Table to hold IRESMAN registrations.
__FAR__ short RMAN_FREE_ENTRIES[] |
Free Table to hold entries freed from RMAN Table.
__FAR__ short RMAN_numRegistryEntries |
Number of entries statically configured for the Resource Registry table. Set this variable to zero if no static configuration is required.
__FAR__ IRESMAN_Fxns** RMAN_registryEntries |
To allow for static configuration of the Resource Registry table this can be set to a valid configuration table or to NULL. Set this variable to NULL if no static configuration is required.
__FAR__ IRESMAN_Params** RMAN_registryResmanArgs |
Initialization arguments for the entries to be registered Set this variable to NULL if no static configuration is required.
__FAR__ unsigned int** RMAN_iresVTable |