00001 #ifndef OMPT_SPECIFIC_H 00002 #define OMPT_SPECIFIC_H 00003 00004 #include "kmp.h" 00005 00006 void __ompt_team_assign_id(kmp_team_t *team, ompt_parallel_id_t ompt_pid); 00007 void __ompt_thread_assign_wait_id(void *variable); 00008 00009 void __ompt_lw_taskteam_init(ompt_lw_taskteam_t *lwt, kmp_info_t *thr, 00010 int gtid, microtask_t microtask, 00011 ompt_parallel_id_t ompt_pid); 00012 00013 void __ompt_lw_taskteam_link(ompt_lw_taskteam_t *lwt, kmp_info_t *thr); 00014 00015 void __ompt_lw_taskteam_unlink(ompt_lw_taskteam_t *lwt, kmp_info_t *thr); 00016 00017 ompt_parallel_id_t __ompt_parallel_id_new(kmp_info_t *ti, int gtid); 00018 00019 /* the wait_id assignment is needed in many, many macros - so define 00020 * a wrapper macro which can be a noop when it is not wanted. 00021 */ 00022 #if OMPT_SUPPORT 00023 #define OMPT_THREAD_ASSIGN_WAIT_ID(DATA) __ompt_thread_assign_wait_id(DATA); 00024 #else 00025 #define OMPT_THREAD_ASSIGN_WAIT_ID(DATA) 00026 #endif 00027 00028 00029 inline 00030 kmp_info_t *ompt_get_thread_gtid(int gtid) 00031 { 00032 return (gtid >= 0) ? __kmp_thread_from_gtid(gtid) : NULL; 00033 } 00034 00035 00036 inline 00037 kmp_info_t *ompt_get_thread() 00038 { 00039 int gtid = __kmp_gtid_get_specific(); 00040 return ompt_get_thread_gtid(gtid); 00041 } 00042 00043 00044 #endif