16e112132382b6442b636ee39b02951d771408e8frobbiew/* 26e112132382b6442b636ee39b02951d771408e8frobbiew* Disktest 36e112132382b6442b636ee39b02951d771408e8frobbiew* Copyright (c) International Business Machines Corp., 2001 46e112132382b6442b636ee39b02951d771408e8frobbiew* 56e112132382b6442b636ee39b02951d771408e8frobbiew* 66e112132382b6442b636ee39b02951d771408e8frobbiew* This program is free software; you can redistribute it and/or modify 76e112132382b6442b636ee39b02951d771408e8frobbiew* it under the terms of the GNU General Public License as published by 86e112132382b6442b636ee39b02951d771408e8frobbiew* the Free Software Foundation; either version 2 of the License, or 96e112132382b6442b636ee39b02951d771408e8frobbiew* (at your option) any later version. 106e112132382b6442b636ee39b02951d771408e8frobbiew* 116e112132382b6442b636ee39b02951d771408e8frobbiew* This program is distributed in the hope that it will be useful, 126e112132382b6442b636ee39b02951d771408e8frobbiew* but WITHOUT ANY WARRANTY; without even the implied warranty of 136e112132382b6442b636ee39b02951d771408e8frobbiew* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 146e112132382b6442b636ee39b02951d771408e8frobbiew* GNU General Public License for more details. 156e112132382b6442b636ee39b02951d771408e8frobbiew* 166e112132382b6442b636ee39b02951d771408e8frobbiew* You should have received a copy of the GNU General Public License 176e112132382b6442b636ee39b02951d771408e8frobbiew* along with this program; if not, write to the Free Software 186e112132382b6442b636ee39b02951d771408e8frobbiew* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 196e112132382b6442b636ee39b02951d771408e8frobbiew* 206e112132382b6442b636ee39b02951d771408e8frobbiew* Please send e-mail to yardleyb@us.ibm.com if you have 216e112132382b6442b636ee39b02951d771408e8frobbiew* questions or comments. 226e112132382b6442b636ee39b02951d771408e8frobbiew* 236e112132382b6442b636ee39b02951d771408e8frobbiew* Project Website: TBD 246e112132382b6442b636ee39b02951d771408e8frobbiew* 256e112132382b6442b636ee39b02951d771408e8frobbiew* 2677e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak* $Id: sfunc.h,v 1.5 2008/02/14 08:22:23 subrata_modak Exp $ 276e112132382b6442b636ee39b02951d771408e8frobbiew* $Log: sfunc.h,v $ 2877e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak* Revision 1.5 2008/02/14 08:22:23 subrata_modak 2977e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak* Disktest application update to version 1.4.2, by, Brent Yardley <yardleyb@us.ibm.com> 3077e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak* 3177e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak* Revision 1.13 2005/10/12 23:13:35 yardleyb 3277e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak* Updates to code to support new function in disktest version 1.3.x. 3377e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak* Actual changes are recorded in the README 34d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridge* 35d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridge* Revision 1.12 2005/05/03 16:24:38 yardleyb 36d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridge* Added needed code changes to support windows 37d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridge* 38d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridge* Revision 1.11 2005/01/08 21:18:34 yardleyb 39d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridge* Update performance output and usage. Fixed pass count check 40d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridge* 41d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridge* Revision 1.10 2004/11/02 20:47:13 yardleyb 42d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridge* Added -F functions. 43d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridge* lots of minor fixes. see README 446b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* 456b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* Revision 1.9 2002/03/30 01:32:14 yardleyb 466b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* Major Changes: 476b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* 486b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* Added Dumping routines for 496b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* data miscompares, 506b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* 516b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* Updated performance output 526b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* based on command line. Gave 536b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* one decimal in MB/s output. 546b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* 556b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* Rewrote -pL IO routine to show 566b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* correct stats. Now show pass count 576b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* when using -C. 586b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* 596b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* Minor Changes: 606b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* 616b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* Code cleanup to remove the plethera 626b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* if #ifdef for windows/unix functional 636b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* differences. 646b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* 656b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* Revision 1.8 2002/02/28 02:04:32 yardleyb 666b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* Moved FileSeek64 to IO 676b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew* source files. 686e112132382b6442b636ee39b02951d771408e8frobbiew* 696e112132382b6442b636ee39b02951d771408e8frobbiew* Revision 1.7 2002/02/19 02:46:37 yardleyb 706e112132382b6442b636ee39b02951d771408e8frobbiew* Added changes to compile for AIX. 716e112132382b6442b636ee39b02951d771408e8frobbiew* Update getvsiz so it returns a -1 726e112132382b6442b636ee39b02951d771408e8frobbiew* if the ioctl fails and we handle 736e112132382b6442b636ee39b02951d771408e8frobbiew* that fact correctly. Added check 746e112132382b6442b636ee39b02951d771408e8frobbiew* to force vsiz to always be greater 756e112132382b6442b636ee39b02951d771408e8frobbiew* then stop_lba. 766e112132382b6442b636ee39b02951d771408e8frobbiew* 776e112132382b6442b636ee39b02951d771408e8frobbiew* Revision 1.6 2001/12/04 18:51:06 yardleyb 786e112132382b6442b636ee39b02951d771408e8frobbiew* Checkin of new source files and removal 796e112132382b6442b636ee39b02951d771408e8frobbiew* of outdated source 806e112132382b6442b636ee39b02951d771408e8frobbiew* 816e112132382b6442b636ee39b02951d771408e8frobbiew* Revision 1.4 2001/10/10 00:17:14 yardleyb 826e112132382b6442b636ee39b02951d771408e8frobbiew* Added Copyright and GPL license text. 836e112132382b6442b636ee39b02951d771408e8frobbiew* Miner bug fixes throughout text. 846e112132382b6442b636ee39b02951d771408e8frobbiew* 856e112132382b6442b636ee39b02951d771408e8frobbiew* Revision 1.3 2001/09/22 03:44:25 yardleyb 866e112132382b6442b636ee39b02951d771408e8frobbiew* Added level code pMsg. 876e112132382b6442b636ee39b02951d771408e8frobbiew* 886e112132382b6442b636ee39b02951d771408e8frobbiew* Revision 1.2 2001/09/06 18:23:30 yardleyb 896e112132382b6442b636ee39b02951d771408e8frobbiew* Added duty cycle -D. Updated usage. Added 906e112132382b6442b636ee39b02951d771408e8frobbiew* make option to create .tar.gz of all files 916e112132382b6442b636ee39b02951d771408e8frobbiew* 926e112132382b6442b636ee39b02951d771408e8frobbiew* Revision 1.1 2001/09/05 22:44:42 yardleyb 936e112132382b6442b636ee39b02951d771408e8frobbiew* Split out some of the special functions. 946e112132382b6442b636ee39b02951d771408e8frobbiew* added O_DIRECT -Id. Updated usage. Lots 956e112132382b6442b636ee39b02951d771408e8frobbiew* of clean up to functions. Added header info 966e112132382b6442b636ee39b02951d771408e8frobbiew* to pMsg. 976e112132382b6442b636ee39b02951d771408e8frobbiew* 986e112132382b6442b636ee39b02951d771408e8frobbiew* 996e112132382b6442b636ee39b02951d771408e8frobbiew*/ 1006e112132382b6442b636ee39b02951d771408e8frobbiew 1016b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew#ifndef _SFUNC_H 1026b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew#define _SFUNC_H 1 1036b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew 1046e112132382b6442b636ee39b02951d771408e8frobbiew#include <stdarg.h> 1056e112132382b6442b636ee39b02951d771408e8frobbiew 1066e112132382b6442b636ee39b02951d771408e8frobbiew#include "main.h" 1076e112132382b6442b636ee39b02951d771408e8frobbiew#include "defs.h" 1086e112132382b6442b636ee39b02951d771408e8frobbiew 1096e112132382b6442b636ee39b02951d771408e8frobbiewtypedef enum lvl { 11077e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak START, END, STAT, INFO, DBUG, WARN, ERR 1116e112132382b6442b636ee39b02951d771408e8frobbiew} lvl_t; 1126e112132382b6442b636ee39b02951d771408e8frobbiew 1136b98df5129acc12aad3167a9c6c12fda5afc6c31robbiewtypedef struct fmt_time { 114d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridge time_t days; 1156b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew time_t hours; 1166b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew time_t minutes; 1176b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew time_t seconds; 1186b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew} fmt_time_t; 1196b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew 1206e112132382b6442b636ee39b02951d771408e8frobbiewOFF_T my_strtofft(const char *pStr); 12177e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modakint pMsg(lvl_t level, const child_args_t *, char *Msg,...); 1226e112132382b6442b636ee39b02951d771408e8frobbiewvoid fill_buffer(void *, size_t, void *, size_t, const unsigned int); 12377e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modakvoid mark_buffer(void *, const size_t, void *, const child_args_t *, const test_env_t *); 124d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridgevoid normalize_percs(child_args_t *); 1256b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew#ifndef WINDOWS 1266e112132382b6442b636ee39b02951d771408e8frobbiewvoid Sleep(unsigned int); 127d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridgechar *strupr(char *); 128d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridgechar *strlwr(char *); 1296e112132382b6442b636ee39b02951d771408e8frobbiew#endif 130d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridgeOFF_T get_vsiz(const char *); 131d18ffdd88be3c62d027fd49a115bc9c4fe4b910cmridgeOFF_T get_file_size(char *); 1326e112132382b6442b636ee39b02951d771408e8frobbiewOFF_T Rand64(void); 1336b98df5129acc12aad3167a9c6c12fda5afc6c31robbiewfmt_time_t format_time(time_t); 1346b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew 1356b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew#endif /* _SFUNC_H */ 1366b98df5129acc12aad3167a9c6c12fda5afc6c31robbiew 137