1.0.7 (revision 953)

pomp2_region_info.h

Go to the documentation of this file.
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 */