函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\lib\memcpy_32.c Create Date:2022-07-27 08:23:58
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:memcpy

函数原型:__visible void *memcpy(void *to, const void *from, size_t n)

返回类型:void

参数:

类型参数名称
void *to
const void *from
size_tn
13  返回:__memcpy(to, from, n)
调用者
名称描述
strlcpy长字符串复制
idt_setup_debugidt_trapsdt_setup_debugidt_traps - Initialize the debug idt table with debug traps
dup_mmdup_mm() - duplicates an existing mm structure*@tsk: the task_struct with which the new mm will be associated.*@oldmm: the mm to duplicate.* Allocates a new mm structure and duplicates the provided @oldmm structure* content into it.
parse_header
mempool_resizemempool_resize - resize an existing memory pool*@pool: pointer to the memory pool which was allocated via* mempool_create().*@new_min_nr: the new minimum number of elements guaranteed to be* allocated for this pool.* This function shrinks/grows the pool
sanitize_boot_params启动参数检查
ldt_dup_contextCalled on fork from arch_dup_mmap(). Just copy the current LDT state,* the new task is not running, so nothing can be installed.
write_ldt
setup_arch平台相关启动
__jump_label_set_jump_code
boot_params_data_read
setup_data_data_read
e820__update_table
e820__memory_setup_extendedBecause of the small fixed size of struct boot_params, only the first* 128 E820 memory entries are passed to the kernel via boot_params.e820_table,* the remaining (if any) entries are passed via the SETUP_E820_EXT node of
e820__memory_setupCalls e820__memory_setup_default() in essence to pick up the firmware/bootloader* E820 map - with an optional platform quirk available for virtual platforms* to override this method of boot environment processing:
add_nopsUse this to add nops to a buffer, then text_poke the whole buffer.
apply_alternativesReplace instructions with better alternatives for this CPU type. This runs* before SMP is initialized to avoid SMP problems with self modifying code.* This implies that asymmetric systems where APs have less capabilities than
text_poke_earlyxt_poke_early - Update instructions on a live kernel at boot time*@addr: address to modify*@opcode: source of the copy*@len: length to copy* When you use this code to patch more than one byte of an instruction
__text_poke
text_poke_loc_init
arch_dup_task_structhis gets called so that we can store lazy state into memory and copy the* current task into the new thread.
user_regset_copyoutThese are helpers for writing regset get/set functions in arch code
user_regset_copyin
fpu__copy
xstateregs_get
convert_from_fxsrFXSR floating point environment conversions.
convert_to_fxsr
fpstate_sanitize_xstateWhen executing XSAVEOPT (or other optimized XSAVE instructions), if* a processor implementation detects that an FPU state component is still* (or is again) in its initialized state, it may clear the corresponding* bit in the header
__copy_xstate_to_kernelThis is similar to user_regset_copyout(), but will not add offset to* the source data pointer or increment pos, count, kbuf, and ubuf.
copy_kernel_to_xstateConvert from a ptrace standard-format kernel buffer to kernel XSAVES format* and copy to the target thread. This is called from xstateregs_set().
microcode_checkThe microcode loader calls this upon late microcode load to recheck features,* only when microcode has been updated. Caller holds microcode_mutex and CPU* hotplug lock.
mce_gen_pool_add
apei_write_mce
apei_read_mce
generic_load_microcode
apply_microcode_early_amdEarly load occurs before we can vmalloc()
install_equiv_cpu_table
load_microcode_amd
smp_check_mpcRead/parse the MPC
update_mp_table
setup_APIC_timerSetup the local APIC timer for this CPU. Copy the initialized values* of the boot CPU and register the clock event in the framework.
mp_save_irqWill be called in mpparse/acpi/sfi codes for saving IRQ info
machine_kexecDo not allocate memory (or fail in any way) in machine_kexec().* We are past the point of no return, committed to rebooting now.
add_e820_entry
setup_cmdline
setup_e820_entries
setup_boot_parameters
bzImage64_load
copy_oldmem_pagepy_oldmem_page - copy one page from "oldmem"*@pfn: page frame number to be copied*@buf: target memory address for the copy; this can be in kernel address* space or user address space (see @userbuf)*@csize: number of bytes to copy*@offset: offset in bytes
__recover_probed_insn
__recover_optprobed_insn
arch_prepare_optimized_kprobeCopy replacing target instructions* Target instructions MUST be relocatable (checked inside)* This is called when new aggr(opt)probe is allocated or reused.
arch_optimize_kprobesReplace breakpoints (int3) with relative jumps.* Caller must call with locking kprobe_mutex and text_mutex.
arch_unoptimize_kprobeReplace a relative jump with a breakpoint (int3).
dbg_set_reg
dbg_get_reg
save_v86_state
do_sys_vm86
paravirt_patch_insns
jailhouse_init_platform
emulate_umip_insnmulate_umip_insn() - Emulate UMIP instructions and return dummy values*@insn: Instruction structure with operands*@umip_inst: A constant indicating the instruction to emulate*@data: Buffer into which the dummy result is stored*@data_size: Size of the
fixup_umip_exceptionxup_umip_exception() - Fixup a general protection fault caused by UMIP*@regs: Registers as saved when entering the #GP handler* The instructions SGDT, SIDT, STR, SMSW and SLDT cause a general protection* fault if executed with CPL > 0 (i
do_collect
proc_ipc_dointvec
bio_copy_data_iter
hash_key_type_and_descHash a key type and description.
de_threadThis function makes sure the current process has its own signal table,* so that flush_signal_handlers can later reset the handlers without* disturbing other processes. (Other processes might share the signal* table via the CLONE_SIGHAND option to clone().)