acpy3_instr.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00042 #ifndef ti_sdo_fc_acpy_ACPY3_INSTR_
00043 #define ti_sdo_fc_acpy_ACPY3_INSTR_
00044
00047
00048 #include <ti/xdais/idma3.h>
00049
00050
00052 #ifndef _ACPY3_INSTR_
00053 #define ACPY3_INSTR_CALLHOOKFXN(hooks, handle,hookId)
00054 #else
00055 #define ACPY3_INSTR_CALLHOOKFXN(hooks, handle, hookId)\
00056 if(NULL != hooks)\
00057 {\
00058 if (NULL!= hooks->InstrHooks[hookId].fxn)\
00059 {\
00060 hooks->InstrHooks[hookId].fxn(handle, hooks->\
00061 InstrHooks[hookId].args);\
00062 }\
00063 }
00064 #endif
00065
00071 #define ACPY3_INSTR_NUMHOOKS 4
00072 #define ACPY3_INSTR_NUMEXTENDEDHOOKS 22
00073
00074
00078 typedef enum ACPY3_INSTR_HookType {
00079 ACPY3_INSTR_START_ENTER = 0,
00080 ACPY3_INSTR_START_EXIT,
00081 ACPY3_INSTR_WAIT_ENTER,
00082 ACPY3_INSTR_WAIT_EXIT
00083 } ACPY3_INSTR_HookType;
00084
00085
00089 typedef enum ACPY3_INSTR_ExtendedHookType {
00090 ACPY3_INSTR_WAITLINKED_ENTER,
00091 ACPY3_INSTR_WAITLINKED_EXIT,
00092 ACPY3_INSTR_ACTIVATE_ENTER,
00093 ACPY3_INSTR_ACTIVATE_EXIT,
00094 ACPY3_INSTR_DEACTIVATE_ENTER,
00095 ACPY3_INSTR_DEACTIVATE_EXIT,
00096 ACPY3_INSTR_COMPLETE_ENTER,
00097 ACPY3_INSTR_COMPLETE_EXIT,
00098 ACPY3_INSTR_COMPLETELINKED_ENTER,
00099 ACPY3_INSTR_COMPLETELINKED_EXIT,
00100 ACPY3_INSTR_CONFIGURE_ENTER,
00101 ACPY3_INSTR_CONFIGURE_EXIT,
00102 ACPY3_INSTR_FASTCONFIGURE16_ENTER,
00103 ACPY3_INSTR_FASTCONFIGURE16_EXIT,
00104 ACPY3_INSTR_FASTCONFIGURE32_ENTER,
00105 ACPY3_INSTR_FASTCONFIGURE32_EXIT,
00106 ACPY3_INSTR_SETFINAL_ENTER,
00107 ACPY3_INSTR_SETFINAL_EXIT,
00108 ACPY3_INSTR_SETFASTFINAL_ENTER,
00109 ACPY3_INSTR_SETFASTFINAL_EXIT,
00110 ACPY3_INSTR_INIT_ENTER,
00111 ACPY3_INSTR_INIT_EXIT,
00112 ACPY3_INSTR_EXIT_ENTER,
00113 ACPY3_INSTR_EXIT_EXIT
00114 } ACPY3_INSTR_ExtendedHookType;
00115
00116
00120 typedef void (*ACPY3_INSTR_HookFxn)(IDMA3_Handle handle, void *param);
00121
00122
00127 typedef struct ACPY3_INSTR_Hook {
00128 ACPY3_INSTR_HookFxn fxn;
00129 void * args;
00130 } ACPY3_INSTR_Hook;
00131
00132
00137 typedef struct ACPY3_INSTR_Hooks {
00138 ACPY3_INSTR_Hook InstrHooks[ACPY3_INSTR_NUMHOOKS];
00139 } ACPY3_INSTR_Hooks;
00140
00141
00146 typedef struct ACPY3_INSTR_ExtendedHooks {
00147 ACPY3_INSTR_Hook InstrHooks[ACPY3_INSTR_NUMEXTENDEDHOOKS];
00148 } ACPY3_INSTR_ExtendedHooks;
00149
00150
00158 Void ACPY3_INSTR_registerHooks(IDMA3_Handle handle, ACPY3_INSTR_Hooks * hooks,
00159 ACPY3_INSTR_ExtendedHooks * extended_hooks);
00160
00161
00167 Void ACPY3_INSTR_unregisterHooks(IDMA3_Handle handle);
00168
00171 #endif
00172
00173
00174
00175