drivers/md/dm-vdo/indexer/config.h

Source file repositories/reference/linux-study-clean/drivers/md/dm-vdo/indexer/config.h

File Facts

System
Linux kernel
Corpus path
drivers/md/dm-vdo/indexer/config.h
Extension
.h
Size
3564 bytes
Lines
125
Domain
Driver Families
Bucket
drivers/md
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct uds_configuration {
	/* Storage device for the index */
	struct block_device *bdev;

	/* The maximum allowable size of the index */
	size_t size;

	/* The offset where the index should start */
	off_t offset;

	/* Parameters for the volume */

	/* The volume layout */
	struct index_geometry *geometry;

	/* Index owner's nonce */
	u64 nonce;

	/* The number of threads used to process index requests */
	unsigned int zone_count;

	/* The number of threads used to read volume pages */
	unsigned int read_threads;

	/* Size of the page cache and sparse chapter index cache in chapters */
	u32 cache_chapters;

	/* Parameters for the volume index */

	/* The mean delta for the volume index */
	u32 volume_index_mean_delta;

	/* Sampling rate for sparse indexing */
	u32 sparse_sample_rate;
};

/* On-disk structure of data for a version 8.02 index. */
struct uds_configuration_8_02 {
	/* Smaller (16), Small (64) or large (256) indices */
	u32 record_pages_per_chapter;
	/* Total number of chapters per volume */
	u32 chapters_per_volume;
	/* Number of sparse chapters per volume */
	u32 sparse_chapters_per_volume;
	/* Size of the page cache, in chapters */
	u32 cache_chapters;
	/* Unused field */
	u32 unused;
	/* The volume index mean delta to use */
	u32 volume_index_mean_delta;
	/* Size of a page, used for both record pages and index pages */
	u32 bytes_per_page;
	/* Sampling rate for sparse indexing */
	u32 sparse_sample_rate;
	/* Index owner's nonce */
	u64 nonce;
	/* Virtual chapter remapped from physical chapter 0 */
	u64 remapped_virtual;
	/* New physical chapter which remapped chapter was moved to */
	u64 remapped_physical;
} __packed;

/* On-disk structure of data for a version 6.02 index. */
struct uds_configuration_6_02 {
	/* Smaller (16), Small (64) or large (256) indices */
	u32 record_pages_per_chapter;
	/* Total number of chapters per volume */
	u32 chapters_per_volume;
	/* Number of sparse chapters per volume */
	u32 sparse_chapters_per_volume;
	/* Size of the page cache, in chapters */
	u32 cache_chapters;
	/* Unused field */
	u32 unused;
	/* The volume index mean delta to use */
	u32 volume_index_mean_delta;
	/* Size of a page, used for both record pages and index pages */
	u32 bytes_per_page;
	/* Sampling rate for sparse indexing */
	u32 sparse_sample_rate;
	/* Index owner's nonce */
	u64 nonce;
} __packed;

int __must_check uds_make_configuration(const struct uds_parameters *params,
					struct uds_configuration **config_ptr);

void uds_free_configuration(struct uds_configuration *config);

int __must_check uds_validate_config_contents(struct buffered_reader *reader,

Annotation

Implementation Notes