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

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

File Facts

System
Linux kernel
Corpus path
drivers/md/dm-vdo/indexer/index.h
Extension
.h
Size
2390 bytes
Lines
84
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 index_zone {
	struct uds_index *index;
	struct open_chapter_zone *open_chapter;
	struct open_chapter_zone *writing_chapter;
	u64 oldest_virtual_chapter;
	u64 newest_virtual_chapter;
	unsigned int id;
};

struct uds_index {
	bool has_saved_open_chapter;
	bool need_to_save;
	struct index_load_context *load_context;
	struct index_layout *layout;
	struct volume_index *volume_index;
	struct volume *volume;
	unsigned int zone_count;
	struct index_zone **zones;

	u64 oldest_virtual_chapter;
	u64 newest_virtual_chapter;

	u64 last_save;
	u64 prev_save;
	struct chapter_writer *chapter_writer;

	index_callback_fn callback;
	struct uds_request_queue *triage_queue;
	struct uds_request_queue *zone_queues[] __counted_by(zone_count);
};

enum request_stage {
	STAGE_TRIAGE,
	STAGE_INDEX,
	STAGE_MESSAGE,
};

int __must_check uds_make_index(struct uds_configuration *config,
				enum uds_open_index_type open_type,
				struct index_load_context *load_context,
				index_callback_fn callback, struct uds_index **new_index);

int __must_check uds_save_index(struct uds_index *index);

void uds_free_index(struct uds_index *index);

int __must_check uds_replace_index_storage(struct uds_index *index,
					   struct block_device *bdev);

void uds_get_index_stats(struct uds_index *index, struct uds_index_stats *counters);

void uds_enqueue_request(struct uds_request *request, enum request_stage stage);

void uds_wait_for_idle_index(struct uds_index *index);

#endif /* UDS_INDEX_H */

Annotation

Implementation Notes