include/linux/set_memory.h
Source file repositories/reference/linux-study-clean/include/linux/set_memory.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/set_memory.h- Extension
.h- Size
- 2114 bytes
- Lines
- 88
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
asm/set_memory.h
Detected Declarations
function set_memory_rofunction set_memory_rwfunction set_memory_xfunction set_memory_nxfunction set_memory_roxfunction set_direct_map_invalid_noflushfunction set_direct_map_default_noflushfunction set_direct_map_valid_noflushfunction kernel_page_presentfunction can_set_direct_mapfunction set_mce_nospecfunction clear_mce_nospecfunction set_memory_encryptedfunction set_memory_decrypted
Annotated Snippet
static inline int __must_check set_memory_ro(unsigned long addr, int numpages) { return 0; }
static inline int __must_check set_memory_rw(unsigned long addr, int numpages) { return 0; }
static inline int __must_check set_memory_x(unsigned long addr, int numpages) { return 0; }
static inline int __must_check set_memory_nx(unsigned long addr, int numpages) { return 0; }
#endif
#ifndef set_memory_rox
static inline int set_memory_rox(unsigned long addr, int numpages)
{
int ret = set_memory_ro(addr, numpages);
if (ret)
return ret;
return set_memory_x(addr, numpages);
}
#endif
#ifndef CONFIG_ARCH_HAS_SET_DIRECT_MAP
static inline int set_direct_map_invalid_noflush(struct page *page)
{
return 0;
}
static inline int set_direct_map_default_noflush(struct page *page)
{
return 0;
}
static inline int set_direct_map_valid_noflush(struct page *page,
unsigned nr, bool valid)
{
return 0;
}
static inline bool kernel_page_present(struct page *page)
{
return true;
}
#else /* CONFIG_ARCH_HAS_SET_DIRECT_MAP */
/*
* Some architectures, e.g. ARM64 can disable direct map modifications at
* boot time. Let them overrive this query.
*/
#ifndef can_set_direct_map
static inline bool can_set_direct_map(void)
{
return true;
}
#define can_set_direct_map can_set_direct_map
#endif
#endif /* CONFIG_ARCH_HAS_SET_DIRECT_MAP */
#ifdef CONFIG_X86_64
int set_mce_nospec(unsigned long pfn);
int clear_mce_nospec(unsigned long pfn);
#else
static inline int set_mce_nospec(unsigned long pfn)
{
return 0;
}
static inline int clear_mce_nospec(unsigned long pfn)
{
return 0;
}
#endif
#ifndef CONFIG_ARCH_HAS_MEM_ENCRYPT
static inline int set_memory_encrypted(unsigned long addr, int numpages)
{
return 0;
}
static inline int set_memory_decrypted(unsigned long addr, int numpages)
{
return 0;
}
#endif /* CONFIG_ARCH_HAS_MEM_ENCRYPT */
#endif /* _LINUX_SET_MEMORY_H_ */
Annotation
- Immediate include surface: `asm/set_memory.h`.
- Detected declarations: `function set_memory_ro`, `function set_memory_rw`, `function set_memory_x`, `function set_memory_nx`, `function set_memory_rox`, `function set_direct_map_invalid_noflush`, `function set_direct_map_default_noflush`, `function set_direct_map_valid_noflush`, `function kernel_page_present`, `function can_set_direct_map`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.