arch/powerpc/kernel/cputable.c
Source file repositories/reference/linux-study-clean/arch/powerpc/kernel/cputable.c
File Facts
- System
- Linux kernel
- Corpus path
arch/powerpc/kernel/cputable.c- Extension
.c- Size
- 4380 bytes
- Lines
- 183
- Domain
- Architecture Layer
- Bucket
- arch/powerpc
- Inferred role
- Architecture Layer: exported/initcall integration point
- Status
- integration 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.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/string.hlinux/sched.hlinux/threads.hlinux/init.hlinux/export.hlinux/jump_label.hlinux/of.hasm/cputable.hasm/mce.hasm/mmu.hasm/setup.hasm/cpu_setup.hcpu_specs.h
Detected Declarations
function set_cur_cpu_specfunction setup_cpu_specfunction identify_cpufunction identify_cpu_namefunction cpu_feature_keys_initfunction mmu_feature_keys_initexport cur_cpu_specexport cpu_feature_keysexport mmu_feature_keys
Annotated Snippet
if ((pvr & s->pvr_mask) == s->pvr_value) {
t->cpu_name = s->cpu_name;
return;
}
}
}
#ifdef CONFIG_JUMP_LABEL_FEATURE_CHECKS
struct static_key_true cpu_feature_keys[NUM_CPU_FTR_KEYS] = {
[0 ... NUM_CPU_FTR_KEYS - 1] = STATIC_KEY_TRUE_INIT
};
EXPORT_SYMBOL_GPL(cpu_feature_keys);
void __init cpu_feature_keys_init(void)
{
int i;
for (i = 0; i < NUM_CPU_FTR_KEYS; i++) {
unsigned long f = 1ul << i;
if (!(cur_cpu_spec->cpu_features & f))
static_branch_disable(&cpu_feature_keys[i]);
}
}
struct static_key_true mmu_feature_keys[NUM_MMU_FTR_KEYS] = {
[0 ... NUM_MMU_FTR_KEYS - 1] = STATIC_KEY_TRUE_INIT
};
EXPORT_SYMBOL(mmu_feature_keys);
void __init mmu_feature_keys_init(void)
{
int i;
for (i = 0; i < NUM_MMU_FTR_KEYS; i++) {
unsigned long f = 1ul << i;
if (!(cur_cpu_spec->mmu_features & f))
static_branch_disable(&mmu_feature_keys[i]);
}
}
#endif
Annotation
- Immediate include surface: `linux/string.h`, `linux/sched.h`, `linux/threads.h`, `linux/init.h`, `linux/export.h`, `linux/jump_label.h`, `linux/of.h`, `asm/cputable.h`.
- Detected declarations: `function set_cur_cpu_spec`, `function setup_cpu_spec`, `function identify_cpu`, `function identify_cpu_name`, `function cpu_feature_keys_init`, `function mmu_feature_keys_init`, `export cur_cpu_spec`, `export cpu_feature_keys`, `export mmu_feature_keys`.
- Atlas domain: Architecture Layer / arch/powerpc.
- Implementation status: integration 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.