您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ td_verror函数代码示例

51自学网 2021-06-03 08:42:53
  C++
这篇教程C++ td_verror函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中td_verror函数的典型用法代码示例。如果您正苦于以下问题:C++ td_verror函数的具体用法?C++ td_verror怎么用?C++ td_verror使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了td_verror函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: verify_load_state

int verify_load_state(struct thread_data *td, const char *prefix){	struct verify_state_hdr hdr;	void *s = NULL;	uint64_t crc;	ssize_t ret;	int fd;	if (!td->o.verify_state)		return 0;	fd = open_state_file(td->o.name, prefix, td->thread_number - 1, 0);	if (fd == -1)		return 1;	ret = read(fd, &hdr, sizeof(hdr));	if (ret != sizeof(hdr)) {		if (ret < 0)			td_verror(td, errno, "read verify state hdr");		log_err("fio: failed reading verify state header/n");		goto err;	}	hdr.version = le64_to_cpu(hdr.version);	hdr.size = le64_to_cpu(hdr.size);	hdr.crc = le64_to_cpu(hdr.crc);	if (hdr.version != VSTATE_HDR_VERSION &&	    hdr.version != VSTATE_HDR_VERSION_V1) {		log_err("fio: bad version in verify state header/n");		goto err;	}	s = malloc(hdr.size);	ret = read(fd, s, hdr.size);	if (ret != hdr.size) {		if (ret < 0)			td_verror(td, errno, "read verify state");		log_err("fio: failed reading verity state/n");		goto err;	}	crc = fio_crc32c(s, hdr.size);	if (crc != hdr.crc) {		log_err("fio: verify state is corrupt/n");		goto err;	}	close(fd);	verify_convert_assign_state(td, s, hdr.version);	return 0;err:	if (s)		free(s);	close(fd);	return 1;}
开发者ID:apexearth,项目名称:fio,代码行数:58,


示例2: pre_read_file

static int pre_read_file(struct thread_data *td, struct fio_file *f){	int ret = 0, r, did_open = 0, old_runstate;	unsigned long long left;	unsigned int bs;	char *b;	if (td->io_ops->flags & FIO_PIPEIO)		return 0;	if (!fio_file_open(f)) {		if (td->io_ops->open_file(td, f)) {			log_err("fio: cannot pre-read, failed to open file/n");			return 1;		}		did_open = 1;	}	old_runstate = td_bump_runstate(td, TD_PRE_READING);	bs = td->o.max_bs[DDIR_READ];	b = malloc(bs);	memset(b, 0, bs);	if (lseek(f->fd, f->file_offset, SEEK_SET) < 0) {		td_verror(td, errno, "lseek");		log_err("fio: failed to lseek pre-read file/n");		ret = 1;		goto error;	}	left = f->io_size;	while (left && !td->terminate) {		if (bs > left)			bs = left;		r = read(f->fd, b, bs);		if (r == (int) bs) {			left -= bs;			continue;		} else {			td_verror(td, EIO, "pre_read");			break;		}	}error:	td_restore_runstate(td, old_runstate);	if (did_open)		td->io_ops->close_file(td, f);	free(b);	return ret;}
开发者ID:ivotron,项目名称:fio,代码行数:57,


示例3: __file_invalidate_cache

