xref: /llvm-project/offload/test/ompt/register_no_device_init.h (revision 330d8983d25d08580fc1642fea48b2473f47a9da)
1 #include <omp-tools.h>
2 
3 // From openmp/runtime/test/ompt/callback.h
4 #define register_ompt_callback_t(name, type)                                   \
5   do {                                                                         \
6     type f_##name = &on_##name;                                                \
7     if (ompt_set_callback(name, (ompt_callback_t)f_##name) == ompt_set_never)  \
8       printf("0: Could not register callback '" #name "'\n");                  \
9   } while (0)
10 
11 #define register_ompt_callback(name) register_ompt_callback_t(name, name##_t)
12 
13 // OMPT entry point handles
14 static ompt_set_callback_t ompt_set_callback = 0;
15 
16 // Init functions
ompt_initialize(ompt_function_lookup_t lookup,int initial_device_num,ompt_data_t * tool_data)17 int ompt_initialize(ompt_function_lookup_t lookup, int initial_device_num,
18                     ompt_data_t *tool_data) {
19   ompt_set_callback = (ompt_set_callback_t)lookup("ompt_set_callback");
20 
21   if (!ompt_set_callback)
22     return 0; // failed
23 
24   // If no device init callback is registered, the other callbacks won't be
25   // activated.
26   register_ompt_callback(ompt_callback_device_load);
27   register_ompt_callback(ompt_callback_target_data_op);
28   register_ompt_callback(ompt_callback_target);
29   register_ompt_callback(ompt_callback_target_submit);
30 
31   return 1; // success
32 }
33 
ompt_finalize(ompt_data_t * tool_data)34 void ompt_finalize(ompt_data_t *tool_data) {}
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
ompt_start_tool(unsigned int omp_version,const char * runtime_version)39 ompt_start_tool_result_t *ompt_start_tool(unsigned int omp_version,
40                                           const char *runtime_version) {
41   static ompt_start_tool_result_t ompt_start_tool_result = {&ompt_initialize,
42                                                             &ompt_finalize, 0};
43   return &ompt_start_tool_result;
44 }
45 #ifdef __cplusplus
46 }
47 #endif
48