include/asm-generic/fprobe.h
Source file repositories/reference/linux-study-clean/include/asm-generic/fprobe.h
File Facts
- System
- Linux kernel
- Corpus path
include/asm-generic/fprobe.h- Extension
.h- Size
- 1432 bytes
- Lines
- 47
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/bits.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#ifndef __ASM_GENERIC_FPROBE_H__
#define __ASM_GENERIC_FPROBE_H__
#include <linux/bits.h>
#ifdef CONFIG_64BIT
/*
* Encoding the size and the address of fprobe into one 64bit entry.
* The 32bit architectures should use 2 entries to store those info.
*/
#define ARCH_DEFINE_ENCODE_FPROBE_HEADER
#define FPROBE_HEADER_MSB_SIZE_SHIFT (BITS_PER_LONG - FPROBE_DATA_SIZE_BITS)
#define FPROBE_HEADER_MSB_MASK \
GENMASK(FPROBE_HEADER_MSB_SIZE_SHIFT - 1, 0)
/*
* By default, this expects the MSBs in the address of kprobe is 0xf.
* If any arch needs another fixed pattern (e.g. s390 is zero filled),
* override this.
*/
#define FPROBE_HEADER_MSB_PATTERN \
GENMASK(BITS_PER_LONG - 1, FPROBE_HEADER_MSB_SIZE_SHIFT)
#define arch_fprobe_header_encodable(fp) \
(((unsigned long)(fp) & ~FPROBE_HEADER_MSB_MASK) == \
FPROBE_HEADER_MSB_PATTERN)
#define arch_encode_fprobe_header(fp, size) \
(((unsigned long)(fp) & FPROBE_HEADER_MSB_MASK) | \
((unsigned long)(size) << FPROBE_HEADER_MSB_SIZE_SHIFT))
#define arch_decode_fprobe_header_size(val) \
((unsigned long)(val) >> FPROBE_HEADER_MSB_SIZE_SHIFT)
#define arch_decode_fprobe_header_fp(val) \
((struct fprobe *)(((unsigned long)(val) & FPROBE_HEADER_MSB_MASK) | \
FPROBE_HEADER_MSB_PATTERN))
#endif /* CONFIG_64BIT */
#endif /* __ASM_GENERIC_FPROBE_H__ */
Annotation
- Immediate include surface: `linux/bits.h`.
- Atlas domain: Repository Root And Misc / include.
- 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.