![]() |
1.1.4 (revision 1660)
|
00001 /* 00002 * This file is part of the Score-P software (http://www.score-p.org) 00003 * 00004 * Copyright (c) 2009-2011, 00005 * RWTH Aachen University, Germany 00006 * 00007 * Copyright (c) 2009-2011, 00008 * Gesellschaft fuer numerische Simulation mbH Braunschweig, Germany 00009 * 00010 * Copyright (c) 2009-2011, 00011 * Technische Universitaet Dresden, Germany 00012 * 00013 * Copyright (c) 2009-2011, 00014 * University of Oregon, Eugene, USA 00015 * 00016 * Copyright (c) 2009-2011, 2013 00017 * Forschungszentrum Juelich GmbH, Germany 00018 * 00019 * Copyright (c) 2009-2011, 00020 * German Research School for Simulation Sciences GmbH, Juelich/Aachen, Germany 00021 * 00022 * Copyright (c) 2009-2011, 00023 * Technische Universitaet Muenchen, Germany 00024 * 00025 * This software may be modified and distributed under the terms of 00026 * a BSD-style license. See the COPYING file in the package base 00027 * directory for details. 00028 * 00029 */ 00030 /**************************************************************************** 00031 ** SCALASCA http://www.scalasca.org/ ** 00032 ** KOJAK http://www.fz-juelich.de/jsc/kojak/ ** 00033 ***************************************************************************** 00034 ** Copyright (c) 1998-2009 ** 00035 ** Forschungszentrum Juelich, Juelich Supercomputing Centre ** 00036 ** ** 00037 ** See the file COPYRIGHT in the package base directory for details ** 00038 ****************************************************************************/ 00039 #ifndef POMP2_REGION_INFO_H 00040 #define POMP2_REGION_INFO_H 00041 00053 #include <stdbool.h> 00054 00059 typedef enum /* POMP2_Region_type */ 00060 { 00061 POMP2_No_type, 00062 POMP2_Atomic, 00063 POMP2_Barrier, 00064 POMP2_Critical, 00065 POMP2_Do, 00066 POMP2_Flush, 00067 POMP2_For, 00068 POMP2_Master, 00069 POMP2_Ordered, 00070 POMP2_Parallel, 00071 POMP2_Parallel_do, 00072 POMP2_Parallel_for, 00073 POMP2_Parallel_sections, 00074 POMP2_Parallel_workshare, 00075 POMP2_Sections, 00076 POMP2_Single, 00077 POMP2_Task, 00078 POMP2_Taskuntied, 00079 POMP2_Taskwait, 00080 POMP2_User_region, 00081 POMP2_Workshare 00082 } POMP2_Region_type; 00083 00087 const char* 00088 pomp2RegionType2String( POMP2_Region_type regionType ); 00089 00094 typedef enum 00095 { 00096 POMP2_No_schedule, 00097 POMP2_Static, /* needs chunk size */ 00098 POMP2_Dynamic, /* needs chunk size */ 00099 POMP2_Guided, /* needs chunk size */ 00100 POMP2_Runtime, 00101 POMP2_Auto 00102 } POMP2_Schedule_type; 00103 00107 const char* 00108 pomp2ScheduleType2String( POMP2_Schedule_type scheduleType ); 00109 00116 typedef struct 00117 { 00122 POMP2_Region_type mRegionType; 00124 char* mStartFileName; 00126 unsigned mStartLine1; 00128 unsigned mStartLine2; 00130 char* mEndFileName; 00132 unsigned mEndLine1; 00134 unsigned mEndLine2; 00141 bool mHasCopyIn; 00143 bool mHasCopyPrivate; 00145 bool mHasIf; 00147 bool mHasFirstPrivate; 00149 bool mHasLastPrivate; 00151 bool mHasNoWait; 00153 bool mHasNumThreads; 00155 bool mHasOrdered; 00157 bool mHasReduction; 00159 bool mHasCollapse; 00162 bool mHasUntied; 00164 POMP2_Schedule_type mScheduleType; 00166 char* mUserGroupName; 00173 unsigned mNumSections; 00175 char* mCriticalName; 00177 char* mUserRegionName; 00179 } POMP2_Region_info; 00180 00215 void 00216 ctcString2RegionInfo( const char ctcString[], 00217 POMP2_Region_info* regionInfo ); 00218 00223 void 00224 freePOMP2RegionInfoMembers( POMP2_Region_info* regionInfo ); 00225 00226 00227 #endif /* POMP2_REGION_INFO_H */