函数逻辑报告 |
Source Code:arch\x86\kernel\fpu\signal.c |
Create Date:2022-07-27 08:50:15 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:__fpu__restore_sig
函数原型:static int __fpu__restore_sig(void __user *buf, void __user *buf_fx, int size)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| void __user * | buf | |
| void __user * | buf_fx | |
| int | size |
| 274 | struct user_i387_ia32_struct * envp = NULL |
| 276 | ia32_fxstate等于buf不等于buf_fx |
| 280 | xfeatures等于0 |
| 281 | fx_only等于0 |
| 282 | ret等于0 |
| 287 | 如果非buf则 |
| 295 | 如果非static_cpu_has(Onboard FPU )则返回:fpregs_soft_set(当前进程, NULL, 0, sizeof(structuser_i387_ia32_struct), NULL, buf)不等于0 |
| 300 | 如果use_xsave()则 |
| 333 | 如果ia32_fxstate则 |
| 338 | 否则 |
| 361 | init_bv等于xfeatures_mask按位与xfeatures的反 |
| 363 | 如果using_compacted_format()则 |
| 364 | ret等于copy_user_to_xstate( & xsave, buf_fx) |
| 365 | 否则 |
| 366 | ret等于__copy_from_user( & xsave, buf_fx, state_size) |
| 381 | 否则如果use_fxsr()则 |
| 382 | ret等于__copy_from_user( & fxsave, buf_fx, state_size) |
| 383 | 如果ret则 |
| 391 | 如果use_xsave()则 |
| 396 | ret等于copy_kernel_to_fxregs_err( & fxsave) |
| 397 | 否则 |
| 398 | ret等于__copy_from_user( & fsave, buf_fx, state_size) |
| 403 | ret等于copy_kernel_to_fregs_err( & fsave) |
| 405 | 如果非ret则fpregs_mark_activate() |
| 407 | 否则These generally need preemption protection to work,* do try to avoid using these on their own: |
| 409 | fpregs_unlock() |
| 411 | err_out : |
| 412 | 如果ret则Clear the FPU state back to init state.* Called by sys_execve(), by the signal handler code and by various* error paths. |
| 414 | 返回:ret |
| 名称 | 描述 |
|---|---|
| fpu__restore_sig | Restore FPU state from a sigframe: |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |