arch/powerpc/lib/restart_table.c
Source file repositories/reference/linux-study-clean/arch/powerpc/lib/restart_table.c
File Facts
- System
- Linux kernel
- Corpus path
arch/powerpc/lib/restart_table.c- Extension
.c- Size
- 1366 bytes
- Lines
- 57
- Domain
- Architecture Layer
- Bucket
- arch/powerpc
- Inferred role
- Architecture Layer: implementation source
- Status
- source implementation candidate
Why This File Exists
CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
asm/interrupt.hasm/kprobes.h
Detected Declarations
struct soft_mask_table_entrystruct restart_table_entryfunction search_kernel_soft_mask_tablefunction search_kernel_restart_table
Annotated Snippet
struct soft_mask_table_entry {
unsigned long start;
unsigned long end;
};
struct restart_table_entry {
unsigned long start;
unsigned long end;
unsigned long fixup;
};
extern struct soft_mask_table_entry __start___soft_mask_table[];
extern struct soft_mask_table_entry __stop___soft_mask_table[];
extern struct restart_table_entry __start___restart_table[];
extern struct restart_table_entry __stop___restart_table[];
/* Given an address, look for it in the soft mask table */
bool search_kernel_soft_mask_table(unsigned long addr)
{
struct soft_mask_table_entry *smte = __start___soft_mask_table;
while (smte < __stop___soft_mask_table) {
unsigned long start = smte->start;
unsigned long end = smte->end;
if (addr >= start && addr < end)
return true;
smte++;
}
return false;
}
NOKPROBE_SYMBOL(search_kernel_soft_mask_table);
/* Given an address, look for it in the kernel exception table */
unsigned long search_kernel_restart_table(unsigned long addr)
{
struct restart_table_entry *rte = __start___restart_table;
while (rte < __stop___restart_table) {
unsigned long start = rte->start;
unsigned long end = rte->end;
unsigned long fixup = rte->fixup;
if (addr >= start && addr < end)
return fixup;
rte++;
}
return 0;
}
NOKPROBE_SYMBOL(search_kernel_restart_table);
Annotation
- Immediate include surface: `asm/interrupt.h`, `asm/kprobes.h`.
- Detected declarations: `struct soft_mask_table_entry`, `struct restart_table_entry`, `function search_kernel_soft_mask_table`, `function search_kernel_restart_table`.
- Atlas domain: Architecture Layer / arch/powerpc.
- 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.