arch/arm/kernel/armksyms.c
Source file repositories/reference/linux-study-clean/arch/arm/kernel/armksyms.c
File Facts
- System
- Linux kernel
- Corpus path
arch/arm/kernel/armksyms.c- Extension
.c- Size
- 4208 bytes
- Lines
- 178
- Domain
- Architecture Layer
- Bucket
- arch/arm
- 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.
- Touches user memory; correctness depends on fault-safe copying and privilege boundary handling.
Dependency Surface
linux/export.hlinux/sched.hlinux/string.hlinux/delay.hlinux/in6.hlinux/syscalls.hlinux/uaccess.hlinux/io.hlinux/arm-smccc.hasm/checksum.hasm/ftrace.h
Detected Declarations
export arm_delay_opsexport csum_partialexport csum_partial_copy_from_userexport csum_partial_copy_nocheckexport __csum_ipv6_magicexport __raw_readsbexport __raw_readswexport __raw_readslexport __raw_writesbexport __raw_writeswexport __raw_writeslexport strchrexport strrchrexport memsetexport __memset32export __memset64export memcpyexport memmoveexport memchrexport mmiosetexport mmiocpyexport copy_pageexport arm_copy_from_userexport arm_copy_to_userexport arm_clear_userexport __get_user_1export __get_user_2export __get_user_4export __get_user_8export __get_user_64t_1export __get_user_64t_2export __get_user_64t_4export __get_user_32t_8export __put_user_1export __put_user_2export __put_user_4export __put_user_8export __ashldi3export __ashrdi3export __divsi3export __lshrdi3export __modsi3export __muldi3export __ucmpdi2export __udivsi3export __umodsi3export __do_div64export __bswapsi2
Annotated Snippet
// SPDX-License-Identifier: GPL-2.0-only
/*
* linux/arch/arm/kernel/armksyms.c
*
* Copyright (C) 2000 Russell King
*/
#include <linux/export.h>
#include <linux/sched.h>
#include <linux/string.h>
#include <linux/delay.h>
#include <linux/in6.h>
#include <linux/syscalls.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <linux/arm-smccc.h>
#include <asm/checksum.h>
#include <asm/ftrace.h>
/*
* libgcc functions - functions that are used internally by the
* compiler... (prototypes are not correct though, but that
* doesn't really matter since they're not versioned).
*/
extern void __ashldi3(void);
extern void __ashrdi3(void);
extern void __divsi3(void);
extern void __lshrdi3(void);
extern void __modsi3(void);
extern void __muldi3(void);
extern void __ucmpdi2(void);
extern void __udivsi3(void);
extern void __umodsi3(void);
extern void __do_div64(void);
extern void __bswapsi2(void);
extern void __bswapdi2(void);
extern void __aeabi_idiv(void);
extern void __aeabi_idivmod(void);
extern void __aeabi_lasr(void);
extern void __aeabi_llsl(void);
extern void __aeabi_llsr(void);
extern void __aeabi_lmul(void);
extern void __aeabi_uidiv(void);
extern void __aeabi_uidivmod(void);
extern void __aeabi_ulcmp(void);
extern void fpundefinstr(void);
void mmioset(void *, unsigned int, size_t);
void mmiocpy(void *, const void *, size_t);
/* platform dependent support */
EXPORT_SYMBOL(arm_delay_ops);
/* networking */
EXPORT_SYMBOL(csum_partial);
EXPORT_SYMBOL(csum_partial_copy_from_user);
EXPORT_SYMBOL(csum_partial_copy_nocheck);
EXPORT_SYMBOL(__csum_ipv6_magic);
/* io */
#ifndef __raw_readsb
EXPORT_SYMBOL(__raw_readsb);
#endif
#ifndef __raw_readsw
EXPORT_SYMBOL(__raw_readsw);
#endif
#ifndef __raw_readsl
EXPORT_SYMBOL(__raw_readsl);
#endif
#ifndef __raw_writesb
EXPORT_SYMBOL(__raw_writesb);
#endif
#ifndef __raw_writesw
EXPORT_SYMBOL(__raw_writesw);
#endif
#ifndef __raw_writesl
EXPORT_SYMBOL(__raw_writesl);
#endif
/* string / mem functions */
EXPORT_SYMBOL(strchr);
EXPORT_SYMBOL(strrchr);
EXPORT_SYMBOL(memset);
EXPORT_SYMBOL(__memset32);
EXPORT_SYMBOL(__memset64);
EXPORT_SYMBOL(memcpy);
EXPORT_SYMBOL(memmove);
EXPORT_SYMBOL(memchr);
Annotation
- Immediate include surface: `linux/export.h`, `linux/sched.h`, `linux/string.h`, `linux/delay.h`, `linux/in6.h`, `linux/syscalls.h`, `linux/uaccess.h`, `linux/io.h`.
- Detected declarations: `export arm_delay_ops`, `export csum_partial`, `export csum_partial_copy_from_user`, `export csum_partial_copy_nocheck`, `export __csum_ipv6_magic`, `export __raw_readsb`, `export __raw_readsw`, `export __raw_readsl`, `export __raw_writesb`, `export __raw_writesw`.
- Atlas domain: Architecture Layer / arch/arm.
- Implementation status: integration implementation candidate.
- This snippet crosses the user/kernel memory boundary; validate fault handling and access checks before translating the pattern.
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.