dt.h

来自「Linux磁盘测试的源代码,测试磁盘的读写性能」· C头文件 代码 · 共 1,265 行 · 第 1/3 页

H
1,265
字号
extern bool rotate_flag, pad_check, spad_check, pstats_flag, raw_flag, stats_flag;extern char *cmdname;extern u_char *base_buffer, *data_buffer, *verify_buffer;extern char *cmd_line, *msg_buffer;extern char *log_file, *log_buffer, *log_bufptr;extern char *input_file, *output_file, *pattern_file;extern u_char *mmap_buffer, *mmap_bufptr;extern u_char *pattern_buffer, *pattern_bufptr, *pattern_bufend;extern size_t patbuf_size;extern int pattern_size, prefix_size, page_size;extern size_t block_size, data_size, lbdata_size;extern u_int32 device_size, lbdata_addr;extern int open_flags, wopen_flags;extern size_t dump_limit, incr_count, min_size, max_size;extern u_long file_limit;extern u_long pass_count, pass_limit;extern u_long seek_count, skip_count;extern large_t record_limit, total_bytes, total_records;extern large_t total_bytes_read, total_bytes_written;extern large_t total_files, total_files_read, total_files_written;extern u_long error_limit;extern vu_long total_errors;extern u_long total_partial, warning_errors;extern u_int cdelay_count, edelay_count, rdelay_count, sdelay_count;extern u_int tdelay_count, wdelay_count;extern u_int random_seed;extern v_int multi_volume;extern int volume_limit;extern vu_long volume_records;/* * Volatile Storage: */extern bool eof_status;extern v_bool end_of_file;extern u_long random_align;extern vu_long error_count, partial_records, records_processed;extern large_t data_limit, rdata_limit, user_capacity;extern bool tty_minflag;extern u_short tty_timeout, tty_minimum;extern off_t file_position, last_position, step_offset;extern clock_t start_time, end_time, pass_time;extern struct tms stimes, ptimes, etimes;#if defined(DEC)extern bool table_flag;extern struct tbl_sysinfo s_table, p_table, e_table;#endif /* defined(DEC) */extern time_t runtime, elapsed_time;extern time_t program_start, program_end, error_time;extern bool TimerActive, TimerExpired;extern char *user_runtime;extern pid_t child_pid;extern int cur_proc, num_procs, num_slices, slice_num;#if defined(AIO)extern int aio_bufs;#endif /* defined(AIO) */#if defined(_BSD)extern union wait child_status;#else /* !defined(_BSD) */extern int child_status;#endif /* defined(_BSD) *//* * Function Prototypes: (No ANSI compiler? too bad... buy one! :-) *//* dt.c */extern int match(char *s);extern void report_error(char *error_info, int record_flag);extern void report_record(			struct dinfo	*dip,			u_long		files,			u_long		records,			u_int32		lba,			enum test_mode	mode,			void		*buffer,			size_t		bytes );extern void terminate(int code);extern int nofunc(struct dinfo *dip);extern int HandleMultiVolume(struct dinfo *dip);extern int RequestFirstVolume(struct dinfo *dip, int oflags);extern int RequestMultiVolume(struct dinfo *dip, bool reopen, int open_flags);#if defined(MUNSA)extern void dlm_error(dlm_lkid_t *lk, dlm_status_t l_stat);#endif /* defined(MUNSA) *//* dtgen.c */extern int open_file(struct dinfo *dip, int mode);extern int close_file(struct dinfo *dip);extern int reopen_file(struct dinfo *dip, int mode);extern int initialize(struct dinfo *dip);extern int init_file(struct dinfo *dip);extern int flush_file(struct dinfo *dip);extern int read_file(struct dinfo *dip);extern int write_file(struct dinfo *dip);extern int validate_opts(struct dinfo *dip);/* dtinfo.c */extern struct dtype *setup_device_type(char *str);extern struct dinfo *setup_device_info(char *dname, struct dtype *dtp);extern void system_device_info(struct dinfo *dip);/* dtread.c */extern int read_data(struct dinfo *dip);extern int check_read(struct dinfo *dip, ssize_t count, size_t size);extern int read_eof(struct dinfo *dip);extern int read_eom(struct dinfo *dip);extern ssize_t read_record(	struct dinfo	*dip,				u_char		*buffer,				size_t		bsize,				size_t		dsize,				int		*status );extern int verify_record(	struct dinfo	*dip,				u_char		*buffer,				size_t		bsize );extern int FindCapacity(struct dinfo *dip);/* dtwrite.c */extern int write_data(struct dinfo *dip);extern int check_write(struct dinfo *dip, ssize_t count, size_t size);extern int copy_record(		struct dinfo	*dip,				u_char		*buffer,				size_t		bsize );extern ssize_t write_record(	struct dinfo	*dip,				u_char		*buffer,				size_t		bsize,				size_t		dsize,				int		*status );extern int write_verify(	struct dinfo	*dip,				u_char		*buffer,				size_t		bsize,				size_t		dsize,				off_t		pos );/* dtstats.c */extern void gather_stats(struct dinfo *dip);extern void gather_totals(void);extern void init_stats(struct dinfo *dip);extern void report_pass(struct dinfo *dip, enum stats stats_type);extern void report_stats(struct dinfo *dip, enum stats stats_type);/* dttty.c */extern int tty_open(struct dinfo *dip, int mode);extern int tty_close(struct dinfo *dip);extern int tty_reopen(struct dinfo *dip, int mode);extern int tty_flush_data(struct dinfo *dip);extern int drain_tty(int fd);extern int flush_tty(int fd);extern int save_tty(int fd);extern int restore_tty(int fd);extern int setup_tty(int fd, int flushing);extern int setup_baud_rate(u_int32 baud);extern int SetBlockingMode (int fd);#if defined(_OSF_SOURCE) || defined(ultrix)extern unsigned int GetModemSignals(int fd);extern int HangupModem(int fd);extern int ShowModemSignals(int fd);extern int WaitForCarrier(int fd);#endif /* defined(_OSF_SOURCE) || defined(ultrix) *//* dtutil.c */extern int delete_file(struct dinfo *dip);extern void mySleep(unsigned int sleep_time);extern void dump_buffer(	char		*name,				u_char		*base,				u_char		*ptr,				size_t		dump_size,				size_t		bufr_size,				bool		expected);extern void fill_buffer(	u_char		*buffer,				size_t		byte_count,				u_int32		pattern);extern void init_buffer(	u_char		*buffer,				size_t		count,				u_int32		pattern );extern u_int32 init_lbdata(	u_char		*buffer,				size_t		count,				u_int32		lba,				u_int32		lbsize );#if !defined(INLINE_FUNCS)extern u_int32 make_lba(	struct dinfo	*dip,				off_t		pos );extern off_t make_offset(	struct dinfo	*dip,				u_int32		lba);extern u_int32 make_lbdata(	struct dinfo	*dip,				off_t		pos );#endif /* !defined(INLINE_FUNCS) */extern u_int32 winit_lbdata(	struct dinfo	*dip,				off_t		pos,				u_char		*buffer,				size_t		count,				u_int32		lba,				u_int32		lbsize );extern u_int32 init_iotdata(	size_t		bcount,				u_int32		lba,				u_int32		lbsize );extern void init_padbytes(	u_char		*buffer,				size_t		offset,				u_int32		pattern);extern void print_time(FILE *fp, clock_t time);extern void format_time(clock_t time);#if defined(DEC)extern void format_ltime (long time, int tps);#endif /* defined(DEC) */extern int verify_buffers(	struct dinfo	*dip,				u_char		*dbuffer,				u_char		*vbuffer,				size_t		count );extern int verify_lbdata(	struct dinfo	*dip,				u_char		*dbuffer,				u_char		*vbuffer,				size_t		count,				u_int32		*lba );extern int verify_data(		struct dinfo	*dip,				u_char		*buffer,				size_t		byte_count,				u_int32		pattern,				u_int32		*lba );extern int verify_padbytes(	struct dinfo	*dip,				u_char		*buffer,				size_t		count,				u_int32		pattern,				size_t		offset );extern void process_pfile(int *fd, char *file, int mode);extern void copy_pattern(u_int32 pattern, u_char *buffer);extern void setup_pattern(u_char *buffer, size_t size);extern off_t seek_file(int fd, u_long records, off_t size, int whence);extern off_t seek_position(struct dinfo *dip, off_t size, int whence);#if !defined(INLINE_FUNCS)extern off_t get_position(struct dinfo *dip);#endif /* !defined(INLINE_FUNCS) */extern u_int32 get_lba(struct dinfo *dip);extern off_t incr_position(struct dinfo *dip, off_t offset);extern off_t set_position(struct dinfo *dip, off_t offset);#if !defined(INLINE_FUNCS)extern off_t make_position(struct dinfo *dip, u_int32 lba);#endif /* !defined(INLINE_FUNCS) */extern void show_position(struct dinfo *dip, off_t pos);extern u_long get_random(void);extern size_t get_variable(struct dinfo *dip);extern void set_rseed(u_int seed);extern off_t do_random(struct dinfo *dip, bool doseek, size_t xfer_size);extern int skip_records(struct dinfo *dip, u_long records, u_char *buffer, off_t size);extern void *myalloc(size_t size, int offset);extern void *Malloc(size_t size);extern u_long CvtStrtoValue(char *nstr, char **eptr, int base);extern large_t CvtStrtoLarge(char *nstr, char **eptr, int base);extern time_t CvtTimetoValue(char *nstr, char **eptr);#if defined(ultrix)extern clock_t times(struct tms *tmsp);#endif /* defined(ultrix) */#if defined(ultrix)extern void *valloc(size_t size);#endif /* defined(ultrix) */extern void Ctime(time_t timer);extern void LogMsg(FILE *fp, enum logLevel level, int flags, char *fmtstr, ...);extern u_long RecordError(void);extern u_long RecordWarning(u_long record);#if 1extern void Fprintf(char *format, ...);extern void Fprint(char *format, ...);extern void Lprintf(char *format, ...);extern void Printf(char *format, ...);extern void Print(char *format, ...);#endif#if !defined(_QNX_SOURCE) && !defined(__linux__) && !defined(FreeBSD) && !defined(__osf__) && !defined(__NUTC__)extern void bzero(char *buffer, size_t length);#endif /* !defined(_QNX_SOURCE) && !defined(__linux__) && !defined(FreeBSD) && !defined(__osf__) && !defined(__NUTC__) */extern void Lflush(void);extern int Sprintf(char *bufptr, char *msg, ...);extern int Fputs(char *str, FILE *stream);extern int is_Eof(struct dinfo *dip, size_t count, int *status);extern void set_Eof(struct dinfo *dip);extern void ReportCompareError(	struct dinfo	*dip,				size_t		byte_count,				u_int		byte_position,				u_int		expected_data,				u_int		data_found );extern void ReportDeviceInfo(	struct dinfo	*dip,				size_t		byte_count,				u_int		byte_position,				bool		eio_error );extern void ReportLbdataError(	struct dinfo	*dip,			        u_int32		lba,				u_int32		byte_count,				u_int32		byte_position,				u_int32		expected_data,				u_int32		data_found );extern int IS_HexString(char *s);extern int FmtPrefix(struct dinfo *dip, char **prefix, int *psize);extern int StrCopy(void *to_buffer, void *from_buffer, size_t length);extern u_long stoh(u_char *bp, size_t size);extern void htos(u_char *bp, u_long value, size_t size);extern void LogDiagMsg(char *msg);/* dtusage.c */extern char *version_str;extern void dthelp(void), dtusage(void), dtversion(void);/* dtprocs.c */extern void abort_procs(void);extern void await_procs(void);extern pid_t fork_process(void);extern pid_t start_procs(void);extern pid_t start_slices(void);extern void init_slice(struct dinfo *dip, int slice);#if !defined(_QNX_SOURCE)/* * POSIX does *not* define a special device interface, and since no * Magtape API exists, these functions are operating system dependent. * [ I'll add QNX tape functions after I find out the interface. ] *//* dttape.c */#if defined(_QNX_SOURCE) || defined(SCO)extern int DoIoctl(dinfo_t *dip, int cmd, int argp, caddr_t msgp);#else /* !defined(_QNX_SOURCE) && !defined(SCO) */extern int DoIoctl(dinfo_t *dip, int cmd, caddr_t argp, caddr_t msgp);#endif /* defined(_QNX_SOURCE) || defined(SCO) */extern int DoMtOp(dinfo_t *dip, short cmd, daddr_t count, caddr_t msgp);extern int DoWriteFileMark(dinfo_t *dip, daddr_t count);extern int DoForwardSpaceFile(dinfo_t *dip, daddr_t count);extern int DoBackwardSpaceFile(dinfo_t *dip, daddr_t count);extern int DoForwardSpaceRecord(dinfo_t *dip, daddr_t count);extern int DoBackwardSpaceRecord(dinfo_t *dip, daddr_t count);extern int DoRewindTape(dinfo_t *dip);extern int DoTapeOffline(dinfo_t *dip);extern int DoRetensionTape(dinfo_t *dip);#if defined(__osf__)			/* Really DEC specific. */extern int DoSpaceEndOfData(dinfo_t *dip);extern int DoEraseTape(dinfo_t *dip);extern int DoTapeOnline(dinfo_t *dip);extern int DoLoadTape(dinfo_t *dip);extern int DoUnloadTape(dinfo_t *dip);#endif /* defined(__osf__) */#else /* defined(_QNX_SOURCE) */extern int DoWriteFileMark(dinfo_t *dip, daddr_t count);#endif /* !defined(_QNX_SOURCE) *//* dtaio.c */#if defined(AIO)#include <aio.h>extern struct aiocb *current_acb;extern int dtaio_close_file(struct dinfo *dip);extern int dtaio_initialize(struct dinfo *dip);extern int dtaio_cancel(struct dinfo *dip);extern int dtaio_cancel_reads(struct dinfo *dip);extern int dtaio_read_data(struct dinfo *dip);extern int dtaio_write_data(struct dinfo *dip);#endif /* defined(AIO) *//* dtmmap.c */#if defined(MMAP)extern int mmap_file(struct dinfo *dip);extern int mmap_flush(struct dinfo *dip);extern int mmap_reopen_file(struct dinfo *dip, int mode);extern int mmap_validate_opts(struct dinfo *dip);extern int mmap_read_data(struct dinfo *dip);extern int mmap_write_data(struct dinfo *dip);#endif /* defined(MMAP) */#if defined(FIFO)extern int fifo_open(struct dinfo *dip, int mode);#endif /* defined(FIFO) *//* dteei.c */#if defined(EEI)#include <sys/mtio.h>extern long mt_blkno, mt_fileno;/* * Functions for Processing EEI Data: */extern bool HandleTapeResets(struct dinfo *dip);extern bool check_eei_status(struct dinfo *dip, bool retry);extern void clear_eei_status(int fd, bool startup);extern int get_eei_status(int fd, struct mtget *mt);extern void print_mtstatus(int fd, struct mtget *mt, bool print_all);extern void print_mtio(int fd, struct mtget *mt);extern void print_eei_status(u_int eei_status);extern void print_cam_status(u_int cam_status);extern void print_scsi_status(u_char scsi_status);extern void print_sense_data(u_char *scsi_sense_ptr);#endif /* defined(EEI) */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?