blob: e0610a0478b855cdf80043a10f284ecde8b61e91 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
* Portions Copyright 2008 Denis Cheng
*/
#ifndef _FB_FILEBENCH_H
#define _FB_FILEBENCH_H
#include "config.h"
#include <stdio.h>
#include <string.h>
#include <errno.h>
#ifndef HAVE_BOOLEAN_T
typedef enum { B_FALSE, B_TRUE } boolean_t;
#endif
#ifndef HAVE_U_LONGLONG_T
typedef unsigned long long u_longlong_t;
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#include "procflow.h"
#include "misc.h"
#include "ipc.h"
#ifdef HAVE_STDINT_H
#include <stdint.h>
#endif
#ifdef __STDC__
#include <stdarg.h>
#define __V(x) x
#ifndef __P
#define __P(x) x
#endif
#else
#include <varargs.h>
#define __V(x) (va_alist) va_dcl
#define __P(x) ()
#define const
#endif
#include <sys/times.h>
#ifdef HAVE_SYS_INT_LIMITS_H
#include <sys/int_limits.h>
#endif /* HAVE_SYS_INT_LIMITS_H */
#ifdef __cplusplus
extern "C" {
#endif
extern pid_t my_pid; /* this process' process id */
extern procflow_t *my_procflow; /* if slave process, procflow pointer */
extern int errno;
extern char *execname;
extern int noproc;
void filebench_init();
void filebench_log __V((int level, const char *fmt, ...));
void filebench_shutdown(int error);
#ifndef HAVE_UINT64_MAX
#define UINT64_MAX (((off64_t)1UL<<63UL) - 1UL)
#endif
#define FILEBENCH_RANDMAX64 UINT64_MAX
#define FILEBENCH_RANDMAX32 UINT32_MAX
#if defined(_LP64) || (__WORDSIZE == 64)
#define filebench_randomno filebench_randomno64
#define FILEBENCH_RANDMAX FILEBENCH_RANDMAX64
#else
#define filebench_randomno filebench_randomno32
#define FILEBENCH_RANDMAX FILEBENCH_RANDMAX32
#endif
#define KB (1024LL)
#define MB (KB * KB)
#define GB (KB * MB)
#define MMAP_SIZE (1024UL * 1024UL * 1024UL)
#ifndef MIN
#define MIN(x, y) ((x) < (y) ? (x) : (y))
#endif
#define FILEBENCH_VERSION "1.3.4"
#define FILEBENCHDIR "/usr/benchmarks/filebench"
#define FILEBENCH_PROMPT "filebench> "
#define MAX_LINE_LEN 1024
#define MAX_CMD_HIST 128
#define SHUTDOWN_WAIT_SECONDS 5 /* time to wait for proc / thrd to quit */
#define FILEBENCH_DONE 1
#define FILEBENCH_OK 0
#define FILEBENCH_ERROR -1
#define FILEBENCH_NORSC -2
/* For MacOSX */
#ifndef HAVE_OFF64_T
#define mmap64 mmap
#define off64_t off_t
#define open64 open
#define stat64 stat
#define pread64 pread
#define pwrite64 pwrite
#define lseek64 lseek
#define fstat64 fstat
#endif
#ifdef __cplusplus
}
#endif
#endif /* _FB_FILEBENCH_H */
|