Framework Components Application Programming Interface (API)  fc-v07
ires.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2006-2012, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  *
32  */
47 #ifndef IRES_
48 #define IRES_
49 
52 
53 
54 #ifdef __cplusplus
55 extern "C" {
56 #endif
57 
58 #include "ires_common.h"
59 
60 typedef enum IRES_YieldResourceType {
61  IRES_ALL = 0,
74 
75 typedef Void (*IRES_ContextSaveFxn)(IALG_Handle algHandle, Void *contextArgs);
76 typedef Void (*IRES_ContextRestoreFxn)
77  (IALG_Handle algHandle, Void *contextArgs);
78 
84 typedef struct IRES_YieldContext {
85 
90 
98 
111 
126 
134  Void *contextArgs;
135 
137 
138 
140 typedef Void *IRES_YieldArgs;
141 
159 typedef Void (*IRES_YieldFxn)(IRES_YieldResourceType resourceType,
160  IRES_YieldContextHandle algYieldContext, IRES_YieldArgs yieldArgs);
161 
168 typedef struct IRES_Fxns {
169 
175 
181  IRES_ResourceDescriptor *resourceDescriptors);
182 
191 
204  IRES_ResourceDescriptor * resourceDescriptor,
205  IRES_YieldFxn yieldFxn, IRES_YieldArgs yieldArgs);
206 
218  IRES_ResourceDescriptor * resourceDescriptor,
219  IRES_YieldFxn yieldFxn, IRES_YieldArgs yieldArgs);
220 
226  IRES_ResourceDescriptor * resourceDescriptor);
227 
238  IRES_Handle resourceHandle);
239 
247 
255  IRES_Handle resourceHandle);
256 
264 
265 } IRES_Fxns;
266 
270 #ifdef __cplusplus
271 }
272 #endif /* extern "C" */
273 
274 
275 #endif /* IRES_ */
Definition: ires.h:70
Definition: ires.h:64
IRES_Status
IRES_Status defines the standard error and success codes returned by IRES APIs.
Definition: ires_common.h:57
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 inter...
Definition: ires.h:159
Algorithm instance object definition.
Definition: ialg.h:159
IRES_Handle resourceHandle
Definition: ires.h:97
IRES Resource Protocol Definitions - IRES Resource.
IRES_YieldContext * IRES_YieldContextHandle
Definition: ires.h:139
IRES_ContextSaveFxn contextSave
Definition: ires.h:110
Definition: ires.h:67
IRES_ContextRestoreFxn contextRestore
Definition: ires.h:125
IRES_Status(* activateAllResources)(IALG_Handle handle)
Resource Activation call to grant the algorithm instance exclusive access to all resources it acquire...
Definition: ires.h:246
IALG_Handle algHandle
Definition: ires.h:89
IRES_Status(* reinitResources)(IALG_Handle handle, IRES_ResourceDescriptor *resourceDescriptor, IRES_YieldFxn yieldFxn, IRES_YieldArgs yieldArgs)
Re-assignment function to grant the algorithm instance a list of "modified" IRES resources. The algorithm may choose to not support the re-assignment and indicate this by returning failure. In case of success the algorithm updates its internal state to reflect the new resource information, but may not use or access the resource state until the resource is activated via the activateResource call.
Definition: ires.h:217
Void * contextArgs
Definition: ires.h:134
IRES_Status(* getResourceDescriptors)(IALG_Handle handle, IRES_ResourceDescriptor *resourceDescriptors)
Query function to obtain the list of IRES resources requested by the algorithm instance.
Definition: ires.h:180
IRES_Obj holds the private state associated with each logical resource.
Definition: ires_common.h:176
IRES_Status(* activateResource)(IALG_Handle handle, IRES_Handle resourceHandle)
Resource Activation call to grant the algorithm instance exclusive access to the potentially shared r...
Definition: ires.h:237
Void(* IRES_ContextSaveFxn)(IALG_Handle algHandle, Void *contextArgs)
Definition: ires.h:75
IRES_Status(* deactivateAllResources)(IALG_Handle handle)
Resource Deactivation call to revoke the algorithm instance's exclusive access to ALL shared resource...
Definition: ires.h:263
struct IRES_Fxns IRES_Fxns
These fxns are used to query/grant the resources requested by the algorithm at initialization time...
IRES_Status(* deactivateResource)(IALG_Handle handle, IRES_Handle resourceHandle)
Resource Deactivation call to revoke the algorithm instance's exclusive access to the potentially sha...
Definition: ires.h:254
struct IRES_YieldContext IRES_YieldContext
Specifies the algorithm specific handles and context save & restore function pointers and arguments t...
Descriptor to Logical Resource.
Definition: ires_common.h:122
These fxns are used to query/grant the resources requested by the algorithm at initialization time...
Definition: ires.h:168
Int32(* numResourceDescriptors)(IALG_Handle handle)
Query function to obtain the number of IRES resources requested by the algorithm instance, which is also the number of resource descriptors that must be passed to the getResourceDescriptors() function.
Definition: ires.h:190
Specifies the algorithm specific handles and context save & restore function pointers and arguments t...
Definition: ires.h:84
Definition: ires.h:61
IRES_Status(* initResources)(IALG_Handle handle, IRES_ResourceDescriptor *resourceDescriptor, IRES_YieldFxn yieldFxn, IRES_YieldArgs yieldArgs)
Assignment function to grant the algorithm instance the list of IRES resources it requested...
Definition: ires.h:203
Void * IRES_YieldArgs
Definition: ires.h:140
Void(* IRES_ContextRestoreFxn)(IALG_Handle algHandle, Void *contextArgs)
Definition: ires.h:77
Void * implementationId
Unique pointer that identifies the module implementing this interface.
Definition: ires.h:174
IRES_Status(* deinitResources)(IALG_Handle handle, IRES_ResourceDescriptor *resourceDescriptor)
Deinitialization function to revoke back the resources that have been granted to the algorithm instan...
Definition: ires.h:225
IRES_YieldResourceType
Definition: ires.h:60
Copyright 2016, Texas Instruments Incorporated