函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\signal.c Create Date:2022-07-27 08:29:58
Last Modify:2022-05-22 06:23:02 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:__setup_frame

函数原型:static int __setup_frame(int sig, struct ksignal *ksig, sigset_t *set, struct pt_regs *regs)

返回类型:int

参数:

类型参数名称
intsig
struct ksignal *ksig
sigset_t *set
struct pt_regs *regs
315  __userframe
316  __userrestorer
317  err等于0
318  void __user * fpstate = NULL
320  frame等于get_sigframe( & ka, regs, frame的长度, & fpstate)
322  如果非access_ok - Checks if a user space pointer is valid*@addr: User space pointer to start of block to check*@size: Size of block to check* Context: User context only. This function may sleep if pagefaults are* enabled.(frame, frame的长度)则返回:负EFAULT
325  如果__put_user - Write a simple value into user space, with less checking(sig, & sig)则返回:负EFAULT
328  如果setup_sigcontext( & sc, fpstate, regs, 信号[0])则返回:负EFAULT
331  如果_NSIG_WORDS大于1则
332  如果__copy_to_user( & extramask, & 信号[1], extramask的长度)则返回:负EFAULT
337  如果vdsorestorer等于vdsosym___kernel_sigreturn
340  否则restorer等于retcode
342  如果sa_flags按位与SA_RESTORERrestorer等于sa_restorer
346  err或等于__put_user - Write a simple value into user space, with less checking(restorer, & pretcode)
355  err或等于__put_user - Write a simple value into user space, with less checking( * ((u64 * ) & retcode), (u64 * )retcode)
357  如果err则返回:负EFAULT
361  sp等于frame
362  ip等于sa_handler
363  ax等于sig
364  dx等于0
365  cx等于0
367  ds等于__USER_DS
368  es等于__USER_DS
369  ss等于__USER_DS
370  cs等于__USER_CS
372  返回:0