arch/s390/kernel/process.c
Source file repositories/reference/linux-study-clean/arch/s390/kernel/process.c
File Facts
- System
- Linux kernel
- Corpus path
arch/s390/kernel/process.c- Extension
.c- Size
- 6507 bytes
- Lines
- 246
- Domain
- Architecture Layer
- Bucket
- arch/s390
- 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
linux/elf-randomize.hlinux/compiler.hlinux/cpu.hlinux/sched.hlinux/sched/debug.hlinux/sched/task.hlinux/sched/task_stack.hlinux/kernel.hlinux/mm.hlinux/elfcore.hlinux/smp.hlinux/slab.hlinux/interrupt.hlinux/tick.hlinux/personality.hlinux/syscalls.hlinux/kprobes.hlinux/random.hlinux/init_task.hlinux/entry-common.hlinux/io.hasm/guarded_storage.hasm/access-regs.hasm/switch_to.hasm/cpu_mf.hasm/processor.hasm/ptrace.hasm/vtimer.hasm/exec.hasm/fpu.hasm/irq.hasm/nmi.h
Detected Declarations
struct fake_framefunction __ret_from_forkfunction flush_threadfunction arch_release_task_structfunction arch_dup_task_structfunction copy_threadfunction execve_tailfunction __get_wchanfunction unwind_for_each_framefunction arch_align_stackfunction brk_rndfunction arch_randomize_brk
Annotated Snippet
if (state.stack_info.type != STACK_TYPE_TASK) {
ip = 0;
break;
}
ip = unwind_get_return_address(&state);
if (!ip)
break;
if (!in_sched_functions(ip))
break;
}
put_task_stack(p);
return ip;
}
unsigned long arch_align_stack(unsigned long sp)
{
if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
sp -= get_random_u32_below(PAGE_SIZE);
return sp & ~0xf;
}
static inline unsigned long brk_rnd(void)
{
return (get_random_u16() & BRK_RND_MASK) << PAGE_SHIFT;
}
unsigned long arch_randomize_brk(struct mm_struct *mm)
{
unsigned long ret;
ret = PAGE_ALIGN(mm->brk + brk_rnd());
return (ret > mm->brk) ? ret : mm->brk;
}
Annotation
- Immediate include surface: `linux/elf-randomize.h`, `linux/compiler.h`, `linux/cpu.h`, `linux/sched.h`, `linux/sched/debug.h`, `linux/sched/task.h`, `linux/sched/task_stack.h`, `linux/kernel.h`.
- Detected declarations: `struct fake_frame`, `function __ret_from_fork`, `function flush_thread`, `function arch_release_task_struct`, `function arch_dup_task_struct`, `function copy_thread`, `function execve_tail`, `function __get_wchan`, `function unwind_for_each_frame`, `function arch_align_stack`.
- Atlas domain: Architecture Layer / arch/s390.
- 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.