函数逻辑报告 |
Source Code:arch\x86\kernel\signal_compat.c |
Create Date:2022-07-27 08:30:19 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:The compat_siginfo_t structure and handing code is very easy* to break in several ways. It must always be updated when new* updates are made to the main siginfo_t, and* copy_siginfo_to_user32() must be updated when the
函数原型:static inline void signal_compat_build_tests(void)
返回类型:void
参数:无
| 43 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, _sifields) != 3 * sizeof(int)) |
| 69 | The offsets of all the (unioned) si_fields are fixed* in the ABI, of course. Make sure none of them ever* move and are always at the beginning:(_kill) |
| 70 | Ensure that the size of each si_field never changes(_kill, 2 * sizeof(int)) |
| 71 | CHECK_SI_SIZE(_kill, 2 * sizeof(int)) |
| 73 | BUILD_BUG_ON - break compile if a condition is true(offsetof(siginfo_t, How these fields are to be accessed.) != 0x10) |
| 75 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, How these fields are to be accessed.) != 0xC) |
| 78 | The offsets of all the (unioned) si_fields are fixed* in the ABI, of course. Make sure none of them ever* move and are always at the beginning:(_timer) |
| 79 | Ensure that the size of each si_field never changes(_timer, 3 * sizeof(int)) |
| 80 | CHECK_SI_SIZE(_timer, 6 * sizeof(int)) |
| 86 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_overrun) != 0x10) |
| 87 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_value) != 0x14) |
| 89 | The offsets of all the (unioned) si_fields are fixed* in the ABI, of course. Make sure none of them ever* move and are always at the beginning:(_rt) |
| 90 | Ensure that the size of each si_field never changes(_rt, 3 * sizeof(int)) |
| 91 | CHECK_SI_SIZE(_rt, 4 * sizeof(int)) |
| 93 | BUILD_BUG_ON - break compile if a condition is true(offsetof(siginfo_t, How these fields are to be accessed.) != 0x10) |
| 96 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, How these fields are to be accessed.) != 0x0C) |
| 98 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_value) != 0x14) |
| 100 | The offsets of all the (unioned) si_fields are fixed* in the ABI, of course. Make sure none of them ever* move and are always at the beginning:(_sigchld) |
| 101 | Ensure that the size of each si_field never changes(_sigchld, 5 * sizeof(int)) |
| 102 | CHECK_SI_SIZE(_sigchld, 8 * sizeof(int)) |
| 104 | BUILD_BUG_ON - break compile if a condition is true(offsetof(siginfo_t, How these fields are to be accessed.) != 0x10) |
| 109 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, How these fields are to be accessed.) != 0x0C) |
| 111 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_status) != 0x14) |
| 112 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_utime) != 0x18) |
| 113 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_stime) != 0x1C) |
| 123 | The offsets of all the (unioned) si_fields are fixed* in the ABI, of course. Make sure none of them ever* move and are always at the beginning:(_sigfault) |
| 124 | Ensure that the size of each si_field never changes(_sigfault, 4 * sizeof(int)) |
| 125 | CHECK_SI_SIZE(_sigfault, 8 * sizeof(int)) |
| 128 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_addr) != 0x0C) |
| 131 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_addr_lsb) != 0x10) |
| 135 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_lower) != 0x14) |
| 136 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_upper) != 0x18) |
| 139 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_pkey) != 0x14) |
| 141 | The offsets of all the (unioned) si_fields are fixed* in the ABI, of course. Make sure none of them ever* move and are always at the beginning:(_sigpoll) |
| 142 | Ensure that the size of each si_field never changes(_sigpoll, 2 * sizeof(int)) |
| 143 | CHECK_SI_SIZE(_sigpoll, 4 * sizeof(int)) |
| 147 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_band) != 0x0C) |
| 150 | The offsets of all the (unioned) si_fields are fixed* in the ABI, of course. Make sure none of them ever* move and are always at the beginning:(_sigsys) |
| 151 | Ensure that the size of each si_field never changes(_sigsys, 3 * sizeof(int)) |
| 152 | CHECK_SI_SIZE(_sigsys, 4 * sizeof(int)) |
| 157 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_call_addr) != 0x0C) |
| 158 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_syscall) != 0x10) |
| 159 | BUILD_BUG_ON - break compile if a condition is true(offsetof(compat_siginfo_t, si_arch) != 0x14) |
| 名称 | 描述 |
|---|---|
| sigaction_compat_abi |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |