Data Structures | |
struct | IRES_YieldContext |
Specifies the algorithm specific handles and context save & restore function pointers and arguments that the framework will call during a context switch. More... | |
struct | IRES_Fxns |
These fxns are used to query/grant the resources requested by the algorithm at initialization time, and to change these resources at runtime. All these fxns are implemented by the algorithm, and called by the client of the algorithm. More... | |
Typedefs | |
typedef enum IRES_YieldResourceType | IRES_YieldResourceType |
typedef Void(* | IRES_ContextSaveFxn )(IALG_Handle algHandle, Void *contextArgs) |
typedef Void(* | IRES_ContextRestoreFxn )(IALG_Handle algHandle, Void *contextArgs) |
typedef struct IRES_YieldContext | IRES_YieldContext |
Specifies the algorithm specific handles and context save & restore function pointers and arguments that the framework will call during a context switch. | |
typedef IRES_YieldContext * | IRES_YieldContextHandle |
typedef Void * | IRES_YieldArgs |
typedef Void(* | IRES_YieldFxn )(IRES_YieldResourceType resourceType, IRES_YieldContextHandle algYieldContext, IRES_YieldArgs yieldArgs) |
The 'yield function' pointer and 'yield arguments' are supplied to an algorithm during its IRES interface 'initialization'. The algorithm optionally calls the yield function during its 'process' stages for co-operative multi-tasking and pre-emption by a higher priority algorithm. | |
typedef struct IRES_Fxns | IRES_Fxns |
These fxns are used to query/grant the resources requested by the algorithm at initialization time, and to change these resources at runtime. All these fxns are implemented by the algorithm, and called by the client of the algorithm. | |
Enumerations | |
enum | IRES_YieldResourceType { IRES_ALL = 0, IRES_SCRATCHMEMORY, IRES_SCRATCHDMA, IRES_RESOURCEHANDLE } |
enum | IRES_Status { IRES_OK = 0, IRES_EALG = 1, IRES_EEXISTS = 2, IRES_EFAIL = 3, IRES_EINIT = 4, IRES_ENOINIT = 5, IRES_ENOMEM = 6, IRES_ENORESOURCE = 7, IRES_ENOTFOUND = 8 } |
IRES_Status defines the standard error and success codes returned by IRES APIs. More... | |
enum | IRES_RequestMode { IRES_SCRATCH, IRES_PERSISTENT, IRES_LATEACQUIRE } |
Mode in which resources can be requested. More... | |
typedef enum IRES_Status | IRES_Status |
IRES_Status defines the standard error and success codes returned by IRES APIs. | |
typedef struct IRES_ProtocolRevision | IRES_ProtocolRevision |
Protocol revision type. Used to ensure the given 'protocol' revision can be validated. | |
typedef enum IRES_RequestMode | IRES_RequestMode |
Mode in which resources can be requested. | |
typedef struct IRES_ProtocolArgs | IRES_ProtocolArgs |
Abstract Protocol Arguments structure definition. Actual arguments passed by the algorithm to request a resource from a specific IRES Protocol will extend and supply the concrete definitions. | |
typedef struct IRES_ResourceDescriptor | IRES_ResourceDescriptor |
Descriptor to Logical Resource. | |
typedef struct IRES_Properties | IRES_Properties |
Abstract Resource Properties structure/pointer definition. Actual resource protocol will supply the concrete property definitions. The list of attributes for the actual resource will expose the relevant features that needs to be known to a client to use the resource, such as: resource register base addresses and offsets, critical register and memory region addresses, ... | |
typedef struct IRES_Obj | IRES_Obj |
IRES_Obj holds the private state associated with each logical resource. | |
typedef struct IRES_Obj * | IRES_Handle |
Handle to "logical" resource. |
The IRES interface enables algorithms to request and receive handles representing private logical resources.
typedef enum IRES_YieldResourceType IRES_YieldResourceType |
typedef Void(* IRES_ContextSaveFxn)(IALG_Handle algHandle, Void *contextArgs) |
typedef Void(* IRES_ContextRestoreFxn)(IALG_Handle algHandle, Void *contextArgs) |
typedef struct IRES_YieldContext IRES_YieldContext |
Specifies the algorithm specific handles and context save & restore function pointers and arguments that the framework will call during a context switch.
typedef IRES_YieldContext* IRES_YieldContextHandle |
typedef Void* IRES_YieldArgs |
typedef Void(* IRES_YieldFxn)(IRES_YieldResourceType resourceType, IRES_YieldContextHandle algYieldContext, IRES_YieldArgs yieldArgs) |
The 'yield function' pointer and 'yield arguments' are supplied to an algorithm during its IRES interface 'initialization'. The algorithm optionally calls the yield function during its 'process' stages for co-operative multi-tasking and pre-emption by a higher priority algorithm.
An operating system level context switch may occur during the yield call. Whenever a context switch occurs, all scratch resources owned by the yielding algorithm must be context saved prior to the context switch and restored and initialized prior to 'resumption' by the framework/application. The 'yielding' algorithm must supply the IRES_YieldContext and the 'yield arguments' it received during IRES initialization. The framework calls the context save & restore functions provided by the yielding algorithm's IRES_YieldContext.
These fxns are used to query/grant the resources requested by the algorithm at initialization time, and to change these resources at runtime. All these fxns are implemented by the algorithm, and called by the client of the algorithm.
typedef enum IRES_Status IRES_Status |
IRES_Status defines the standard error and success codes returned by IRES APIs.
typedef struct IRES_ProtocolRevision IRES_ProtocolRevision |
Protocol revision type. Used to ensure the given 'protocol' revision can be validated.
typedef enum IRES_RequestMode IRES_RequestMode |
Mode in which resources can be requested.
typedef struct IRES_ProtocolArgs IRES_ProtocolArgs |
Abstract Protocol Arguments structure definition. Actual arguments passed by the algorithm to request a resource from a specific IRES Protocol will extend and supply the concrete definitions.
typedef struct IRES_ResourceDescriptor IRES_ResourceDescriptor |
Descriptor to Logical Resource.
typedef struct IRES_Properties IRES_Properties |
Abstract Resource Properties structure/pointer definition. Actual resource protocol will supply the concrete property definitions. The list of attributes for the actual resource will expose the relevant features that needs to be known to a client to use the resource, such as: resource register base addresses and offsets, critical register and memory region addresses, ...
IRES_Obj holds the private state associated with each logical resource.
typedef struct IRES_Obj* IRES_Handle |
Handle to "logical" resource.
enum IRES_Status |
IRES_Status defines the standard error and success codes returned by IRES APIs.
IRES_OK |
Success |
IRES_EALG |
Error in algorithm IRES_Fxns functions |
IRES_EEXISTS |
Error, already exists |
IRES_EFAIL |
Generic Error Message |
IRES_EINIT |
Error, already initialized |
IRES_ENOINIT |
Error, not initialized |
IRES_ENOMEM |
Error, not enough memory |
IRES_ENORESOURCE |
Error, resource unavailable |
IRES_ENOTFOUND |
Error, not found |
enum IRES_RequestMode |
Mode in which resources can be requested.