Intel® OpenMP* Runtime Library
 All Classes Functions Variables Typedefs Enumerations Enumerator Modules Pages
ompt-event-specific.h
1 /*
2  * ompt-event-specific.h -- OMPT events header file.
3  */
4 
5 /* <copyright>
6  Copyright (c) 1997-2015 Intel Corporation. All Rights Reserved.
7 
8  Redistribution and use in source and binary forms, with or without
9  modification, are permitted provided that the following conditions
10  are met:
11 
12  * Redistributions of source code must retain the above copyright
13  notice, this list of conditions and the following disclaimer.
14  * Redistributions in binary form must reproduce the above copyright
15  notice, this list of conditions and the following disclaimer in the
16  documentation and/or other materials provided with the distribution.
17  * Neither the name of Intel Corporation nor the names of its
18  contributors may be used to endorse or promote products derived
19  from this software without specific prior written permission.
20 
21  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25  HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 
33 </copyright> */
34 
35 #ifndef __OMPT_EVENT_SPECIFIC_H__
36 #define __OMPT_EVENT_SPECIFIC_H__
37 
38 /******************************************************************************
39  * File: ompt-event-specific.h
40  *
41  * Description:
42  *
43  * specify which of the OMPT events are implemented by this runtime system
44  * and the level of their implementation by a runtime system.
45  *****************************************************************************/
46 
47 #define _ompt_tokenpaste_helper(x,y) x ## y
48 #define _ompt_tokenpaste(x,y) _ompt_tokenpaste_helper(x,y)
49 #define ompt_event_implementation_status(e) _ompt_tokenpaste(e,_implemented)
50 
51 
52 /*----------------------------------------------------------------------------
53  | Specify whether an event may occur or not, and whether event callbacks
54  | never, sometimes, or always occur.
55  |
56  | The values for these constants are defined in section 6.1.2 of
57  | the OMPT TR. They are exposed to tools through ompt_set_callback.
58  +--------------------------------------------------------------------------*/
59 
60 #define ompt_event_NEVER ompt_set_result_event_never_occurs
61 #define ompt_event_UNIMPLEMENTED ompt_set_result_event_may_occur_no_callback
62 #define ompt_event_MAY_CONVENIENT ompt_set_result_event_may_occur_callback_some
63 #define ompt_event_MAY_ALWAYS ompt_set_result_event_may_occur_callback_always
64 
65 #if OMPT_TRACE
66 #define ompt_event_MAY_ALWAYS_TRACE ompt_event_MAY_ALWAYS
67 #else
68 #define ompt_event_MAY_ALWAYS_TRACE ompt_event_UNIMPLEMENTED
69 #endif
70 
71 #if OMPT_BLAME
72 #define ompt_event_MAY_ALWAYS_BLAME ompt_event_MAY_ALWAYS
73 #else
74 #define ompt_event_MAY_ALWAYS_BLAME ompt_event_UNIMPLEMENTED
75 #endif
76 
77 /*----------------------------------------------------------------------------
78  | Mandatory Events
79  +--------------------------------------------------------------------------*/
80 
81 #define ompt_event_parallel_begin_implemented ompt_event_MAY_ALWAYS
82 #define ompt_event_parallel_end_implemented ompt_event_MAY_ALWAYS
83 
84 #define ompt_event_task_begin_implemented ompt_event_MAY_ALWAYS
85 #define ompt_event_task_end_implemented ompt_event_MAY_ALWAYS
86 
87 #define ompt_event_thread_begin_implemented ompt_event_MAY_ALWAYS
88 #define ompt_event_thread_end_implemented ompt_event_MAY_ALWAYS
89 
90 #define ompt_event_control_implemented ompt_event_MAY_ALWAYS
91 
92 #define ompt_event_runtime_shutdown_implemented ompt_event_MAY_ALWAYS
93 
94 
95 /*----------------------------------------------------------------------------
96  | Optional Events (blame shifting)
97  +--------------------------------------------------------------------------*/
98 
99 #define ompt_event_idle_begin_implemented ompt_event_MAY_ALWAYS_BLAME
100 #define ompt_event_idle_end_implemented ompt_event_MAY_ALWAYS_BLAME
101 
102 #define ompt_event_wait_barrier_begin_implemented ompt_event_MAY_ALWAYS_BLAME
103 #define ompt_event_wait_barrier_end_implemented ompt_event_MAY_ALWAYS_BLAME
104 
105 #define ompt_event_wait_taskwait_begin_implemented ompt_event_UNIMPLEMENTED
106 #define ompt_event_wait_taskwait_end_implemented ompt_event_UNIMPLEMENTED
107 
108 #define ompt_event_wait_taskgroup_begin_implemented ompt_event_UNIMPLEMENTED
109 #define ompt_event_wait_taskgroup_end_implemented ompt_event_UNIMPLEMENTED
110 
111 #define ompt_event_release_lock_implemented ompt_event_MAY_ALWAYS_BLAME
112 #define ompt_event_release_nest_lock_last_implemented ompt_event_MAY_ALWAYS_BLAME
113 #define ompt_event_release_critical_implemented ompt_event_MAY_ALWAYS_BLAME
114 #define ompt_event_release_atomic_implemented ompt_event_MAY_ALWAYS_BLAME
115 #define ompt_event_release_ordered_implemented ompt_event_MAY_ALWAYS_BLAME
116 
117 
118 /*----------------------------------------------------------------------------
119  | Optional Events (synchronous events)
120  +--------------------------------------------------------------------------*/
121 
122 #define ompt_event_implicit_task_begin_implemented ompt_event_MAY_ALWAYS_TRACE
123 #define ompt_event_implicit_task_end_implemented ompt_event_MAY_ALWAYS_TRACE
124 
125 #define ompt_event_initial_task_begin_implemented ompt_event_UNIMPLEMENTED
126 #define ompt_event_initial_task_end_implemented ompt_event_UNIMPLEMENTED
127 
128 #define ompt_event_task_switch_implemented ompt_event_UNIMPLEMENTED
129 
130 #define ompt_event_loop_begin_implemented ompt_event_MAY_ALWAYS_TRACE
131 #define ompt_event_loop_end_implemented ompt_event_MAY_ALWAYS_TRACE
132 
133 #define ompt_event_sections_begin_implemented ompt_event_UNIMPLEMENTED
134 #define ompt_event_sections_end_implemented ompt_event_UNIMPLEMENTED
135 
136 #define ompt_event_single_in_block_begin_implemented ompt_event_MAY_ALWAYS_TRACE
137 #define ompt_event_single_in_block_end_implemented ompt_event_MAY_ALWAYS_TRACE
138 #define ompt_event_single_others_begin_implemented ompt_event_MAY_ALWAYS_TRACE
139 #define ompt_event_single_others_end_implemented ompt_event_MAY_ALWAYS_TRACE
140 
141 #define ompt_event_workshare_begin_implemented ompt_event_UNIMPLEMENTED
142 #define ompt_event_workshare_end_implemented ompt_event_UNIMPLEMENTED
143 
144 #define ompt_event_master_begin_implemented ompt_event_MAY_ALWAYS_TRACE
145 #define ompt_event_master_end_implemented ompt_event_MAY_ALWAYS_TRACE
146 
147 #define ompt_event_barrier_begin_implemented ompt_event_MAY_ALWAYS_TRACE
148 #define ompt_event_barrier_end_implemented ompt_event_MAY_ALWAYS_TRACE
149 
150 #define ompt_event_taskwait_begin_implemented ompt_event_UNIMPLEMENTED
151 #define ompt_event_taskwait_end_implemented ompt_event_UNIMPLEMENTED
152 
153 #define ompt_event_taskgroup_begin_implemented ompt_event_UNIMPLEMENTED
154 #define ompt_event_taskgroup_end_implemented ompt_event_UNIMPLEMENTED
155 
156 #define ompt_event_release_nest_lock_prev_implemented ompt_event_MAY_ALWAYS_TRACE
157 #define ompt_event_wait_lock_implemented ompt_event_UNIMPLEMENTED
158 #define ompt_event_wait_nest_lock_implemented ompt_event_UNIMPLEMENTED
159 #define ompt_event_wait_critical_implemented ompt_event_UNIMPLEMENTED
160 #define ompt_event_wait_atomic_implemented ompt_event_MAY_ALWAYS_TRACE
161 #define ompt_event_wait_ordered_implemented ompt_event_MAY_ALWAYS_TRACE
162 
163 #define ompt_event_acquired_lock_implemented ompt_event_UNIMPLEMENTED
164 #define ompt_event_acquired_nest_lock_first_implemented ompt_event_UNIMPLEMENTED
165 #define ompt_event_acquired_nest_lock_next_implemented ompt_event_UNIMPLEMENTED
166 #define ompt_event_acquired_critical_implemented ompt_event_UNIMPLEMENTED
167 #define ompt_event_acquired_atomic_implemented ompt_event_MAY_ALWAYS_TRACE
168 #define ompt_event_acquired_ordered_implemented ompt_event_MAY_ALWAYS_TRACE
169 
170 #define ompt_event_init_lock_implemented ompt_event_UNIMPLEMENTED
171 #define ompt_event_init_nest_lock_implemented ompt_event_UNIMPLEMENTED
172 
173 #define ompt_event_destroy_lock_implemented ompt_event_UNIMPLEMENTED
174 #define ompt_event_destroy_nest_lock_implemented ompt_event_UNIMPLEMENTED
175 
176 #define ompt_event_flush_implemented ompt_event_UNIMPLEMENTED
177 
178 #endif