Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/drivers/md/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 1 kB image not shown  

Quelle  dm-zero.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2003 Jana Saout <jana@saout.de>
 *
 * This file is released under the GPL.
 */


#include <linux/device-mapper.h>

#include <linux/module.h>
#include <linux/init.h>
#include <linux/bio.h>

#define DM_MSG_PREFIX "zero"

/*
 * Construct a dummy mapping that only returns zeros
 */

static int zero_ctr(struct dm_target *ti, unsigned int argc, char **argv)
{
 if (argc != 0) {
  ti->error = "No arguments required";
  return -EINVAL;
 }

 /*
 * Silently drop discards, avoiding -EOPNOTSUPP.
 */

 ti->num_discard_bios = 1;
 ti->discards_supported = true;

 return 0;
}

/*
 * Return zeros only on reads
 */

static int zero_map(struct dm_target *ti, struct bio *bio)
{
 switch (bio_op(bio)) {
 case REQ_OP_READ:
  if (bio->bi_opf & REQ_RAHEAD) {
   /* readahead of null bytes only wastes buffer cache */
   return DM_MAPIO_KILL;
  }
  zero_fill_bio(bio);
  break;
 case REQ_OP_WRITE:
 case REQ_OP_DISCARD:
  /* writes get silently dropped */
  break;
 default:
  return DM_MAPIO_KILL;
 }

 bio_endio(bio);

 /* accepted bio, don't make new request */
 return DM_MAPIO_SUBMITTED;
}

static void zero_io_hints(struct dm_target *ti, struct queue_limits *limits)
{
 limits->max_hw_discard_sectors = UINT_MAX;
 limits->discard_granularity = 512;
}

static struct target_type zero_target = {
 .name   = "zero",
 .version = {1, 2, 0},
 .features = DM_TARGET_NOWAIT,
 .module = THIS_MODULE,
 .ctr    = zero_ctr,
 .map    = zero_map,
 .io_hints = zero_io_hints,
};
module_dm(zero);

MODULE_AUTHOR("Jana Saout ");
MODULE_DESCRIPTION(DM_NAME " dummy target returning zeros");
MODULE_LICENSE("GPL");

Messung V0.5
C=91 H=100 G=95

¤ Dauer der Verarbeitung: 0.19 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.