/* $Id: pvmtev.h,v 1.13 1999/07/08 18:59:48 kohl Exp $ */
/*
* PVM version 3.4: Parallel Virtual Machine System
* University of Tennessee, Knoxville TN.
* Oak Ridge National Laboratory, Oak Ridge TN.
* Emory University, Atlanta GA.
* Authors: J. J. Dongarra, G. E. Fagg, M. Fischer
* G. A. Geist, J. A. Kohl, R. J. Manchek, P. Mucci,
* P. M. Papadopoulos, S. L. Scott, and V. S. Sunderam
* (C) 1997 All Rights Reserved
*
* NOTICE
*
* Permission to use, copy, modify, and distribute this software and
* its documentation for any purpose and without fee is hereby granted
* provided that the above copyright notice appear in all copies and
* that both the copyright notice and this permission notice appear in
* supporting documentation.
*
* Neither the Institutions (Emory University, Oak Ridge National
* Laboratory, and University of Tennessee) nor the Authors make any
* representations about the suitability of this software for any
* purpose. This software is provided ``as is'' without express or
* implied warranty.
*
* PVM version 3 was funded in part by the U.S. Department of Energy,
* the National Science Foundation and the State of Tennessee.
*/
/*
* pvmtev.h
*
* Libpvm tracing includes.
*
* $Log: pvmtev.h,v $
* Revision 1.13 1999/07/08 18:59:48 kohl
* Fixed "Log" keyword placement.
* - indent with " * " for new CVS.
*
* Revision 1.12 1997/12/31 22:13:39 pvmsrc
* Renamed TEV_REMOVE -> TEV_DELINFO. D-Oh.
* (Spanker=kohl)
*
* Revision 1.11 1997/12/23 20:26:22 pvmsrc
* Added new TEV_MHF_INVOKE event id.
* - for message handler function invocation.
* (Spanker=kohl)
*
* Revision 1.10 1997/12/17 22:17:19 pvmsrc
* Added new tracing constants for mhf stuff.
* - TEV_DID_MHI message handler index.
* - TEV_ADDMHF & TEV_DELMHF trace event indices.
* (Spanker=kohl)
*
* Revision 1.9 1997/10/24 15:16:01 pvmsrc
* Added TEV_DID_RCX constant for Receiving message context.
* (Spanker=kohl)
*
* Revision 1.8 1997/10/24 14:20:20 pvmsrc
* Added TEV_DID_MCX constant, Message Context.
* (Spanker=kohl)
*
* Revision 1.7 1997/07/09 13:29:39 pvmsrc
* Fixed Author Header.
*
* Revision 1.6 1997/05/01 20:16:50 pvmsrc
* Renamed TEV_MBOXINFO -> TEV_GETMBOXINFO.
*
* Revision 1.5 1997/04/10 20:25:52 pvmsrc
* TEV_GETNAMES -> TEV_MBOXINFO.
*
* Revision 1.4 1997/02/17 21:26:44 pvmsrc
* Fixed comments for Steve (who actually reads them, hahahaha).
* - decls for pvmtevdidlist[] & pvmtevinfo[] are now in global.c.
*
* Revision 1.3 1997/01/28 19:14:23 pvmsrc
* New Copyright Notice & Authors.
*
* Revision 1.2 1996/10/24 19:35:12 pvmsrc
* Modified for New Tracing Facility:
* - added trace buffer marker constants, TEV_MARK_*.
* - added dummy user-defined trace tid & message code,
* PVM_TRACE_TID & PVM_TRACE_CODE.
* - added trace event data types, TEV_DATA_*.
* - added semantic data IDs, TEV_DID_*, with new struct Pvmtevdid.
* - replaced old trace event IDs, no longer TEV_*0 / TEV_*1,
* use TEV_EVENT_ENTRY & TEV_EVENT_EXIT to distinguish.
* - added new struct Pvmtevinfo.
* - modified trace mask defn & macros, fix length large enough for
* compatible growth.
* - renamed macros for consistency -> TEV_MASK_*().
* - added new struct Pvmtracer.
*
* Revision 1.1 1996/09/23 21:06:34 pvmsrc
* Initial revision
*
*/
#ifndef _PVMTEV_H_
#define _PVMTEV_H_
/* Trace Markers */
#define TEV_MARK_EVENT_BUFFER -1
#define TEV_MARK_EVENT_BUFFER_END -2
#define TEV_MARK_DATA_ID -3
#define TEV_MARK_DATA_ID_END -4
#define TEV_MARK_EVENT_DESC -5
#define TEV_MARK_EVENT_DESC_END -6
#define TEV_MARK_EVENT_RECORD -7
#define TEV_MARK_EVENT_RECORD_END -8
#define TEV_MARK_USER_EVENT_RECORD -9
#define TEV_MARK_USER_EVENT_RECORD_END -10
/* Dummy Trace Tid & Code for User Defined Events */
#define PVM_TRACE_TID -1111
#define PVM_TRACE_CODE -2222
/* Trace Event Data Types */
#define TEV_DATA_NULL 0
#define TEV_DATA_BYTE 1
#define TEV_DATA_CPLX 2
#define TEV_DATA_DCPLX 3
#define TEV_DATA_DOUBLE 4
#define TEV_DATA_FLOAT 5
#define TEV_DATA_INT 6
#define TEV_DATA_UINT 7
#define TEV_DATA_LONG 8
#define TEV_DATA_ULONG 9
#define TEV_DATA_SHORT 10
#define TEV_DATA_USHORT 11
#define TEV_DATA_STRING 12
#define TEV_DATA_STRUCT_START 13
#define TEV_DATA_STRUCT_END 14
#define TEV_DATA_DEFERRED 15
#define TEV_DATA_SCALAR 0x00
#define TEV_DATA_ARRAY 0x80
/* Trace Event Data Identifier ID Constants */
/************* PLEASE NOTE ******************/
/* */
/* When Adding or Changing, ALWAYS Update: */
/* struct Pvmtevdid pvmtevdidlist[]; */
/* in file $PVM_ROOT/src/global.c */
/* */
/************* PLEASE NOTE ******************/
#define TEV_DID_FIRST 0
#define TEV_DID_AN 0
#define TEV_DID_AC 1
#define TEV_DID_AS 2
#define TEV_DID_BF 3
#define TEV_DID_CC 4
#define TEV_DID_CN 5
#define TEV_DID_CI 6
#define TEV_DID_CF 7
#define TEV_DID_CD 8
#define TEV_DID_CR 9
#define TEV_DID_CL 10
#define TEV_DID_CDA 11
#define TEV_DID_CDT 12
#define TEV_DID_CDX 13
#define TEV_DID_CDC 14
#define TEV_DID_CGI 15
#define TEV_DID_CRF 16
#define TEV_DID_CXC 17
#define TEV_DID_CXF 18
#define TEV_DID_CXN 19
#define TEV_DID_CXS 20
#define TEV_DID_ERI 21
#define TEV_DID_ERR 22
#define TEV_DID_FDS 23
#define TEV_DID_FP 24
#define TEV_DID_GN 25
#define TEV_DID_GI 26
#define TEV_DID_GT 27
#define TEV_DID_GS 28
#define TEV_DID_GBC 29
#define TEV_DID_HN 30
#define TEV_DID_HNL 31
#define TEV_DID_HNA 32
#define TEV_DID_HPT 33
#define TEV_DID_HA 34
#define TEV_DID_HSP 35
#define TEV_DID_HIS 36
#define TEV_DID_HCS 37
#define TEV_DID_HCU 38
#define TEV_DID_HDS 39
#define TEV_DID_HDU 40
#define TEV_DID_HS 41
#define TEV_DID_INB 42
#define TEV_DID_IMC 43
#define TEV_DID_IST 44
#define TEV_DID_MC 45
#define TEV_DID_MCX 46
#define TEV_DID_MB 47
#define TEV_DID_MNB 48
#define TEV_DID_SRC 49
#define TEV_DID_DST 50
#define TEV_DID_MDL 51
#define TEV_DID_MTS 52
#define TEV_DID_MTU 53
#define TEV_DID_MRF 54
#define TEV_DID_MRB 55
#define TEV_DID_MSB 56
#define TEV_DID_ME 57
#define TEV_DID_MHI 58
#define TEV_DID_AST 59
#define TEV_DID_AMC 60
#define TEV_DID_AML 61
#define TEV_DID_NE 62
#define TEV_DID_NMC 63
#define TEV_DID_NCT 64
#define TEV_DID_NTL 65
#define TEV_DID_NH 66
#define TEV_DID_NA 67
#define TEV_DID_OPT 68
#define TEV_DID_OPV 69
#define TEV_DID_OS 70
#define TEV_DID_PDA 71
#define TEV_DID_PDT 72
#define TEV_DID_PC 73
#define TEV_DID_PSD 74
#define TEV_DID_PSG 75
#define TEV_DID_PF 76
#define TEV_DID_PRF 77
#define TEV_DID_RST 78
#define TEV_DID_RMC 79
#define TEV_DID_RCX 80
#define TEV_DID_SN 81
#define TEV_DID_SE 82
#define TEV_DID_SF 83
#define TEV_DID_SW 84
#define TEV_DID_SC 85
#define TEV_DID_STL 86
#define TEV_DID_SIB 87
#define TEV_DID_TID 88
#define TEV_DID_PT 89
#define TEV_DID_MT 90
#define TEV_DID_TF 91
#define TEV_DID_TN 92
#define TEV_DID_PID 93
#define TEV_DID_TT 94
#define TEV_DID_TW 95
#define TEV_DID_TIS 96
#define TEV_DID_TNT 97
#define TEV_DID_TST 98
#define TEV_DID_TUS 99
#define TEV_DID_TUU 100
#define TEV_DID_TSS 101
#define TEV_DID_TSU 102
#define TEV_DID_TES 103
#define TEV_DID_TA 104
#define TEV_DID_TR 105
#define TEV_DID_TS 106
#define TEV_DID_TU 107
#define TEV_DID_TGS 108
#define TEV_DID_TGU 109
#define TEV_DID_TMW 110
#define TEV_DID_TM 111
#define TEV_DID_TRC 112
#define TEV_DID_TRT 113
#define TEV_DID_TRX 114
#define TEV_DID_TRO 115
#define TEV_DID_TRM 116
#define TEV_DID_TRB 117
#define TEV_DID_TRL 118
#define TEV_DID_VER 119
#define TEV_DID_VCT 120
#define TEV_DID_VID 121
#define TEV_DID_WID 122
#define TEV_DID_MAX 122
/* Trace Data Identifier Structure */
struct Pvmtevdid
{
char *did; /* Semantic Data ID */
char *desc; /* Semantic Data Description */
};
/* Trace Event ID Constants */
/************* PLEASE NOTE ******************/
/* */
/* When Adding or Changing, ALWAYS Update: */
/* struct Pvmtevinfo pvmtevinfo[]; */
/* in file $PVM_ROOT/src/global.c */
/* */
/************* PLEASE NOTE ******************/
#define TEV_FIRST 0
#define TEV_ADDHOSTS 0
#define TEV_BARRIER 1
#define TEV_BCAST 2
#define TEV_BUFINFO 3
#define TEV_CONFIG 4
#define TEV_DELETE 5
#define TEV_DELHOSTS 6
#define TEV_EXIT 7
#define TEV_FREEBUF 8
#define TEV_GETFDS 9
#define TEV_GETINST 10
#define TEV_GETOPT 11
#define TEV_GETRBUF 12
#define TEV_GETSBUF 13
#define TEV_GETTID 14
#define TEV_GSIZE 15
#define TEV_HALT 16
#define TEV_INITSEND 17
#define TEV_INSERT 18
#define TEV_JOINGROUP 19
#define TEV_KILL 20
#define TEV_LOOKUP 21
#define TEV_LVGROUP 22
#define TEV_MCAST 23
#define TEV_MKBUF 24
#define TEV_MSTAT 25
#define TEV_MYTID 26
#define TEV_NOTIFY 27
#define TEV_NRECV 28
#define TEV_PARENT 29
#define TEV_PERROR 30
#define TEV_PKBYTE 31
#define TEV_PKCPLX 32
#define TEV_PKDCPLX 33
#define TEV_PKDOUBLE 34
#define TEV_PKFLOAT 35
#define TEV_PKINT 36
#define TEV_PKUINT 37
#define TEV_PKLONG 38
#define TEV_PKULONG 39
#define TEV_PKSHORT 40
#define TEV_PKUSHORT 41
#define TEV_PKSTR 42
#define TEV_PROBE 43
#define TEV_PSTAT 44
#define TEV_RECV 45
#define TEV_RECVF 46
#define TEV_SEND 47
#define TEV_SENDSIG 48
#define TEV_SETOPT 49
#define TEV_SETRBUF 50
#define TEV_SETSBUF 51
#define TEV_SPAWN 52
#define TEV_START_PVMD 53
#define TEV_TASKS 54
#define TEV_TICKLE 55
#define TEV_TIDTOHOST 56
#define TEV_TRECV 57
#define TEV_UPKBYTE 58
#define TEV_UPKCPLX 59
#define TEV_UPKDCPLX 60
#define TEV_UPKDOUBLE 61
#define TEV_UPKFLOAT 62
#define TEV_UPKINT 63
#define TEV_UPKUINT 64
#define TEV_UPKLONG 65
#define TEV_UPKULONG 66
#define TEV_UPKSHORT 67
#define TEV_UPKUSHORT 68
#define TEV_UPKSTR 69
#define TEV_VERSION 70
#define TEV_REG_HOSTER 71
#define TEV_REG_RM 72
#define TEV_REG_TASKER 73
#define TEV_REG_TRACER 74
#define TEV_NEWTASK 75
#define TEV_ENDTASK 76
#define TEV_SPNTASK 77
#define TEV_ARCHCODE 78
#define TEV_CATCHOUT 79
#define TEV_GETMWID 80
#define TEV_GETTMASK 81
#define TEV_HOSTSYNC 82
#define TEV_PACKF 83
#define TEV_PRECV 84
#define TEV_PSEND 85
#define TEV_REDUCE 86
#define TEV_SETMWID 87
#define TEV_SETTMASK 88
#define TEV_UNPACKF 89
#define TEV_GATHER 90
#define TEV_SCATTER 91
#define TEV_PUTINFO 92
#define TEV_GETINFO 93
#define TEV_DELINFO 94
#define TEV_GETMBOXINFO 95
#define TEV_NEWCONTEXT 96
#define TEV_FREECONTEXT 97
#define TEV_SETCONTEXT 98
#define TEV_GETCONTEXT 99
#define TEV_SIBLINGS 100
#define TEV_GETMINFO 101
#define TEV_SETMINFO 102
#define TEV_ADDMHF 103
#define TEV_DELMHF 104
#define TEV_MHF_INVOKE 105
#define TEV_TIMING 106
#define TEV_PROFILING 107
#define TEV_USER_DEFINED 108
#define TEV_MAX 108
#define TEV_EVENT_ENTRY 0x4000
#define TEV_EVENT_EXIT 0x8000
/* Trace Event Info Structure */
struct Pvmtevinfo
{
char *name; /* trace event name */
int desc_status; /* trace descriptor status */
struct timeval mark; /* trace time marker */
struct timeval total; /* trace cumulative time */
int count; /* trace invocation counter */
};
/* Trace Mask Definitions */
/****************************************************************/
/* */
/* Fix Length Larger Than Necessary to Allow Interoperability */
/* with Different Effective Mask Lengths: */
/* */
/* -> for TEV_MAX of 101, Min Length is (101/4 + 2) = 26. */
/* => bump to 36, sufficient for TEV_MAX up to 139. */
/* */
/****************************************************************/
#define TEV_MASK_LENGTH 36
/* Trace Event Mask Kept as Ascii String */
typedef char Pvmtmask[TEV_MASK_LENGTH];
/* Trace Mask Macros */
#define TEV_MASK_SET( m, k ) ( m[ (k) / 4 ] |= ( 1 << ((k) & 3) ) )
#define TEV_MASK_UNSET( m, k ) ( m[ (k) / 4 ] &= ~( 1 << ((k) & 3) ) )
#define TEV_MASK_CHECK( m, k ) ( m[ (k) / 4 ] & ( 1 << ((k) & 3) ) )
#define TEV_MASK_INIT( m ) \
{ \
int tev_init_mask_i = TEV_MASK_LENGTH - 1; \
m[ tev_init_mask_i ] = 0; \
while ( tev_init_mask_i-- > 0 ) \
m[ tev_init_mask_i ] = '@'; \
}
/* Tracer Info Structure */
struct Pvmtracer
{
int trctid; /* trace dst */
int trcctx; /* trace context */
int trctag; /* trace message tag */
int outtid; /* stdout dst */
int outctx; /* stdout context */
int outtag; /* stdout message tag */
int trcbuf; /* trace buffering */
int trcopt; /* trace options */
Pvmtmask tmask; /* trace bitmask */
};
#ifdef __ProtoGlarp__
#undef __ProtoGlarp__
#endif
#if defined(__STDC__) || defined(__cplusplus)
#define __ProtoGlarp__(x) x
#else
#define __ProtoGlarp__(x) ()
#endif
#ifdef __cplusplus
extern "C" {
#endif
int pvm_gettmask __ProtoGlarp__(( int, Pvmtmask ));
int pvm_settmask __ProtoGlarp__(( int, Pvmtmask ));
#ifdef __cplusplus
}
#endif
#endif /*_PVMTEV_H_*/
syntax highlighted by Code2HTML, v. 0.9.1