📄 slog.h
字号:
/* The def'n of the Fixed Record definition Table */typedef struct { SLOG_uint32 capacity; SLOG_uint32 increment; SLOG_uint32 Nentries; SLOG_recdef_t *entries; /* entries[ Nentries ] */ SLOG_fptr file_loc; /* fptr to entries[ii] */} SLOG_recdefs_table_t;/* The def'n of the Entry of Frame Directory */typedef struct { SLOG_fptr fptr2framehdr; SLOG_time starttime; SLOG_time endtime;} SLOG_dir_entry_t;/* The def'n of the Frame Directory */typedef struct { SLOG_fptr prevdir; SLOG_fptr nextdir; SLOG_uint32 Nframe; SLOG_dir_entry_t *entries; /* entries[ SLOG_NDirEntry ] */} SLOG_dir_t;/* The def'n of the Frame Header */typedef struct { SLOG_uint32 Nbytes_cur; /* rec's Within frame */ SLOG_uint32 Nrec_cur; SLOG_uint32 Nbytes_inc; /* Incoming rec's */ SLOG_uint32 Nrec_inc; SLOG_uint32 Nbytes_pas; /* Passing Through rec's */ SLOG_uint32 Nrec_pas; SLOG_uint32 Nbytes_out; /* Outgoing rec's */ SLOG_uint32 Nrec_out;} SLOG_framehdr_t;/* The def'n of a Space ID tag in support primitive assocication for a Send() and Recv() pair*/typedef struct { SLOG_nodeID_t node; SLOG_cpuID_t cpu; /* local CPU ID per node */ SLOG_threadID_t thread; /* local thread ID per node */} SLOG_tasklabel_t;/* The def'n of an association pair, this is used to support association */typedef struct { /* SLOG_intvlrec_t *irec; */ void *irec; /* pointer to the associated irec */ SLOG_assoc_t fptr; /* file pointer of associated irec */} SLOG_assocpair_t;/* The def'n of a MPI call arguments vector */typedef struct { SLOG_N_args_t size; SLOG_arg_t *values; /* values[ size ] */} SLOG_vtrarg_t;typedef struct SLOG_vtrarg_lptr_ { SLOG_vtrarg_t *vtr; struct SLOG_vtrarg_lptr_ *prev; struct SLOG_vtrarg_lptr_ *next;} SLOG_vtrarg_lptr_t;/* The def'n of the Interval Record ( run time ) */typedef struct { SLOG_bytesize_t bytesize; /* bytesize in file */ SLOG_rectype_t rectype; SLOG_intvltype_t intvltype; SLOG_bebits_t bebits[2]; SLOG_starttime_t starttime; SLOG_duration_t duration; SLOG_tasklabel_t origID; /* origin task label */ SLOG_tasklabel_t destID; /* destination task label */ SLOG_iaddr_t instr_addr; SLOG_N_assocs_t N_assocs; SLOG_assoc_t *assocs; /* assocs[ N_assocs ] */ SLOG_vtrarg_lptr_t *vhead; SLOG_vtrarg_lptr_t *vtail; SLOG_vtrarg_lptr_t *vptr;} SLOG_intvlrec_t;/* The def'n of Interval Record Bi-directional pointer type */typedef struct SLOG_intvlrec_lptr_ { SLOG_intvlrec_t *irec; struct SLOG_intvlrec_lptr_ *prev; struct SLOG_intvlrec_lptr_ *next;} SLOG_intvlrec_lptr_t;/* The def'n of Interval Record Bi-directional Linked List */typedef struct { SLOG_uint32 Nbytes_in_file; SLOG_uint32 count_irec; SLOG_intvlrec_lptr_t *lhead; SLOG_intvlrec_lptr_t *ltail; SLOG_intvlrec_lptr_t *lptr;} SLOG_intvlrec_blist_t;/* Infomation about the status of Irec Reservation in the frame */typedef struct { SLOG_int32 Nrec_eff; /* effective No. of Irec carried over */ SLOG_int32 Nbytes_eff; /* effective Nbytes of Irec carried over */ SLOG_int32 Nrec_tot; /* total No. of Irec reserved in frame */ SLOG_int32 Nbytes_tot; /* total Nbytes of Irec reserved in frame */} SLOG_reserve_info_t;/* The def'n of the SLOG_STREAM */typedef struct { int HasIrec2IOStreamBeenUsed; FILE *fd; /* File descriptor of the slogfile */ filebuf_t *fbuf; /* File Buffer pointer of the slogfile */ SLOG_fptr file_dir_hdr; /* beginning FD pointer in slog file */ SLOG_fptr file_dir_cur; /* current entry in FD in slog file */ SLOG_fptr file_loc; /* Current position in the slog file */ SLOG_time prev_starttime; /* chk incr=startime */ SLOG_time prev_endtime; /* chk incr=endtime */ SLOG_reserve_info_t *reserve; /* Frame Reserve Info */ SLOG_hdr_t *hdr; /* Header */ SLOG_pstat_t *pstat; /* Preview Statistics */ SLOG_pview_t *pview; /* Preview */ SLOG_prof_t *prof; /* Display Profile */ SLOG_threadinfo_table_t *thread_tab; /* Thread Table */ SLOG_recdefs_table_t *rec_defs; /* Record Def'n Table */ SLOG_dir_t frame_dir; /* Directory */ SLOG_dir_entry_t frame_dir_entry; /* Current Frame entry */ SLOG_framehdr_t frame_hdr; /* Frame Header */ SLOG_intvlrec_blist_t *cur_bbuf; /* rec within Frame */ SLOG_intvlrec_blist_t *inc_bbuf; /* incoming rec */ SLOG_intvlrec_blist_t *pas_bbuf; /* passing through rec */ SLOG_intvlrec_blist_t *out_bbuf; /* outgoing rec */ SLOG_intvlrec_blist_t *tmp_bbuf; /* temporary rec */ SLOG_intvlrec_blist_t *ptr2bbuf; /* pointer to Bbuf read */} SLOG_STREAM;/* High level SLOG (Common) API for both __Read__ and __Write__ */SLOG_intvlrec_t *SLOG_Irec_Create( void );void SLOG_Irec_Free( SLOG_intvlrec_t *irec );void SLOG_Irec_CopyVal( const SLOG_intvlrec_t *src, SLOG_intvlrec_t *dest );SLOG_intvlrec_t *SLOG_Irec_Copy( const SLOG_intvlrec_t *src );int SLOG_Irec_Print( const SLOG_intvlrec_t *irec, FILE *outfd );int SLOG_Irec_IsEmpty( const SLOG_intvlrec_t *irec );int SLOG_Irec_IsConsistent( const SLOG_intvlrec_t *irec );int SLOG_Irec_IsEqualTo( const SLOG_intvlrec_t *irec1, const SLOG_intvlrec_t *irec2 ); /* Low level SLOG_Irec Methods */int SLOG_Irec_DepositToFbuf( const SLOG_intvlrec_t *irec, filebuf_t *fbuf );SLOG_intvlrec_t *SLOG_Irec_WithdrawFromFbuf( const SLOG_recdefs_table_t *slog_recdefs, filebuf_t *fbuf );int SLOG_Irec_AddVtrArgs( SLOG_intvlrec_t *irec, const SLOG_vtrarg_t *varg );const SLOG_vtrarg_t *SLOG_Irec_GetVtrArgs( SLOG_intvlrec_t *irec );void SLOG_Irec_DelAllVtrArgs( SLOG_intvlrec_t *irec );/* High level SLOG __Write__ API */SLOG_STREAM *SLOG_OpenOutputStream( const char *filename );int SLOG_Irec_ReserveSpace( SLOG_STREAM *slog, const SLOG_rectype_t rectype, const SLOG_intvltype_t intvltype, const SLOG_bebit_t bebit_0, const SLOG_bebit_t bebit_1, const SLOG_starttime_t starttime );int SLOG_Irec_SetMinRec( SLOG_intvlrec_t *intvlrec, const SLOG_rectype_t rectype, const SLOG_intvltype_t intvltype, const SLOG_bebit_t bebit_0, const SLOG_bebit_t bebit_1, const SLOG_starttime_t starttime, const SLOG_duration_t duration, const SLOG_nodeID_t orig_node_id, const SLOG_cpuID_t orig_cpu_id, const SLOG_threadID_t orig_thread_id, const SLOG_iaddr_t instr_addr, ... );int SLOG_Irec_SetDestTaskLabel( SLOG_intvlrec_t *intvlrec, const SLOG_nodeID_t node_id, const SLOG_cpuID_t cpu_id, const SLOG_threadID_t thread_id );int SLOG_Irec_SetAssocs( SLOG_intvlrec_t *intvlrec, const SLOG_STREAM *slog, const SLOG_N_assocs_t N_assocs, const SLOG_assoc_t *assocs );int SLOG_Irec_SetArgs( SLOG_intvlrec_t *intvlrec, const SLOG_STREAM *slog, const SLOG_N_args_t N_args, const SLOG_arg_t *args );int SLOG_Irec_ToOutputStream( SLOG_STREAM *slog, const SLOG_intvlrec_t *irec );int SLOG_CloseOutputStream( SLOG_STREAM *slog );int SLOG_STM_2ndPass( SLOG_STREAM *slog );/* High level SLOG __Read__ API */SLOG_STREAM *SLOG_OpenInputStream( const char *filename );const SLOG_intvlrec_t *SLOG_Irec_FromInputStream( SLOG_STREAM *slog, int *irc );int SLOG_Irec_GetMinRec( const SLOG_intvlrec_t *intvlrec, SLOG_rectype_t *rectype, SLOG_intvltype_t *intvltype, SLOG_bebit_t *bebit_0, SLOG_bebit_t *bebit_1, SLOG_starttime_t *starttime, SLOG_duration_t *duration, SLOG_nodeID_t *orig_node_id, SLOG_cpuID_t *orig_cpu_id, SLOG_threadID_t *orig_thread_id, SLOG_iaddr_t *instr_addr, ... );int SLOG_Irec_GetAssocs( const SLOG_intvlrec_t *intvlrec, const SLOG_N_assocs_t size_assocs, SLOG_assoc_t *assocs );int SLOG_Irec_GetArgs( SLOG_intvlrec_t *intvlrec, const SLOG_N_args_t size_args, SLOG_arg_t *args );int SLOG_CloseInputStream( SLOG_STREAM *slog );#include "slog_header.h"#include "slog_preview.h"#include "slog_pstat.h"#include "slog_ttable.h"#include "slog_profile.h"#include "slog_recdefs.h"#include "slog_strlist.h"#endif /* if ! defined( _SLOG ) */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -