hdf5/pablo/ProcIDs.h

184 lines
7.1 KiB
C

/* This file is part of the Pablo Performance Analysis Environment
//
// (R)
// The Pablo Performance Analysis Environment software is NOT in
// the public domain. However, it is freely available without fee for
// education, research, and non-profit purposes. By obtaining copies
// of this and other files that comprise the Pablo Performance Analysis
// Environment, you, the Licensee, agree to abide by the following
// conditions and understandings with respect to the copyrighted software:
//
// 1. The software is copyrighted in the name of the Board of Trustees
// of the University of Illinois (UI), and ownership of the software
// remains with the UI.
//
// 2. Permission to use, copy, and modify this software and its documentation
// for education, research, and non-profit purposes is hereby granted
// to Licensee, provided that the copyright notice, the original author's
// names and unit identification, and this permission notice appear on
// all such copies, and that no charge be made for such copies. Any
// entity desiring permission to incorporate this software into commercial
// products should contact:
//
// Professor Daniel A. Reed reed@cs.uiuc.edu
// University of Illinois
// Department of Computer Science
// 2413 Digital Computer Laboratory
// 1304 West Springfield Avenue
// Urbana, Illinois 61801
// USA
//
// 3. Licensee may not use the name, logo, or any other symbol of the UI
// nor the names of any of its employees nor any adaptation thereof in
// advertizing or publicity pertaining to the software without specific
// prior written approval of the UI.
//
// 4. THE UI MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE
// SOFTWARE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS
// OR IMPLIED WARRANTY.
//
// 5. The UI shall not be liable for any damages suffered by Licensee from
// the use of this software.
//
// 6. The software was developed under agreements between the UI and the
// Federal Government which entitle the Government to certain rights.
//
// *************************************************************************
//
// Developed by: The Pablo Research Group
// University of Illinois at Urbana-Champaign
// Department of Computer Science
// 1304 W. Springfield Avenue
// Urbana, IL 61801
//
// http://www-pablo.cs.uiuc.edu
//
// Send comments to: pablo-feedback@guitar.cs.uiuc.edu
//
// Copyright (c) 1987-1998
// The University of Illinois Board of Trustees.
// All Rights Reserved.
//
// PABLO is a registered trademark of
// The Board of Trustees of the University of Illinois
// registered in the U.S. Patent and Trademark Office.
//
// Project Manager and Principal Investigator:
// Daniel A. Reed (reed@cs.uiuc.edu)
//
// Funded in part by the Defense Advanced Research Projects Agency under
// DARPA contracts DABT63-94-C0049 (SIO Initiative), F30602-96-C-0161,
// and DABT63-96-C-0027 by the National Science Foundation under the PACI
// program and grants NSF CDA 94-01124 and ASC 97-20202, and by the
// Department of Energy under contracts DOE B-341494, W-7405-ENG-48, and
// 1-B-333164.
//-------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------
* File: ProcIDs.h
* Purpose: define IDs for identifying procedures in traces
*-------------------------------------------------------------------------*/
#ifndef PROCIDS_H /* avoid re-inclusion */
#define PROCIDS_H
extern int *procTrace;
/*
* Define the event IDs that will be used for the various HDF events
*/
#include "ProcTrace.h"
#define H5_mask ID_H5_c
#define H5A_mask ID_H5A_c
#define H5AC_mask ID_H5AC_c
#define H5B_mask ID_H5B_c
#define H5D_mask ID_H5D_c
#define H5E_mask ID_H5E_c
#define H5F_mask ID_H5F_c
#define H5F_arr_mask ID_H5Farray_c
#define H5F_core_mask ID_H5Fcore_c
#define H5F_family_mask ID_H5Ffamily_c
#define H5F_istore_mask ID_H5Fistore_c
#define H5F_low_mask ID_H5Flow_c
#define H5F_mpio_mask ID_H5Fmpio_c
#define H5F_sec2_mask ID_H5Fsec2_c
#define H5F_split_mask ID_H5Fsplit_c
#define H5F_stdio_mask ID_H5Fstdio_c
#define H5G_mask ID_H5G_c
#define H5G_ent_mask ID_H5Gent_c
#define H5G_node_mask ID_H5Gnode_c
#define H5G_stab_mask ID_H5Gstab_c
#define H5HG_mask ID_H5HG_c
#define H5HL_mask ID_H5HL_c
#define H5I_mask ID_H5I_c
#define H5MF_mask ID_H5MF_c
#define H5MM_mask ID_H5MM_c
#define H5O_mask ID_H5O_c
#define H5O_attr_mask ID_H5Oattr_c
#define H5O_pline_mask ID_H5Ocomp_c
#define H5O_cont_mask ID_H5Ocont_c
#define H5O_dtype_mask ID_H5Odtype_c
#define H5O_efl_mask ID_H5Oefl_c
#define H5O_fill_mask ID_H5Ofill_c
#define H5O_layout_mask ID_H5Olayout_c
#define H5O_mtime_mask ID_H5Omtime_c
#define H5O_name_mask ID_H5Oname_c
#define H5O_null_mask ID_H5Onull_c
#define H5O_sdspace_mask ID_H5Osdspace_c
#define H5O_shared_mask ID_H5Oshared_c
#define H5O_stab_mask ID_H5Ostab_c
#define H5P_mask ID_H5P_c
#define H5R_mask ID_H5R_c
#define H5RA_mask ID_H5RA_c
#define H5S_mask ID_H5S_c
#define H5S_all_mask ID_H5Sall_c
#define H5S_hyper_mask ID_H5Shyper_c
#define H5S_mpio_mask ID_H5Smpio_c
#define H5S_none_mask ID_H5Snone_c
#define H5S_point_mask ID_H5Spoint_c
#define H5S_select_mask ID_H5Sselect_c
#define H5T_mask ID_H5T_c
#define H5TB_mask ID_H5TB_c
#define H5Tbit_mask ID_H5Tbit_c
#define H5T_conv_mask ID_H5Tconv_c
#define H5T_init_mask ID_H5Tinit_c
#define H5V_mask ID_H5V_c
#define H5Z_mask ID_H5Z_c
#define ID_HDFprocName 9996
#define ID_malloc 9997
#define ID_free 9998
#define ID_timeStamp 9999
#define DUMMY_HDF 10000
#define BEGIN_HDF (DUMMY_HDF + 1)
#define END_HDF (ID_HDF_Last_Entry + DUMMY_HDF)
#define NumHDFProcs ( ID_HDF_Last_Entry )
#define BEGIN_MPIO 900800
#define END_MPIO 900899
/*======================================================================*/
/* Macros to tell if the ID is that of an HDF Entry or Exit */
/*======================================================================*/
#define isBeginHDFEvent( ID ) ( BEGIN_HDF <= (ID) && (ID) <= END_HDF )
#define isEndHDFEvent( ID ) isBeginHDFEvent(-(ID))
#define isBeginMPIOEvent( ID ) \
( BEGIN_MPIO <= (ID) && (ID) <= END_MPIO && (ID)%2 == 0 )
#define isEndMPIOEvent( ID ) \
( BEGIN_MPIO <= (ID) && (ID) <= END_MPIO && (ID)%2 == 1 )
#define isBeginIOEvent( ID ) \
( IOerrorID < (ID) && (ID) <= fsetposEndID && (ID)%2 == 1 )
#define isEndIOEvent( ID ) \
( IOerrorID < (ID) && (ID) <= fsetposEndID && (ID)%2 == 0 )
#define ProcIndex( ID ) ( (ID) - BEGIN_HDF )
#define ProcIndexForHDFEntry( ID ) ( (ID) - BEGIN_HDF )
#define ProcIndexForHDFExit( ID ) ProcIndexForHDFEntry(-ID)
#define HDFIXtoEventID( ID ) ( (ID) + BEGIN_HDF )
#define TRACE_ON(mask, ID) \
if ( procTrace[mask] || procTrace[ID] ) startHDFtraceEvent( HDFIXtoEventID( ID ) )
#define TRACE_OFF(mask, ID ) \
if ( procTrace[mask] || procTrace[ID] ) endHDFtraceEvent(-HDFIXtoEventID(ID), 0, NULL, 0 )
#endif /* PROCIDS_H */