drivers/md/dm-vdo/murmurhash3.c
Source file repositories/reference/linux-study-clean/drivers/md/dm-vdo/murmurhash3.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/md/dm-vdo/murmurhash3.c- Extension
.c- Size
- 2656 bytes
- Lines
- 156
- 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.
Dependency Surface
murmurhash3.hlinux/unaligned.h
Detected Declarations
function Wielefunction fmix64function murmurhash3_128
Annotated Snippet
switch (len & 15) {
case 15:
k2 ^= ((u64)tail[14]) << 48;
fallthrough;
case 14:
k2 ^= ((u64)tail[13]) << 40;
fallthrough;
case 13:
k2 ^= ((u64)tail[12]) << 32;
fallthrough;
case 12:
k2 ^= ((u64)tail[11]) << 24;
fallthrough;
case 11:
k2 ^= ((u64)tail[10]) << 16;
fallthrough;
case 10:
k2 ^= ((u64)tail[9]) << 8;
fallthrough;
case 9:
k2 ^= ((u64)tail[8]) << 0;
k2 *= c2;
k2 = ROTL64(k2, 33);
k2 *= c1;
h2 ^= k2;
fallthrough;
case 8:
k1 ^= ((u64)tail[7]) << 56;
fallthrough;
case 7:
k1 ^= ((u64)tail[6]) << 48;
fallthrough;
case 6:
k1 ^= ((u64)tail[5]) << 40;
fallthrough;
case 5:
k1 ^= ((u64)tail[4]) << 32;
fallthrough;
case 4:
k1 ^= ((u64)tail[3]) << 24;
fallthrough;
case 3:
k1 ^= ((u64)tail[2]) << 16;
fallthrough;
case 2:
k1 ^= ((u64)tail[1]) << 8;
fallthrough;
case 1:
k1 ^= ((u64)tail[0]) << 0;
k1 *= c1;
k1 = ROTL64(k1, 31);
k1 *= c2;
h1 ^= k1;
break;
default:
break;
}
}
/* finalization */
h1 ^= len;
h2 ^= len;
h1 += h2;
h2 += h1;
h1 = fmix64(h1);
h2 = fmix64(h2);
h1 += h2;
h2 += h1;
put_unaligned_le64(h1, &hash_out[0]);
put_unaligned_le64(h2, &hash_out[1]);
}
Annotation
- Immediate include surface: `murmurhash3.h`, `linux/unaligned.h`.
- Detected declarations: `function Wiele`, `function fmix64`, `function murmurhash3_128`.
- 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.