![]() |
1.0.7 (revision 953)
|
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 * Gesellschaft fuer numerische Simulation mbH Braunschweig, Germany 00007 * Technische Universitaet Dresden, Germany 00008 * University of Oregon, Eugene, USA 00009 * Forschungszentrum Juelich GmbH, Germany 00010 * German Research School for Simulation Sciences GmbH, Juelich/Aachen, Germany 00011 * Technische Universitaet Muenchen, Germany 00012 * 00013 * See the COPYING file in the package base directory for details. 00014 * 00015 */ 00016 /**************************************************************************** 00017 ** SCALASCA http://www.scalasca.org/ ** 00018 ** KOJAK http://www.fz-juelich.de/jsc/kojak/ ** 00019 ***************************************************************************** 00020 ** Copyright (c) 1998-2009 ** 00021 ** Forschungszentrum Juelich, Juelich Supercomputing Centre ** 00022 ** ** 00023 ** See the file COPYRIGHT in the package base directory for details ** 00024 ****************************************************************************/ 00025 #ifndef POMP2_REGION_INFO_H 00026 #define POMP2_REGION_INFO_H 00027 00041 #include <stdbool.h> 00042 00047 typedef enum /* POMP2_Region_type */ 00048 { 00049 POMP2_No_type, 00050 POMP2_Atomic, 00051 POMP2_Barrier, 00052 POMP2_Critical, 00053 POMP2_Do, 00054 POMP2_Flush, 00055 POMP2_For, 00056 POMP2_Master, 00057 POMP2_Ordered, 00058 POMP2_Parallel, 00059 POMP2_Parallel_do, 00060 POMP2_Parallel_for, 00061 POMP2_Parallel_sections, 00062 POMP2_Parallel_workshare, 00063 POMP2_Sections, 00064 POMP2_Single, 00065 POMP2_Task, 00066 POMP2_Taskuntied, 00067 POMP2_Taskwait, 00068 POMP2_User_region, 00069 POMP2_Workshare 00070 } POMP2_Region_type; 00071 00075 const char* 00076 pomp2RegionType2String( POMP2_Region_type regionType ); 00077 00082 typedef enum 00083 { 00084 POMP2_No_schedule, 00085 POMP2_Static, /* needs chunk size */ 00086 POMP2_Dynamic, /* needs chunk size */ 00087 POMP2_Guided, /* needs chunk size */ 00088 POMP2_Runtime, 00089 POMP2_Auto 00090 } POMP2_Schedule_type; 00091 00095 const char* 00096 pomp2ScheduleType2String( POMP2_Schedule_type scheduleType ); 00097 00104 typedef struct 00105 { 00110 POMP2_Region_type mRegionType; 00112 char* mStartFileName; 00114 unsigned mStartLine1; 00116 unsigned mStartLine2; 00118 char* mEndFileName; 00120 unsigned mEndLine1; 00122 unsigned mEndLine2; 00129 bool mHasCopyIn; 00131 bool mHasCopyPrivate; 00133 bool mHasIf; 00135 bool mHasFirstPrivate; 00137 bool mHasLastPrivate; 00139 bool mHasNoWait; 00141 bool mHasNumThreads; 00143 bool mHasOrdered; 00145 bool mHasReduction; 00147 bool mHasCollapse; 00150 bool mHasUntied; 00152 POMP2_Schedule_type mScheduleType; 00154 char* mUserGroupName; 00161 unsigned mNumSections; 00163 char* mCriticalName; 00165 char* mUserRegionName; 00167 } POMP2_Region_info; 00168 00203 void 00204 ctcString2RegionInfo( const char ctcString[], 00205 POMP2_Region_info* regionInfo ); 00206 00211 void 00212 freePOMP2RegionInfoMembers( POMP2_Region_info* regionInfo ); 00213 00214 00215 #endif /* POMP2_REGION_INFO_H */