⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dm-io.h

📁 linux 内核源代码
💻 H
字号:
/* * Copyright (C) 2003 Sistina Software * * This file is released under the GPL. */#ifndef _DM_IO_H#define _DM_IO_H#include "dm.h"struct io_region {	struct block_device *bdev;	sector_t sector;	sector_t count;		/* If this is zero the region is ignored. */};struct page_list {	struct page_list *next;	struct page *page;};typedef void (*io_notify_fn)(unsigned long error, void *context);enum dm_io_mem_type {	DM_IO_PAGE_LIST,/* Page list */	DM_IO_BVEC,	/* Bio vector */	DM_IO_VMA,	/* Virtual memory area */	DM_IO_KMEM,	/* Kernel memory */};struct dm_io_memory {	enum dm_io_mem_type type;	union {		struct page_list *pl;		struct bio_vec *bvec;		void *vma;		void *addr;	} ptr;	unsigned offset;};struct dm_io_notify {	io_notify_fn fn;	/* Callback for asynchronous requests */	void *context;		/* Passed to callback */};/* * IO request structure */struct dm_io_client;struct dm_io_request {	int bi_rw;			/* READ|WRITE - not READA */	struct dm_io_memory mem;	/* Memory to use for io */	struct dm_io_notify notify;	/* Synchronous if notify.fn is NULL */	struct dm_io_client *client;	/* Client memory handler */};/* * For async io calls, users can alternatively use the dm_io() function below * and dm_io_client_create() to create private mempools for the client. * * Create/destroy may block. */struct dm_io_client *dm_io_client_create(unsigned num_pages);int dm_io_client_resize(unsigned num_pages, struct dm_io_client *client);void dm_io_client_destroy(struct dm_io_client *client);/* * IO interface using private per-client pools. * Each bit in the optional 'sync_error_bits' bitset indicates whether an * error occurred doing io to the corresponding region. */int dm_io(struct dm_io_request *io_req, unsigned num_regions,	  struct io_region *region, unsigned long *sync_error_bits);#endif

⌨️ 快捷键说明

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