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@us.ibm.com if you have
21 *  questions or comments.
22 *
23 *
24 * $Id: defs.h,v 1.5 2008/02/14 08:22:22 subrata_modak Exp $
25 * $Log: defs.h,v $
26 * Revision 1.5  2008/02/14 08:22:22  subrata_modak
27 * Disktest application update to version 1.4.2, by, Brent Yardley <yardleyb@us.ibm.com>
28 *
29 * Revision 1.5  2006/04/21 23:10:43  yardleyb
30 * Major updates for v1_3_3 of disktest.  View README for details.
31 *
32 * Revision 1.4  2005/10/12 23:13:35  yardleyb
33 * Updates to code to support new function in disktest version 1.3.x.
34 * Actual changes are recorded in the README
35 *
36 * Revision 1.3  2002/03/30 01:32:14  yardleyb
37 * Major Changes:
38 *
39 * Added Dumping routines for
40 * data miscompares,
41 *
42 * Updated performance output
43 * based on command line.  Gave
44 * one decimal in MB/s output.
45 *
46 * Rewrote -pL IO routine to show
47 * correct stats.  Now show pass count
48 * when using -C.
49 *
50 * Minor Changes:
51 *
52 * Code cleanup to remove the plethera
53 * if #ifdef for windows/unix functional
54 * differences.
55 *
56 * Revision 1.2  2002/02/21 19:37:34  yardleyb
57 * Added license and header info
58 *
59 * Revision 1.1  2001/12/04 18:52:33  yardleyb
60 * Checkin of new source files and removal
61 * of outdated source
62 *
63 */
64#ifndef _DEFS_H
65#define _DEFS_H 1
66
67#include "sys/types.h"
68
69#ifdef WINDOWS
70#include <windows.h>
71#define ALLOC(size) HeapAlloc(GetProcessHeap(), 0, size)
72#define RESIZE(mem, size) HeapReAlloc(GetProcessHeap(), 0, mem, size)
73#define FREE(mem) HeapFree(GetProcessHeap(), 0, mem)
74#define GETPID()	_getpid()
75#define GETLASTERROR() GetLastError()
76#define INVALID_FD(fd) (fd == INVALID_HANDLE_VALUE)
77
78typedef __int64 OFF_T;
79typedef int pid_t;
80
81#else
82#include <stdlib.h>
83#define ALLOC(size) malloc(size)
84#define RESIZE(mem, size) realloc(mem, size)
85#define FREE(mem) free(mem)
86
87#define GETPID()	getpid()
88#define GETLASTERROR() errno
89#define INVALID_FD(fd) (fd == -1)
90
91#define TRUE 1
92#define FALSE 0
93
94typedef int BOOL;
95typedef void * HANDLE;
96
97/* typedef off_t OFF_T; */
98typedef long long int OFF_T;
99
100#endif /* WINDOWS */
101
102typedef enum op {
103	WRITER,READER,NONE,RETRY
104} op_t;
105
106typedef struct action {
107	op_t    oper;
108	unsigned long trsiz;
109	OFF_T   lba;
110} action_t;
111
112#endif /* _DEFS_H */
113
114
115