函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Convert from a ptrace or sigreturn standard-format user-space buffer to* kernel XSAVES format and copy to the target thread. This is called from* xstateregs_set(), as well as potentially from the sigreturn() and* rt_sigreturn() system calls.

函数原型:int copy_user_to_xstate(struct xregs_state *xsave, const void __user *ubuf)

返回类型:int

参数:

类型参数名称
struct xregs_state *xsave
const void __user *ubuf
1197  offset等于offsetof(structxregs_state, header)
1198  size等于hdr的长度
1200  如果__copy_from_user( & hdr, ubuf + offset, size)则返回:负EFAULT
1203  如果Validate an xstate header supplied by userspace (ptrace or sigreturn) 则返回:负EINVAL
1206 i小于XFEATURE_MAX循环
1207  mask等于1左移i
1209  如果xfeatures按位与mask
1212  offset等于xstate_offsets[i]
1213  size等于xstate_sizes[i]
1215  如果__copy_from_user(dst, ubuf + offset, size)则返回:负EFAULT
1220  如果Weird legacy quirk: SSE and YMM states store information in the* MXCSR and MXCSR_FLAGS fields of the FP area. That means if the FP* area is marked as unused in the xfeatures header, we need to copy* MXCSR and MXCSR_FLAGS if either SSE or YMM are in use.
1221  offset等于offsetof(structfxregs_state, mxcsr)
1222  size等于Copy both mxcsr & mxcsr_flags with a single u64 memcpy:
1223  如果__copy_from_user( & MXCSR Register State , ubuf + offset, size)则返回:负EFAULT
1231  xfeatures与等于Supervisor features
1236  xfeatures或等于xfeatures
1238  返回:0
调用者
名称描述
__fpu__restore_sig
xstateregs_set