xref: /netbsd-src/external/gpl3/binutils.old/dist/gprofng/src/FileData.h (revision c42dbd0ed2e61fe6eda8590caa852ccf34719964)
1*c42dbd0eSchristos /* Copyright (C) 2021 Free Software Foundation, Inc.
2*c42dbd0eSchristos    Contributed by Oracle.
3*c42dbd0eSchristos 
4*c42dbd0eSchristos    This file is part of GNU Binutils.
5*c42dbd0eSchristos 
6*c42dbd0eSchristos    This program is free software; you can redistribute it and/or modify
7*c42dbd0eSchristos    it under the terms of the GNU General Public License as published by
8*c42dbd0eSchristos    the Free Software Foundation; either version 3, or (at your option)
9*c42dbd0eSchristos    any later version.
10*c42dbd0eSchristos 
11*c42dbd0eSchristos    This program is distributed in the hope that it will be useful,
12*c42dbd0eSchristos    but WITHOUT ANY WARRANTY; without even the implied warranty of
13*c42dbd0eSchristos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*c42dbd0eSchristos    GNU General Public License for more details.
15*c42dbd0eSchristos 
16*c42dbd0eSchristos    You should have received a copy of the GNU General Public License
17*c42dbd0eSchristos    along with this program; if not, write to the Free Software
18*c42dbd0eSchristos    Foundation, 51 Franklin Street - Fifth Floor, Boston,
19*c42dbd0eSchristos    MA 02110-1301, USA.  */
20*c42dbd0eSchristos 
21*c42dbd0eSchristos #ifndef _FILEDATA_H
22*c42dbd0eSchristos #define _FILEDATA_H
23*c42dbd0eSchristos 
24*c42dbd0eSchristos #include "gp-defs.h"
25*c42dbd0eSchristos #include "gp-time.h"
26*c42dbd0eSchristos 
27*c42dbd0eSchristos #include "vec.h"
28*c42dbd0eSchristos #include "data_pckts.h"
29*c42dbd0eSchristos #include "Histable.h"
30*c42dbd0eSchristos 
31*c42dbd0eSchristos #define FSTYPESZ  16
32*c42dbd0eSchristos 
33*c42dbd0eSchristos #define VIRTUAL_FD_TOTAL    0
34*c42dbd0eSchristos #define VIRTUAL_FD_STDIN    1
35*c42dbd0eSchristos #define VIRTUAL_FD_STDOUT   2
36*c42dbd0eSchristos #define VIRTUAL_FD_STDERR   3
37*c42dbd0eSchristos #define VIRTUAL_FD_OTHERIO  4
38*c42dbd0eSchristos #define VIRTUAL_FD_NONE     -1
39*c42dbd0eSchristos 
40*c42dbd0eSchristos #define STDIN_FD            0
41*c42dbd0eSchristos #define STDOUT_FD           1
42*c42dbd0eSchristos #define STDERR_FD           2
43*c42dbd0eSchristos #define OTHERIO_FD          -1
44*c42dbd0eSchristos 
45*c42dbd0eSchristos #define OTHERIO_FILENAME    "<Other IO activity>"
46*c42dbd0eSchristos #define STDIN_FILENAME      "<stdin>"
47*c42dbd0eSchristos #define STDOUT_FILENAME     "<stdout>"
48*c42dbd0eSchristos #define STDERR_FILENAME     "<stderr>"
49*c42dbd0eSchristos #define TOTAL_FILENAME      NTXT("<Total>")
50*c42dbd0eSchristos #define UNKNOWNFD_FILENAME  "<pipe(), socket(), or other fds>"
51*c42dbd0eSchristos 
52*c42dbd0eSchristos #define _1KB        1024
53*c42dbd0eSchristos #define _8KB        8192
54*c42dbd0eSchristos #define _32KB       32768
55*c42dbd0eSchristos #define _128KB      131072
56*c42dbd0eSchristos #define _256KB      262144
57*c42dbd0eSchristos #define _512KB      524288
58*c42dbd0eSchristos #define _1000KB     1048576
59*c42dbd0eSchristos #define _10MB       10485760
60*c42dbd0eSchristos #define _100MB      104857600
61*c42dbd0eSchristos #define _1GB        1073741824
62*c42dbd0eSchristos #define _10GB       10737418240
63*c42dbd0eSchristos #define _100GB      107374182400
64*c42dbd0eSchristos #define _1TB        1099511627776
65*c42dbd0eSchristos #define _10TB       10995116277760
66*c42dbd0eSchristos 
67*c42dbd0eSchristos class FileData : public Histable
68*c42dbd0eSchristos {
69*c42dbd0eSchristos   friend class IOActivity;
70*c42dbd0eSchristos public:
71*c42dbd0eSchristos   FileData (const char *fName);
72*c42dbd0eSchristos   FileData (FileData *fData);
73*c42dbd0eSchristos   ~FileData ();
74*c42dbd0eSchristos 
75*c42dbd0eSchristos   virtual char *get_name (Histable::NameFormat nfmt);
76*c42dbd0eSchristos   virtual Histable *convertto (Histable_type, Histable* = NULL);
77*c42dbd0eSchristos 
78*c42dbd0eSchristos   char *get_raw_name (Histable::NameFormat nfmt);
79*c42dbd0eSchristos   void setFsType (FileSystem_type fst);
80*c42dbd0eSchristos   void setFsType (const char* fst);
81*c42dbd0eSchristos 
82*c42dbd0eSchristos   virtual Histable_type
get_type()83*c42dbd0eSchristos   get_type ()
84*c42dbd0eSchristos   {
85*c42dbd0eSchristos     return histType;
86*c42dbd0eSchristos   };
87*c42dbd0eSchristos 
88*c42dbd0eSchristos   virtual uint64_t
get_addr()89*c42dbd0eSchristos   get_addr ()
90*c42dbd0eSchristos   {
91*c42dbd0eSchristos     return virtualFd;
92*c42dbd0eSchristos   };
93*c42dbd0eSchristos 
94*c42dbd0eSchristos   uint64_t
get_index()95*c42dbd0eSchristos   get_index ()
96*c42dbd0eSchristos   {
97*c42dbd0eSchristos     return virtualFd;
98*c42dbd0eSchristos   };
99*c42dbd0eSchristos 
100*c42dbd0eSchristos   void init ();
101*c42dbd0eSchristos 
102*c42dbd0eSchristos   char *
getFileName()103*c42dbd0eSchristos   getFileName ()
104*c42dbd0eSchristos   {
105*c42dbd0eSchristos     return fileName;
106*c42dbd0eSchristos   }
107*c42dbd0eSchristos 
108*c42dbd0eSchristos   void
addReadEvent(hrtime_t rt,int64_t nb)109*c42dbd0eSchristos   addReadEvent (hrtime_t rt, int64_t nb)
110*c42dbd0eSchristos   {
111*c42dbd0eSchristos     readTime += rt;
112*c42dbd0eSchristos     readBytes += nb;
113*c42dbd0eSchristos     readCnt++;
114*c42dbd0eSchristos   }
115*c42dbd0eSchristos 
116*c42dbd0eSchristos   hrtime_t
getReadTime()117*c42dbd0eSchristos   getReadTime ()
118*c42dbd0eSchristos   {
119*c42dbd0eSchristos     return readTime;
120*c42dbd0eSchristos   }
121*c42dbd0eSchristos 
122*c42dbd0eSchristos   int64_t
getReadBytes()123*c42dbd0eSchristos   getReadBytes ()
124*c42dbd0eSchristos   {
125*c42dbd0eSchristos     return readBytes;
126*c42dbd0eSchristos   }
127*c42dbd0eSchristos 
128*c42dbd0eSchristos   int32_t
getReadCnt()129*c42dbd0eSchristos   getReadCnt ()
130*c42dbd0eSchristos   {
131*c42dbd0eSchristos     return readCnt;
132*c42dbd0eSchristos   }
133*c42dbd0eSchristos 
134*c42dbd0eSchristos   void
addWriteEvent(hrtime_t wt,int64_t nb)135*c42dbd0eSchristos   addWriteEvent (hrtime_t wt, int64_t nb)
136*c42dbd0eSchristos   {
137*c42dbd0eSchristos     writeTime += wt;
138*c42dbd0eSchristos     writeBytes += nb;
139*c42dbd0eSchristos     writeCnt++;
140*c42dbd0eSchristos   }
141*c42dbd0eSchristos 
142*c42dbd0eSchristos   hrtime_t
getWriteTime()143*c42dbd0eSchristos   getWriteTime ()
144*c42dbd0eSchristos   {
145*c42dbd0eSchristos     return writeTime;
146*c42dbd0eSchristos   }
147*c42dbd0eSchristos 
148*c42dbd0eSchristos   int64_t
getWriteBytes()149*c42dbd0eSchristos   getWriteBytes ()
150*c42dbd0eSchristos   {
151*c42dbd0eSchristos     return writeBytes;
152*c42dbd0eSchristos   }
153*c42dbd0eSchristos 
154*c42dbd0eSchristos   int32_t
getWriteCnt()155*c42dbd0eSchristos   getWriteCnt ()
156*c42dbd0eSchristos   {
157*c42dbd0eSchristos     return writeCnt;
158*c42dbd0eSchristos   }
159*c42dbd0eSchristos 
160*c42dbd0eSchristos   void
addOtherEvent(hrtime_t ot)161*c42dbd0eSchristos   addOtherEvent (hrtime_t ot)
162*c42dbd0eSchristos   {
163*c42dbd0eSchristos     otherTime += ot;
164*c42dbd0eSchristos     otherCnt++;
165*c42dbd0eSchristos   }
166*c42dbd0eSchristos 
167*c42dbd0eSchristos   hrtime_t
getOtherTime()168*c42dbd0eSchristos   getOtherTime ()
169*c42dbd0eSchristos   {
170*c42dbd0eSchristos     return otherTime;
171*c42dbd0eSchristos   }
172*c42dbd0eSchristos 
173*c42dbd0eSchristos   int32_t
getOtherCnt()174*c42dbd0eSchristos   getOtherCnt ()
175*c42dbd0eSchristos   {
176*c42dbd0eSchristos     return otherCnt;
177*c42dbd0eSchristos   }
178*c42dbd0eSchristos 
179*c42dbd0eSchristos   void
addErrorEvent(hrtime_t er)180*c42dbd0eSchristos   addErrorEvent (hrtime_t er)
181*c42dbd0eSchristos   {
182*c42dbd0eSchristos     errorTime += er;
183*c42dbd0eSchristos     errorCnt++;
184*c42dbd0eSchristos   }
185*c42dbd0eSchristos 
186*c42dbd0eSchristos   hrtime_t
getErrorTime()187*c42dbd0eSchristos   getErrorTime ()
188*c42dbd0eSchristos   {
189*c42dbd0eSchristos     return errorTime;
190*c42dbd0eSchristos   }
191*c42dbd0eSchristos 
192*c42dbd0eSchristos   int32_t
getErrorCnt()193*c42dbd0eSchristos   getErrorCnt ()
194*c42dbd0eSchristos   {
195*c42dbd0eSchristos     return errorCnt;
196*c42dbd0eSchristos   }
197*c42dbd0eSchristos 
198*c42dbd0eSchristos   void setFileDesList (int fd);
199*c42dbd0eSchristos 
200*c42dbd0eSchristos   Vector<int> *
getFileDesList()201*c42dbd0eSchristos   getFileDesList ()
202*c42dbd0eSchristos   {
203*c42dbd0eSchristos     return fileDesList;
204*c42dbd0eSchristos   }
205*c42dbd0eSchristos 
206*c42dbd0eSchristos   void
setFileDes(int fd)207*c42dbd0eSchristos   setFileDes (int fd)
208*c42dbd0eSchristos   {
209*c42dbd0eSchristos     fileDes = fd;
210*c42dbd0eSchristos   }
211*c42dbd0eSchristos 
212*c42dbd0eSchristos   int32_t
getFileDes()213*c42dbd0eSchristos   getFileDes ()
214*c42dbd0eSchristos   {
215*c42dbd0eSchristos     return fileDes;
216*c42dbd0eSchristos   }
217*c42dbd0eSchristos 
218*c42dbd0eSchristos   void setVirtualFds (int64_t vfd);
219*c42dbd0eSchristos 
220*c42dbd0eSchristos   Vector<int64_t> *
getVirtualFds()221*c42dbd0eSchristos   getVirtualFds ()
222*c42dbd0eSchristos   {
223*c42dbd0eSchristos     return virtualFds;
224*c42dbd0eSchristos   }
225*c42dbd0eSchristos 
226*c42dbd0eSchristos   char *
getFsType()227*c42dbd0eSchristos   getFsType ()
228*c42dbd0eSchristos   {
229*c42dbd0eSchristos     return fsType;
230*c42dbd0eSchristos   }
231*c42dbd0eSchristos 
232*c42dbd0eSchristos   void
setVirtualFd(int64_t vFd)233*c42dbd0eSchristos   setVirtualFd (int64_t vFd)
234*c42dbd0eSchristos   {
235*c42dbd0eSchristos     virtualFd = vFd;
236*c42dbd0eSchristos   }
237*c42dbd0eSchristos 
238*c42dbd0eSchristos   int64_t
getVirtualFd()239*c42dbd0eSchristos   getVirtualFd ()
240*c42dbd0eSchristos   {
241*c42dbd0eSchristos     return virtualFd;
242*c42dbd0eSchristos   }
243*c42dbd0eSchristos 
244*c42dbd0eSchristos   void
setHistType(Histable::Type hType)245*c42dbd0eSchristos   setHistType (Histable::Type hType)
246*c42dbd0eSchristos   {
247*c42dbd0eSchristos     histType = hType;
248*c42dbd0eSchristos   }
249*c42dbd0eSchristos 
250*c42dbd0eSchristos   Histable::Type
getHistType()251*c42dbd0eSchristos   getHistType ()
252*c42dbd0eSchristos   {
253*c42dbd0eSchristos     return histType;
254*c42dbd0eSchristos   }
255*c42dbd0eSchristos 
256*c42dbd0eSchristos   void setWriteStat (hrtime_t wt, int64_t nb);
257*c42dbd0eSchristos 
258*c42dbd0eSchristos   hrtime_t
getWSlowestBytes()259*c42dbd0eSchristos   getWSlowestBytes ()
260*c42dbd0eSchristos   {
261*c42dbd0eSchristos     return wSlowestBytes;
262*c42dbd0eSchristos   }
263*c42dbd0eSchristos 
264*c42dbd0eSchristos   int64_t
getWSmallestBytes()265*c42dbd0eSchristos   getWSmallestBytes ()
266*c42dbd0eSchristos   {
267*c42dbd0eSchristos     return wSmallestBytes;
268*c42dbd0eSchristos   }
269*c42dbd0eSchristos 
270*c42dbd0eSchristos   int64_t
getWLargestBytes()271*c42dbd0eSchristos   getWLargestBytes ()
272*c42dbd0eSchristos   {
273*c42dbd0eSchristos     return wLargestBytes;
274*c42dbd0eSchristos   }
275*c42dbd0eSchristos 
276*c42dbd0eSchristos   int32_t
getW0KB1KBCnt()277*c42dbd0eSchristos   getW0KB1KBCnt ()
278*c42dbd0eSchristos   {
279*c42dbd0eSchristos     return w0KB1KBCnt;
280*c42dbd0eSchristos   }
281*c42dbd0eSchristos 
282*c42dbd0eSchristos   int32_t
getW1KB8KBCnt()283*c42dbd0eSchristos   getW1KB8KBCnt ()
284*c42dbd0eSchristos   {
285*c42dbd0eSchristos     return w1KB8KBCnt;
286*c42dbd0eSchristos   }
287*c42dbd0eSchristos 
288*c42dbd0eSchristos   int32_t
getW8KB32KBCnt()289*c42dbd0eSchristos   getW8KB32KBCnt ()
290*c42dbd0eSchristos   {
291*c42dbd0eSchristos     return w8KB32KBCnt;
292*c42dbd0eSchristos   }
293*c42dbd0eSchristos 
294*c42dbd0eSchristos   int32_t
getW32KB128KBCnt()295*c42dbd0eSchristos   getW32KB128KBCnt ()
296*c42dbd0eSchristos   {
297*c42dbd0eSchristos     return w32KB128KBCnt;
298*c42dbd0eSchristos   }
299*c42dbd0eSchristos 
300*c42dbd0eSchristos   int32_t
getW128KB256KBCnt()301*c42dbd0eSchristos   getW128KB256KBCnt ()
302*c42dbd0eSchristos   {
303*c42dbd0eSchristos     return w128KB256KBCnt;
304*c42dbd0eSchristos   }
305*c42dbd0eSchristos 
306*c42dbd0eSchristos   int32_t
getW256KB512KBCnt()307*c42dbd0eSchristos   getW256KB512KBCnt ()
308*c42dbd0eSchristos   {
309*c42dbd0eSchristos     return w256KB512KBCnt;
310*c42dbd0eSchristos   }
311*c42dbd0eSchristos 
312*c42dbd0eSchristos   int32_t
getW512KB1000KBCnt()313*c42dbd0eSchristos   getW512KB1000KBCnt ()
314*c42dbd0eSchristos   {
315*c42dbd0eSchristos     return w512KB1000KBCnt;
316*c42dbd0eSchristos   }
317*c42dbd0eSchristos 
318*c42dbd0eSchristos   int32_t
getW1000KB10MBCnt()319*c42dbd0eSchristos   getW1000KB10MBCnt ()
320*c42dbd0eSchristos   {
321*c42dbd0eSchristos     return w1000KB10MBCnt;
322*c42dbd0eSchristos   }
323*c42dbd0eSchristos 
324*c42dbd0eSchristos   int32_t
getW10MB100MBCnt()325*c42dbd0eSchristos   getW10MB100MBCnt ()
326*c42dbd0eSchristos   {
327*c42dbd0eSchristos     return w10MB100MBCnt;
328*c42dbd0eSchristos   }
329*c42dbd0eSchristos 
330*c42dbd0eSchristos   int32_t
getW100MB1GBCnt()331*c42dbd0eSchristos   getW100MB1GBCnt ()
332*c42dbd0eSchristos   {
333*c42dbd0eSchristos     return w100MB1GBCnt;
334*c42dbd0eSchristos   }
335*c42dbd0eSchristos 
336*c42dbd0eSchristos   int32_t
getW1GB10GBCnt()337*c42dbd0eSchristos   getW1GB10GBCnt ()
338*c42dbd0eSchristos   {
339*c42dbd0eSchristos     return w1GB10GBCnt;
340*c42dbd0eSchristos   }
341*c42dbd0eSchristos 
342*c42dbd0eSchristos   int32_t
getW10GB100GBCnt()343*c42dbd0eSchristos   getW10GB100GBCnt ()
344*c42dbd0eSchristos   {
345*c42dbd0eSchristos     return w10GB100GBCnt;
346*c42dbd0eSchristos   }
347*c42dbd0eSchristos 
348*c42dbd0eSchristos   int32_t
getW100GB1TBCnt()349*c42dbd0eSchristos   getW100GB1TBCnt ()
350*c42dbd0eSchristos   {
351*c42dbd0eSchristos     return w100GB1TBCnt;
352*c42dbd0eSchristos   }
353*c42dbd0eSchristos 
354*c42dbd0eSchristos   int32_t
getW1TB10TBCnt()355*c42dbd0eSchristos   getW1TB10TBCnt ()
356*c42dbd0eSchristos   {
357*c42dbd0eSchristos     return w1TB10TBCnt;
358*c42dbd0eSchristos   }
359*c42dbd0eSchristos 
360*c42dbd0eSchristos   void setReadStat (hrtime_t rt, int64_t nb);
361*c42dbd0eSchristos 
362*c42dbd0eSchristos   hrtime_t
getRSlowestBytes()363*c42dbd0eSchristos   getRSlowestBytes ()
364*c42dbd0eSchristos   {
365*c42dbd0eSchristos     return rSlowestBytes;
366*c42dbd0eSchristos   }
367*c42dbd0eSchristos 
368*c42dbd0eSchristos   int64_t
getRSmallestBytes()369*c42dbd0eSchristos   getRSmallestBytes ()
370*c42dbd0eSchristos   {
371*c42dbd0eSchristos     return rSmallestBytes;
372*c42dbd0eSchristos   }
373*c42dbd0eSchristos 
374*c42dbd0eSchristos   int64_t
getRLargestBytes()375*c42dbd0eSchristos   getRLargestBytes ()
376*c42dbd0eSchristos   {
377*c42dbd0eSchristos     return rLargestBytes;
378*c42dbd0eSchristos   }
379*c42dbd0eSchristos 
380*c42dbd0eSchristos   int32_t
getR0KB1KBCnt()381*c42dbd0eSchristos   getR0KB1KBCnt ()
382*c42dbd0eSchristos   {
383*c42dbd0eSchristos     return r0KB1KBCnt;
384*c42dbd0eSchristos   }
385*c42dbd0eSchristos 
386*c42dbd0eSchristos   int32_t
getR1KB8KBCnt()387*c42dbd0eSchristos   getR1KB8KBCnt ()
388*c42dbd0eSchristos   {
389*c42dbd0eSchristos     return r1KB8KBCnt;
390*c42dbd0eSchristos   }
391*c42dbd0eSchristos 
392*c42dbd0eSchristos   int32_t
getR8KB32KBCnt()393*c42dbd0eSchristos   getR8KB32KBCnt ()
394*c42dbd0eSchristos   {
395*c42dbd0eSchristos     return r8KB32KBCnt;
396*c42dbd0eSchristos   }
397*c42dbd0eSchristos 
398*c42dbd0eSchristos   int32_t
getR32KB128KBCnt()399*c42dbd0eSchristos   getR32KB128KBCnt ()
400*c42dbd0eSchristos   {
401*c42dbd0eSchristos     return r32KB128KBCnt;
402*c42dbd0eSchristos   }
403*c42dbd0eSchristos 
404*c42dbd0eSchristos   int32_t
getR128KB256KBCnt()405*c42dbd0eSchristos   getR128KB256KBCnt ()
406*c42dbd0eSchristos   {
407*c42dbd0eSchristos     return r128KB256KBCnt;
408*c42dbd0eSchristos   }
409*c42dbd0eSchristos 
410*c42dbd0eSchristos   int32_t
getR256KB512KBCnt()411*c42dbd0eSchristos   getR256KB512KBCnt ()
412*c42dbd0eSchristos   {
413*c42dbd0eSchristos     return r256KB512KBCnt;
414*c42dbd0eSchristos   }
415*c42dbd0eSchristos 
416*c42dbd0eSchristos   int32_t
getR512KB1000KBCnt()417*c42dbd0eSchristos   getR512KB1000KBCnt ()
418*c42dbd0eSchristos   {
419*c42dbd0eSchristos     return r512KB1000KBCnt;
420*c42dbd0eSchristos   }
421*c42dbd0eSchristos 
422*c42dbd0eSchristos   int32_t
getR1000KB10MBCnt()423*c42dbd0eSchristos   getR1000KB10MBCnt ()
424*c42dbd0eSchristos   {
425*c42dbd0eSchristos     return r1000KB10MBCnt;
426*c42dbd0eSchristos   }
427*c42dbd0eSchristos 
428*c42dbd0eSchristos   int32_t
getR10MB100MBCnt()429*c42dbd0eSchristos   getR10MB100MBCnt ()
430*c42dbd0eSchristos   {
431*c42dbd0eSchristos     return r10MB100MBCnt;
432*c42dbd0eSchristos   }
433*c42dbd0eSchristos 
434*c42dbd0eSchristos   int32_t
getR100MB1GBCnt()435*c42dbd0eSchristos   getR100MB1GBCnt ()
436*c42dbd0eSchristos   {
437*c42dbd0eSchristos     return r100MB1GBCnt;
438*c42dbd0eSchristos   }
439*c42dbd0eSchristos 
440*c42dbd0eSchristos   int32_t
getR1GB10GBCnt()441*c42dbd0eSchristos   getR1GB10GBCnt ()
442*c42dbd0eSchristos   {
443*c42dbd0eSchristos     return r1GB10GBCnt;
444*c42dbd0eSchristos   }
445*c42dbd0eSchristos 
446*c42dbd0eSchristos   int32_t
getR10GB100GBCnt()447*c42dbd0eSchristos   getR10GB100GBCnt ()
448*c42dbd0eSchristos   {
449*c42dbd0eSchristos     return r10GB100GBCnt;
450*c42dbd0eSchristos   }
451*c42dbd0eSchristos 
452*c42dbd0eSchristos   int32_t
getR100GB1TBCnt()453*c42dbd0eSchristos   getR100GB1TBCnt ()
454*c42dbd0eSchristos   {
455*c42dbd0eSchristos     return r100GB1TBCnt;
456*c42dbd0eSchristos   }
457*c42dbd0eSchristos 
458*c42dbd0eSchristos   int32_t
getR1TB10TBCnt()459*c42dbd0eSchristos   getR1TB10TBCnt ()
460*c42dbd0eSchristos   {
461*c42dbd0eSchristos     return r1TB10TBCnt;
462*c42dbd0eSchristos   }
463*c42dbd0eSchristos 
464*c42dbd0eSchristos private:
465*c42dbd0eSchristos   char *fileName;           // File name
466*c42dbd0eSchristos   hrtime_t readTime;        // The Total time for read operations;
467*c42dbd0eSchristos   hrtime_t writeTime;       // The Total time for write operations;
468*c42dbd0eSchristos   hrtime_t otherTime;       // The Total time for other IO operations;
469*c42dbd0eSchristos   hrtime_t errorTime;       // The Total time for failed IO operations;
470*c42dbd0eSchristos   int64_t readBytes;        //The total bytes read
471*c42dbd0eSchristos   int64_t writeBytes;       //The total bytes written
472*c42dbd0eSchristos   int32_t readCnt;          // The read count
473*c42dbd0eSchristos   int32_t writeCnt;         // The write count
474*c42dbd0eSchristos   int32_t otherCnt;         // The other IO count
475*c42dbd0eSchristos   int32_t errorCnt;         // The failed IO count
476*c42dbd0eSchristos   Vector<int> *fileDesList; // The list of file descriptors
477*c42dbd0eSchristos   Vector<int64_t> *virtualFds; // The list of file virtual descriptors
478*c42dbd0eSchristos   char fsType[FSTYPESZ];    // The file system type
479*c42dbd0eSchristos   int64_t virtualFd;        // The virtual file descriptor
480*c42dbd0eSchristos   int32_t fileDes;          // The file descriptor
481*c42dbd0eSchristos   Histable::Type histType;  // The Histable type: IOACTFILE, IOACTVFD, ...
482*c42dbd0eSchristos 
483*c42dbd0eSchristos   // Write statistics
484*c42dbd0eSchristos   hrtime_t wSlowestBytes;
485*c42dbd0eSchristos   int64_t wSmallestBytes;
486*c42dbd0eSchristos   int64_t wLargestBytes;
487*c42dbd0eSchristos   int32_t w0KB1KBCnt;
488*c42dbd0eSchristos   int32_t w1KB8KBCnt;
489*c42dbd0eSchristos   int32_t w8KB32KBCnt;
490*c42dbd0eSchristos   int32_t w32KB128KBCnt;
491*c42dbd0eSchristos   int32_t w128KB256KBCnt;
492*c42dbd0eSchristos   int32_t w256KB512KBCnt;
493*c42dbd0eSchristos   int32_t w512KB1000KBCnt;
494*c42dbd0eSchristos   int32_t w1000KB10MBCnt;
495*c42dbd0eSchristos   int32_t w10MB100MBCnt;
496*c42dbd0eSchristos   int32_t w100MB1GBCnt;
497*c42dbd0eSchristos   int32_t w1GB10GBCnt;
498*c42dbd0eSchristos   int32_t w10GB100GBCnt;
499*c42dbd0eSchristos   int32_t w100GB1TBCnt;
500*c42dbd0eSchristos   int32_t w1TB10TBCnt;
501*c42dbd0eSchristos 
502*c42dbd0eSchristos   // Read statistics
503*c42dbd0eSchristos   hrtime_t rSlowestBytes;
504*c42dbd0eSchristos   int64_t rSmallestBytes;
505*c42dbd0eSchristos   int64_t rLargestBytes;
506*c42dbd0eSchristos   int32_t r0KB1KBCnt;
507*c42dbd0eSchristos   int32_t r1KB8KBCnt;
508*c42dbd0eSchristos   int32_t r8KB32KBCnt;
509*c42dbd0eSchristos   int32_t r32KB128KBCnt;
510*c42dbd0eSchristos   int32_t r128KB256KBCnt;
511*c42dbd0eSchristos   int32_t r256KB512KBCnt;
512*c42dbd0eSchristos   int32_t r512KB1000KBCnt;
513*c42dbd0eSchristos   int32_t r1000KB10MBCnt;
514*c42dbd0eSchristos   int32_t r10MB100MBCnt;
515*c42dbd0eSchristos   int32_t r100MB1GBCnt;
516*c42dbd0eSchristos   int32_t r1GB10GBCnt;
517*c42dbd0eSchristos   int32_t r10GB100GBCnt;
518*c42dbd0eSchristos   int32_t r100GB1TBCnt;
519*c42dbd0eSchristos   int32_t r1TB10TBCnt;
520*c42dbd0eSchristos };
521*c42dbd0eSchristos 
522*c42dbd0eSchristos #endif
523