Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  dm-io.h   Sprache: C

 
/* 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.
 */


#ifndef _LINUX_DM_IO_H
#define _LINUX_DM_IO_H

#ifdef __KERNEL__

#include <linux/types.h>
#include <linux/blk_types.h>

struct dm_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 int long error, void *context);

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;

 unsigned int 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, unsigned int num_regions,
   struct dm_io_region *region, unsigned int long *sync_error_bits,
   unsigned short ioprio);

#endif /* __KERNEL__ */
#endif /* _LINUX_DM_IO_H */

Messung V0.5
C=96 H=97 G=96

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge