drivers/md/dm-vdo/indexer/open-chapter.h
Source file repositories/reference/linux-study-clean/drivers/md/dm-vdo/indexer/open-chapter.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/md/dm-vdo/indexer/open-chapter.h- Extension
.h- Size
- 2634 bytes
- Lines
- 80
- 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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
chapter-index.hgeometry.hindex.hvolume.h
Detected Declarations
struct open_chapter_zone_slotstruct open_chapter_zone
Annotated Snippet
struct open_chapter_zone_slot {
/* If non-zero, the record number addressed by this hash slot */
unsigned int record_number : OPEN_CHAPTER_RECORD_NUMBER_BITS;
/* If true, the record at the index of this hash slot was deleted */
bool deleted : 1;
} __packed;
struct open_chapter_zone {
/* The maximum number of records that can be stored */
unsigned int capacity;
/* The number of records stored */
unsigned int size;
/* The number of deleted records */
unsigned int deletions;
/* Array of chunk records, 1-based */
struct uds_volume_record *records;
/* The number of slots in the hash table */
unsigned int slot_count;
/* The hash table slots, referencing virtual record numbers */
struct open_chapter_zone_slot slots[] __counted_by(slot_count);
};
int __must_check uds_make_open_chapter(const struct index_geometry *geometry,
unsigned int zone_count,
struct open_chapter_zone **open_chapter_ptr);
void uds_reset_open_chapter(struct open_chapter_zone *open_chapter);
void uds_search_open_chapter(struct open_chapter_zone *open_chapter,
const struct uds_record_name *name,
struct uds_record_data *metadata, bool *found);
int __must_check uds_put_open_chapter(struct open_chapter_zone *open_chapter,
const struct uds_record_name *name,
const struct uds_record_data *metadata);
void uds_remove_from_open_chapter(struct open_chapter_zone *open_chapter,
const struct uds_record_name *name);
void uds_free_open_chapter(struct open_chapter_zone *open_chapter);
int __must_check uds_close_open_chapter(struct open_chapter_zone **chapter_zones,
unsigned int zone_count, struct volume *volume,
struct open_chapter_index *chapter_index,
struct uds_volume_record *collated_records,
u64 virtual_chapter_number);
int __must_check uds_save_open_chapter(struct uds_index *index,
struct buffered_writer *writer);
int __must_check uds_load_open_chapter(struct uds_index *index,
struct buffered_reader *reader);
u64 uds_compute_saved_open_chapter_size(struct index_geometry *geometry);
#endif /* UDS_OPEN_CHAPTER_H */
Annotation
- Immediate include surface: `chapter-index.h`, `geometry.h`, `index.h`, `volume.h`.
- Detected declarations: `struct open_chapter_zone_slot`, `struct open_chapter_zone`.
- Atlas domain: Driver Families / drivers/md.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.