1.1.4 (revision 1660)
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  *
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 */