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 + -
显示快捷键?