Home | History | Annotate | Download | only in disktest
      1 /*
      2 * Disktest
      3 * Copyright (c) International Business Machines Corp., 2001
      4 *
      5 *
      6 * This program is free software; you can redistribute it and/or modify
      7 * it under the terms of the GNU General Public License as published by
      8 * the Free Software Foundation; either version 2 of the License, or
      9 * (at your option) any later version.
     10 *
     11 * This program is distributed in the hope that it will be useful,
     12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14 * GNU General Public License for more details.
     15 *
     16 * You should have received a copy of the GNU General Public License
     17 * along with this program; if not, write to the Free Software
     18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     19 *
     20 *  Please send e-mail to yardleyb (at) us.ibm.com if you have
     21 *  questions or comments.
     22 *
     23 *  Project Website:  TBD
     24 *
     25 * $Id: stats.h,v 1.2 2008/02/14 08:22:24 subrata_modak Exp $
     26 *
     27 */
     28 
     29 #ifndef _STATS_H
     30 #define _STATS_H
     31 
     32 #ifdef WINDOWS
     33 #include <windows.h>
     34 #include <winioctl.h>
     35 #include <io.h>
     36 #include <process.h>
     37 #include <sys/stat.h>
     38 #else
     39 #include <sys/types.h>
     40 #include <sys/ioctl.h>
     41 #include <unistd.h>
     42 #endif
     43 
     44 #include <stdio.h>
     45 #include <stdlib.h>
     46 #include <stdarg.h>
     47 #include <signal.h>
     48 #include <time.h>
     49 #include <errno.h>
     50 #include "defs.h"
     51 
     52 #ifdef WINDOWS
     53 #define CTRSTR "%I64d;Rbytes;%I64d;Rxfers;"
     54 #define CTWSTR "%I64d;Wbytes;%I64d;Wxfers;"
     55 #define TCTRSTR "%I64d;TRbytes;%I64d;TRxfers;"
     56 #define TCTWSTR "%I64d;TWbytes;%I64d;TWxfers;"
     57 #define HRTSTR "%I64d bytes read in %I64d transfers during heartbeat.\n"
     58 #define HWTSTR "%I64d bytes written in %I64d transfers during heartbeat.\n"
     59 #define CRTSTR "%I64d bytes read in %I64d transfers during cycle.\n"
     60 #define CWTSTR "%I64d bytes written in %I64d transfers during cycle.\n"
     61 #define TRTSTR "Total bytes read in %I64d transfers: %I64d\n"
     62 #define TWTSTR "Total bytes written in %I64d transfers: %I64d\n"
     63 #else
     64 #define CTRSTR "%lld;Rbytes;%lld;Rxfers;"
     65 #define CTWSTR "%lld;Wbytes;%lld;Wxfers;"
     66 #define TCTRSTR "%lld;TRbytes;%lld;TRxfers;"
     67 #define TCTWSTR "%lld;TWbytes;%lld;TWxfers;"
     68 #define HRTSTR "%lld bytes read in %lld transfers during heartbeat.\n"
     69 #define HWTSTR "%lld bytes written in %lld transfers during heartbeat.\n"
     70 #define CRTSTR "%lld bytes read in %lld transfers during cycle.\n"
     71 #define CWTSTR "%lld bytes written in %lld transfers during cycle.\n"
     72 #define TRTSTR "Total bytes read in %lld transfers: %lld\n"
     73 #define TWTSTR "Total bytes written in %lld transfers: %lld\n"
     74 #endif
     75 #define HRTHSTR "Heartbeat read throughput: %.1fB/s (%.2fMB/s), IOPS %.1f/s.\n"
     76 #define HWTHSTR "Heartbeat write throughput: %.1fB/s (%.2fMB/s), IOPS %.1f/s.\n"
     77 #define CRTHSTR "Cycle read throughput: %.1fB/s (%.2fMB/s), IOPS %.1f/s.\n"
     78 #define CWTHSTR "Cycle write throughput: %.1fB/s (%.2fMB/s), IOPS %.1f/s.\n"
     79 #define TRTHSTR "Total read throughput: %.1fB/s (%.2fMB/s), IOPS %.1f/s.\n"
     80 #define TWTHSTR "Total write throughput: %.1fB/s (%.2fMB/s), IOPS %.1f/s.\n"
     81 #define CTRRSTR "%.1f;RB/s;%.1f;RIOPS;"
     82 #define CTRWSTR "%.1f;WB/s;%.1f;WIOPS;"
     83 #define TCTRRSTR "%.1f;TRB/s;%.1f;TRIOPS;"
     84 #define TCTRWSTR "%.1f;TWB/s;%.1f;TWIOPS;"
     85 
     86 typedef enum statop {
     87 	HBEAT,CYCLE,TOTAL
     88 } statop_t;
     89 
     90 
     91 void print_stats(child_args_t *, test_env_t *, statop_t);
     92 void update_gbl_stats(test_env_t *);
     93 void update_cyc_stats(test_env_t *);
     94 
     95 #endif /* _STATS_H */
     96