static int __file_invalidate_cache(struct thread_data *td, struct fio_file *f,				   unsigned long long off,				   unsigned long long len){	int ret = 0;	if (len == -1ULL)		len = f->io_size;	if (off == -1ULL)		off = f->file_offset;	if (len == -1ULL || off == -1ULL)		return 0;	dprint(FD_IO, "invalidate cache %s: %llu/%llu/n", f->file_name, off,								len);	/*	 * FIXME: add blockdev flushing too	 */	if (f->mmap_ptr) {		ret = posix_madvise(f->mmap_ptr, f->mmap_sz, POSIX_MADV_DONTNEED);#ifdef FIO_MADV_FREE		if (f->filetype == FIO_TYPE_BD)			(void) posix_madvise(f->mmap_ptr, f->mmap_sz, FIO_MADV_FREE);#endif	} else if (f->filetype == FIO_TYPE_FILE) {		ret = posix_fadvise(f->fd, off, len, POSIX_FADV_DONTNEED);	} else if (f->filetype == FIO_TYPE_BD) {		ret = blockdev_invalidate_cache(f);		if (ret < 0 && errno == EACCES && geteuid()) {			if (!root_warn) {				log_err("fio: only root may flush block "					"devices. Cache flush bypassed!/n");				root_warn = 1;			}			ret = 0;		}	} else if (f->filetype == FIO_TYPE_CHAR || f->filetype == FIO_TYPE_PIPE)		ret = 0;	if (ret < 0) {		td_verror(td, errno, "invalidate_cache");		return 1;	} else if (ret > 0) {		td_verror(td, ret, "invalidate_cache");		return 1;	}	return ret;}
开发者ID:cofol1986,项目名称:fio,代码行数:52,


示例4: fio_mmapio_open

static int fio_mmapio_open(struct thread_data *td, struct fio_file *f){	int ret, flags;	ret = generic_open_file(td, f);	if (ret)		return ret;	/*	 * for size checkup, don't mmap anything.	 */	if (!f->io_size)		return 0;	if (td_rw(td))		flags = PROT_READ | PROT_WRITE;	else if (td_write(td)) {		flags = PROT_WRITE;		if (td->o.verify != VERIFY_NONE)			flags |= PROT_READ;	} else		flags = PROT_READ;	f->mmap = mmap(NULL, f->io_size, flags, MAP_SHARED, f->fd, f->file_offset);	if (f->mmap == MAP_FAILED) {		f->mmap = NULL;		td_verror(td, errno, "mmap");		goto err;	}	if (file_invalidate_cache(td, f))		goto err;	if (!td_random(td)) {		if (madvise(f->mmap, f->io_size, MADV_SEQUENTIAL) < 0) {			td_verror(td, errno, "madvise");			goto err;		}	} else {		if (madvise(f->mmap, f->io_size, MADV_RANDOM) < 0) {			td_verror(td, errno, "madvise");			goto err;		}	}	return 0;err:	td->io_ops->close_file(td, f);	return 1;}
开发者ID:tlbdk,项目名称:Sys-Splice,代码行数:52,


示例5: fio_vsyncio_commit

static int fio_vsyncio_commit(struct thread_data *td){	struct syncio_data *sd = td->io_ops->data;	struct fio_file *f;	ssize_t ret;	if (!sd->queued)		return 0;	io_u_mark_submit(td, sd->queued);	f = sd->last_file;	if (lseek(f->fd, sd->io_us[0]->offset, SEEK_SET) == -1) {		int err = -errno;		td_verror(td, errno, "lseek");		return err;	}	if (sd->last_ddir == DDIR_READ)		ret = readv(f->fd, sd->iovecs, sd->queued);	else		ret = writev(f->fd, sd->iovecs, sd->queued);	dprint(FD_IO, "vsyncio_commit: %d/n", (int) ret);	sd->events = sd->queued;	sd->queued = 0;	return fio_vsyncio_end(td, ret);}
开发者ID:apexearth,项目名称:fio,代码行数:29,


示例6: init_iolog_read

/* * open iolog, check version, and call appropriate parser */static int init_iolog_read(struct thread_data *td){	char buffer[256], *p;	FILE *f;	int ret;	f = fopen(td->o.read_iolog_file, "r");	if (!f) {		perror("fopen read iolog");		return 1;	}	p = fgets(buffer, sizeof(buffer), f);	if (!p) {		td_verror(td, errno, "iolog read");		log_err("fio: unable to read iolog/n");		fclose(f);		return 1;	}	/*	 * version 2 of the iolog stores a specific string as the	 * first line, check for that	 */	if (!strncmp(iolog_ver2, buffer, strlen(iolog_ver2)))		ret = read_iolog2(td, f);	else {		log_err("fio: iolog version 1 is no longer supported/n");		ret = 1;	}	fclose(f);	return ret;}
开发者ID:MatiasBjorling,项目名称:lightnvm-fio,代码行数:37,


示例7: fio_syslet_queue

static int fio_syslet_queue(struct thread_data *td, struct io_u *io_u){	struct syslet_data *sd = td->io_ops->data;	union indirect_params params;	struct indirect_registers regs;	int ret;	fio_ro_check(td, io_u);	memset(&params, 0, sizeof(params));	fill_syslet_args(&params.syslet, sd->ring, (long)io_u, ret_func, sd->stack);	fio_syslet_prep(io_u, &regs);	ret = syscall(__NR_indirect, &regs, &params, sizeof(params), 0);	if (ret == (int) io_u->xfer_buflen) {		/*		 * completed sync, account. this also catches fsync().		 */		return FIO_Q_COMPLETED;	} else if (ret < 0) {		/*		 * queued for async execution		 */		if (errno == ESYSLETPENDING)			return FIO_Q_QUEUED;	}	io_u->error = errno;	td_verror(td, io_u->error, "xfer");	return FIO_Q_COMPLETED;}
开发者ID:cvoltz,项目名称:fio,代码行数:32,


示例8: put_file_log

void put_file_log(struct thread_data *td, struct fio_file *f){	int ret = put_file(td, f);	if (ret)		td_verror(td, ret, "file close");}
开发者ID:vsharma13,项目名称:fio,代码行数:7,


示例9: char_size

static int char_size(struct thread_data *td, struct fio_file *f){#ifdef FIO_HAVE_CHARDEV_SIZE	unsigned long long bytes = 0;	int r;	if (td->io_ops->open_file(td, f)) {		log_err("fio: failed opening blockdev %s for size check/n",			f->file_name);		return 1;	}	r = chardev_size(f, &bytes);	if (r) {		td_verror(td, r, "chardev_size");		goto err;	}	if (!bytes) {		log_err("%s: zero sized char device?/n", f->file_name);		goto err;	}	f->real_file_size = bytes;	td->io_ops->close_file(td, f);	return 0;err:	td->io_ops->close_file(td, f);	return 1;#else	f->real_file_size = -1ULL;	return 0;#endif}
开发者ID:cofol1986,项目名称:fio,代码行数:34,


示例10: fio_guasi_init

static int fio_guasi_init(struct thread_data *td){	int maxthr;	struct guasi_data *ld = malloc(sizeof(*ld));	GDBG_PRINT(("fio_guasi_init(): depth=%d/n", td->o.iodepth));	memset(ld, 0, sizeof(*ld));	maxthr = td->o.iodepth > GFIO_MIN_THREADS ? td->o.iodepth: GFIO_MIN_THREADS;	if (maxthr > GFIO_MAX_THREADS)		maxthr = GFIO_MAX_THREADS;	if ((ld->hctx = guasi_create(GFIO_MIN_THREADS, maxthr, 1)) == NULL) {		td_verror(td, errno, "guasi_create");		free(ld);		return 1;	}	ld->max_reqs = td->o.iodepth;	ld->reqs = malloc(ld->max_reqs * sizeof(guasi_req_t));	ld->io_us = malloc(ld->max_reqs * sizeof(struct io_u *));	memset(ld->io_us, 0, ld->max_reqs * sizeof(struct io_u *));	ld->queued_nr = 0;	ld->reqs_nr = 0;	td->io_ops->data = ld;	GDBG_PRINT(("fio_guasi_init(): depth=%d -> %p/n", td->o.iodepth, ld));	return 0;}
开发者ID:MatiasBjorling,项目名称:lightnvm-fio,代码行数:27,


示例11: fio_ioring_getevents

static int fio_ioring_getevents(struct thread_data *td, unsigned int min,				unsigned int max, const struct timespec *t){	struct ioring_data *ld = td->io_ops_data;	unsigned actual_min = td->o.iodepth_batch_complete_min == 0 ? 0 : min;	struct ioring_options *o = td->eo;	struct io_cq_ring *ring = &ld->cq_ring;	unsigned events = 0;	int r;	ld->cq_ring_off = *ring->head;	do {		r = fio_ioring_cqring_reap(td, events, max);		if (r) {			events += r;			continue;		}		if (!o->sqpoll_thread) {			r = io_uring_enter(ld, 0, actual_min,						IORING_ENTER_GETEVENTS);			if (r < 0) {				if (errno == EAGAIN)					continue;				td_verror(td, errno, "io_uring_enter");				break;			}		}	} while (events < min);	return r < 0 ? r : events;}
开发者ID:arh,项目名称:fio,代码行数:32,


示例12: fio_mtd_open_file

static int fio_mtd_open_file(struct thread_data *td, struct fio_file *f){    struct fio_mtd_data *fmd;    int ret;    ret = generic_open_file(td, f);    if (ret)        return ret;    fmd = calloc(1, sizeof(*fmd));    if (!fmd)        goto err_close;    ret = mtd_get_dev_info(desc, f->file_name, &fmd->info);    if (ret != 0) {        td_verror(td, errno, "mtd_get_dev_info");        goto err_free;    }    FILE_SET_ENG_DATA(f, fmd);    return 0;err_free:    free(fmd);err_close:    {        int fio_unused __ret;        __ret = generic_close_file(td, f);        return 1;    }}
开发者ID:rainmeng,项目名称:fio,代码行数:31,


示例13: io_u_sync_complete

/* * Complete a single io_u for the sync engines. */int io_u_sync_complete(struct thread_data *td, struct io_u *io_u,		       uint64_t *bytes){	struct io_completion_data icd;	init_icd(td, &icd, 1);	io_completed(td, io_u, &icd);	if (!(io_u->flags & IO_U_F_FREE_DEF))		put_io_u(td, io_u);	if (icd.error) {		td_verror(td, icd.error, "io_u_sync_complete");		return -1;	}	if (bytes) {		int ddir;		for (ddir = DDIR_READ; ddir < DDIR_RWDIR_CNT; ddir++)			bytes[ddir] += icd.bytes_done[ddir];	}	return 0;}
开发者ID:vsharma13,项目名称:fio,代码行数:28,


示例14: bdev_size

static int bdev_size(struct thread_data *td, struct fio_file *f){	unsigned long long bytes = 0;	int r;	if (td->io_ops->open_file(td, f)) {		log_err("fio: failed opening blockdev %s for size check/n",			f->file_name);		return 1;	}	r = blockdev_size(f, &bytes);	if (r) {		td_verror(td, r, "blockdev_size");		goto err;	}	if (!bytes) {		log_err("%s: zero sized block device?/n", f->file_name);		goto err;	}	f->real_file_size = bytes;	td->io_ops->close_file(td, f);	return 0;err:	td->io_ops->close_file(td, f);	return 1;}
开发者ID:cofol1986,项目名称:fio,代码行数:29,


示例15: ipo_special

static int ipo_special(struct thread_data *td, struct io_piece *ipo){	struct fio_file *f;	int ret;	/*	 * Not a special ipo	 */	if (ipo->ddir != DDIR_INVAL)		return 0;	f = td->files[ipo->fileno];	switch (ipo->file_action) {	case FIO_LOG_OPEN_FILE:		ret = td_io_open_file(td, f);		if (!ret)			break;		td_verror(td, ret, "iolog open file");		return -1;	case FIO_LOG_CLOSE_FILE:		td_io_close_file(td, f);		break;	case FIO_LOG_UNLINK_FILE:		td_io_unlink_file(td, f);		break;	default:		log_err("fio: bad file action %d/n", ipo->file_action);		break;	}	return 1;}
开发者ID:MatiasBjorling,项目名称:lightnvm-fio,代码行数:33,


示例16: lat_fatal

static void lat_fatal(struct thread_data *td, struct io_completion_data *icd,		      unsigned long tusec, unsigned long max_usec){	if (!td->error)		log_err("fio: latency of %lu usec exceeds specified max (%lu usec)/n", tusec, max_usec);	td_verror(td, ETIMEDOUT, "max latency exceeded");	icd->error = ETIMEDOUT;}
开发者ID:vsharma13,项目名称:fio,代码行数:8,


示例17: fio_ioring_commit

static int fio_ioring_commit(struct thread_data *td){	struct ioring_data *ld = td->io_ops_data;	struct ioring_options *o = td->eo;	int ret;	if (!ld->queued)		return 0;	/*	 * Kernel side does submission. just need to check if the ring is	 * flagged as needing a kick, if so, call io_uring_enter(). This	 * only happens if we've been idle too long.	 */	if (o->sqpoll_thread) {		struct io_sq_ring *ring = &ld->sq_ring;		read_barrier();		if (*ring->flags & IORING_SQ_NEED_WAKEUP)			io_uring_enter(ld, ld->queued, 0,					IORING_ENTER_SQ_WAKEUP);		ld->queued = 0;		return 0;	}	do {		unsigned start = *ld->sq_ring.head;		long nr = ld->queued;		ret = io_uring_enter(ld, nr, 0, IORING_ENTER_GETEVENTS);		if (ret > 0) {			fio_ioring_queued(td, start, ret);			io_u_mark_submit(td, ret);			ld->queued -= ret;			ret = 0;		} else if (!ret) {			io_u_mark_submit(td, ret);			continue;		} else {			if (errno == EAGAIN) {				ret = fio_ioring_cqring_reap(td, 0, ld->queued);				if (ret)					continue;				/* Shouldn't happen */				usleep(1);				continue;			}			td_verror(td, errno, "io_uring_enter submit");			break;		}	} while (ld->queued);	return ret;}
开发者ID:arh,项目名称:fio,代码行数:55,


示例18: fio_mmap_file

static int fio_mmap_file(struct thread_data *td, struct fio_file *f,			 size_t length, off_t off){	struct fio_mmap_data *fmd = FILE_ENG_DATA(f);	int flags = 0;	if (td_rw(td) && !td->o.verify_only)		flags = PROT_READ | PROT_WRITE;	else if (td_write(td) && !td->o.verify_only) {		flags = PROT_WRITE;		if (td->o.verify != VERIFY_NONE)			flags |= PROT_READ;	} else		flags = PROT_READ;	fmd->mmap_ptr = mmap(NULL, length, flags, MAP_SHARED, f->fd, off);	if (fmd->mmap_ptr == MAP_FAILED) {		fmd->mmap_ptr = NULL;		td_verror(td, errno, "mmap");		goto err;	}	if (!fio_madvise_file(td, f, length))		goto err;	if (posix_madvise(fmd->mmap_ptr, length, POSIX_MADV_DONTNEED) < 0) {		td_verror(td, errno, "madvise");		goto err;	}#ifdef FIO_MADV_FREE	if (f->filetype == FIO_TYPE_BLOCK)		(void) posix_madvise(fmd->mmap_ptr, fmd->mmap_sz, FIO_MADV_FREE);#endiferr:	if (td->error && fmd->mmap_ptr)		munmap(fmd->mmap_ptr, length);	return td->error;}
开发者ID:arh,项目名称:fio,代码行数:42,


示例19: fio_mmapio_queue

static enum fio_q_status fio_mmapio_queue(struct thread_data *td,					  struct io_u *io_u){	struct fio_file *f = io_u->file;	struct fio_mmap_data *fmd = FILE_ENG_DATA(f);	fio_ro_check(td, io_u);	if (io_u->ddir == DDIR_READ)		memcpy(io_u->xfer_buf, io_u->mmap_data, io_u->xfer_buflen);	else if (io_u->ddir == DDIR_WRITE)		memcpy(io_u->mmap_data, io_u->xfer_buf, io_u->xfer_buflen);	else if (ddir_sync(io_u->ddir)) {		if (msync(fmd->mmap_ptr, fmd->mmap_sz, MS_SYNC)) {			io_u->error = errno;			td_verror(td, io_u->error, "msync");		}	} else if (io_u->ddir == DDIR_TRIM) {		int ret = do_io_u_trim(td, io_u);		if (!ret)			td_verror(td, io_u->error, "trim");	}	/*	 * not really direct, but should drop the pages from the cache	 */	if (td->o.odirect && ddir_rw(io_u->ddir)) {		if (msync(io_u->mmap_data, io_u->xfer_buflen, MS_SYNC) < 0) {			io_u->error = errno;			td_verror(td, io_u->error, "msync");		}		if (posix_madvise(io_u->mmap_data, io_u->xfer_buflen, POSIX_MADV_DONTNEED) < 0) {			io_u->error = errno;			td_verror(td, io_u->error, "madvise");		}	}	return FIO_Q_COMPLETED;}
开发者ID:arh,项目名称:fio,代码行数:41,


示例20: fio_mtd_is_bad

static int fio_mtd_is_bad(struct thread_data *td,                          struct fio_mtd_data *fmd,                          struct io_u *io_u, int eb){    int ret = mtd_is_bad(&fmd->info, io_u->file->fd, eb);    if (ret == -1) {        io_u->error = errno;        td_verror(td, errno, "mtd_is_bad");    } else if (ret == 1)        io_u->error = EIO;	/* Silent failure--don't flood stderr */    return ret;}
开发者ID:rainmeng,项目名称:fio,代码行数:12,


示例21: file_size

static int file_size(struct thread_data *td, struct fio_file *f){	struct stat st;	if (stat(f->file_name, &st) == -1) {		td_verror(td, errno, "fstat");		return 1;	}	f->real_file_size = st.st_size;	return 0;}
开发者ID:cofol1986,项目名称:fio,代码行数:12,


示例22: fio_mmapio_queue

static int fio_mmapio_queue(struct thread_data *td, struct io_u *io_u){	struct fio_file *f = io_u->file;	unsigned long long real_off = io_u->offset - f->file_offset;	fio_ro_check(td, io_u);	if (io_u->ddir == DDIR_READ)		memcpy(io_u->xfer_buf, f->mmap + real_off, io_u->xfer_buflen);	else if (io_u->ddir == DDIR_WRITE)		memcpy(f->mmap + real_off, io_u->xfer_buf, io_u->xfer_buflen);	else if (io_u->ddir == DDIR_SYNC) {		size_t len = (f->io_size + page_size - 1) & ~page_mask;		if (msync(f->mmap, len, MS_SYNC)) {			io_u->error = errno;			td_verror(td, io_u->error, "msync");		}	}	/*	 * not really direct, but should drop the pages from the cache	 */	if (td->o.odirect && io_u->ddir != DDIR_SYNC) {		size_t len = (io_u->xfer_buflen + page_size - 1) & ~page_mask;		unsigned long long off = real_off & ~page_mask;		if (msync(f->mmap + off, len, MS_SYNC) < 0) {			io_u->error = errno;			td_verror(td, io_u->error, "msync");		}		if (madvise(f->mmap + off, len,  MADV_DONTNEED) < 0) {			io_u->error = errno;			td_verror(td, io_u->error, "madvise");		}	}	return FIO_Q_COMPLETED;}
开发者ID:tlbdk,项目名称:Sys-Splice,代码行数:39,


示例23: fio_mtd_get_file_size

int fio_mtd_get_file_size(struct thread_data *td, struct fio_file *f){    struct mtd_dev_info info;    int ret = mtd_get_dev_info(desc, f->file_name, &info);    if (ret != 0) {        td_verror(td, errno, "mtd_get_dev_info");        return errno;    }    f->real_file_size = info.size;    return 0;}
开发者ID:rainmeng,项目名称:fio,代码行数:13,


示例24: fio_madvise_file

static bool fio_madvise_file(struct thread_data *td, struct fio_file *f,			     size_t length){	struct fio_mmap_data *fmd = FILE_ENG_DATA(f);	if (!td->o.fadvise_hint)		return true;	if (!td_random(td)) {		if (posix_madvise(fmd->mmap_ptr, length, POSIX_MADV_SEQUENTIAL) < 0) {			td_verror(td, errno, "madvise");			return false;		}	} else {		if (posix_madvise(fmd->mmap_ptr, length, POSIX_MADV_RANDOM) < 0) {			td_verror(td, errno, "madvise");			return false;		}	}	return true;}
开发者ID:arh,项目名称:fio,代码行数:23,


示例25: fio_syncio_prep

static int fio_syncio_prep(struct thread_data *td, struct io_u *io_u){    struct fio_file *f = io_u->file;    if (ddir_sync(io_u->ddir))        return 0;    if (lseek(f->fd, io_u->offset, SEEK_SET) == -1) {        td_verror(td, errno, "lseek");        return 1;    }    return 0;}
开发者ID:martin21,项目名称:fio,代码行数:14,


示例26: fio_mtd_maybe_mark_bad

static int fio_mtd_maybe_mark_bad(struct thread_data *td,                                  struct fio_mtd_data *fmd,                                  struct io_u *io_u, int eb){    int ret;    if (errno == EIO) {        ret = mtd_mark_bad(&fmd->info, io_u->file->fd, eb);        if (ret != 0) {            io_u->error = errno;            td_verror(td, errno, "mtd_mark_bad");            return -1;        }    }    return 0;}
开发者ID:rainmeng,项目名称:fio,代码行数:15,


示例27: fio_io_end

static int fio_io_end(struct thread_data *td, struct io_u *io_u, int ret){    if (ret != (int) io_u->xfer_buflen) {        if (ret >= 0) {            io_u->resid = io_u->xfer_buflen - ret;            io_u->error = 0;            return FIO_Q_COMPLETED;        } else            io_u->error = errno;    }    if (io_u->error)        td_verror(td, io_u->error, "xfer");    return FIO_Q_COMPLETED;}
开发者ID:martin21,项目名称:fio,代码行数:16,


示例28: fio_solarisaio_queue

static int fio_solarisaio_queue(struct thread_data fio_unused *td,			      struct io_u *io_u){	struct solarisaio_data *sd = td->io_ops->data;	struct fio_file *f = io_u->file;	off_t off;	int ret;	fio_ro_check(td, io_u);	if (io_u->ddir == DDIR_SYNC) {		if (sd->nr)			return FIO_Q_BUSY;		if (fsync(f->fd) < 0)			io_u->error = errno;		return FIO_Q_COMPLETED;	}	if (io_u->ddir == DDIR_DATASYNC) {		if (sd->nr)			return FIO_Q_BUSY;		if (fdatasync(f->fd) < 0)			io_u->error = errno;		return FIO_Q_COMPLETED;	}	if (sd->nr == sd->max_depth)		return FIO_Q_BUSY;	off = io_u->offset;	if (io_u->ddir == DDIR_READ)		ret = aioread(f->fd, io_u->xfer_buf, io_u->xfer_buflen, off,					SEEK_SET, &io_u->resultp);	else		ret = aiowrite(f->fd, io_u->xfer_buf, io_u->xfer_buflen, off,					SEEK_SET, &io_u->resultp);	if (ret) {		io_u->error = errno;		td_verror(td, io_u->error, "xfer");		return FIO_Q_COMPLETED;	}	sd->nr++;	return FIO_Q_QUEUED;}
开发者ID:cvoltz,项目名称:fio,代码行数:47,


示例29: fio_gf_prep

static int fio_gf_prep(struct thread_data *td, struct io_u *io_u){	struct fio_file *f = io_u->file;	struct gf_data *g = td->io_ops_data;	dprint(FD_FILE, "fio prep/n");	if (!ddir_rw(io_u->ddir))		return 0;	if (LAST_POS(f) != -1ULL && LAST_POS(f) == io_u->offset)		return 0;	if (glfs_lseek(g->fd, io_u->offset, SEEK_SET) < 0) {		td_verror(td, errno, "lseek");		return 1;	}	return 0;}
开发者ID:YukiKita,项目名称:fio,代码行数:20,


示例30: fio_ime_get_file_size

static int fio_ime_get_file_size(struct thread_data *td, struct fio_file *f){	struct stat buf;	int ret;	char *ime_filename;	dprint(FD_FILE, "get file size %s/n", f->file_name);	ime_filename = fio_set_ime_filename(f->file_name);	if (ime_filename == NULL)		return 1;	ret = ime_native_stat(ime_filename, &buf);	if (ret == -1) {		td_verror(td, errno, "fstat");		return 1;	}	f->real_file_size = buf.st_size;	return 0;}
开发者ID:arh,项目名称:fio,代码行数:20,



注:本文中的td_verror函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ tda18271_write_regs函数代码示例
C++ tcsetpgrp函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。