/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (C) 2003 Sistina Software * Copyright (C) 2004 - 2008 Red Hat, Inc. All rights reserved. * * Device-Mapper low-level I/O. * * This file is released under the GPL.
*/
enum dm_io_mem_type {
DM_IO_PAGE_LIST,/* Page list */
DM_IO_BIO, /* Bio vector */
DM_IO_VMA, /* Virtual memory area */
DM_IO_KMEM, /* Kernel memory */
};
struct dm_io_memory { enum dm_io_mem_type type;
unsignedint offset;
union { struct page_list *pl; struct bio *bio; void *vma; void *addr;
} ptr;
};
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 {
blk_opf_t bi_opf; /* Request type and flags */ 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(void); 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, unsignedint num_regions, struct dm_io_region *region, unsignedintlong *sync_error_bits, unsignedshort ioprio);
#endif/* __KERNEL__ */ #endif/* _LINUX_DM_IO_H */
Messung V0.5
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.