added dvm/tools/

This commit is contained in:
ALEXks
2023-09-15 08:30:58 +03:00
parent 3bde5853a9
commit 91dced1fe6
123 changed files with 51340 additions and 1 deletions

View File

@@ -0,0 +1,86 @@
#ifndef _TREEINTER_H
#define _TREEINTER_H
#include "zlib.h"
#include "inter.h"
#include "strall.h"
#include "stdio.h"
#include "bool.h"
typedef struct ttree{
unsigned long up,next,down;
int sign;
CInter *pint;
} ptree;
struct inter_short{
short nlev,type;
};
struct inter_long{
unsigned long nline,nline_end,expr,qproc,ninter,SendCallCount,RecvCallCount;
};
struct inter_void{
void *up,*next,*down,*ptimes;
};
struct inter_double{
double nenter,SendCallTime,MinSendCallTime,
MaxSendCallTime,RecvCallTime,MinRecvCallTime,
MaxRecvCallTime,
times[3*StatGrpCount*StatGrpCount];
};
typedef struct tinter {
inter_double d;
inter_void v;
inter_long l;
inter_short sh;
}pinter;
#define QI_SHORT sizeof(inter_short)/SZSH
#define QI_LONG sizeof(inter_long)/SZL
#define QI_VOID sizeof(inter_void)/SZV
#define QI_DOUBLE sizeof(inter_double)/SZD
class CTreeInter {
public:
CTreeInter(gzFile stream,unsigned long lint,char* pbuf,unsigned int n,
unsigned long qfrag,short maxn,char * ppn,double proct,int i,int j,short sore,unsigned char *pbuffer,
dvmh_stat_header *dvmhStatHeader);
~CTreeInter();
/**
* Прочитать DVMH статистику из буфера
*
* @param buffer указатель на буфер
* @param size размер статистики в байтах
*
* @return заголовок DVMH статистики
*/
dvmh_stat_interval *readDvmhStat(unsigned char * const buffer);
dvmh_stat_header *dvmhStatHeader;
// --
BOOL Valid();
void TextErr(char *t);
void BeginInter(void);
void NextInter(ident **p);
CInter *FindInter(ident *id);
void SumLevel(void);
void ReadProcTime(double &time);
void ReadProcName(char **name);
ptree (*pt);
protected:
unsigned int nproc;
unsigned long qinter;
unsigned long curninter;
short maxnlev;
BOOL valid;
char texterr[80];
char *pprocname;
unsigned char * sign_buffer;
double proctime;
/**
* Выравнивание памяти
*
* @param pointer указатель который необходимо выровнять
* @param align размер выравнивания
* @param size размер переменной которая будет размещаться по указателю
*
* @param выровненный указатель
*/
unsigned long memAlign(unsigned long pointer, const unsigned short align, const unsigned long size);
//void CTreeInter::memAlign(unsigned long &pointer, short align);
};
#endif