函数逻辑报告 |
Source Code:kernel\power\user.c |
Create Date:2022-07-27 11:03:57 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:snapshot_ioctl
函数原型:static long snapshot_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
返回类型:long
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct file * | filp | |
| unsigned int | cmd | |
| unsigned long | arg |
| 204 | error等于0 |
| 209 | 如果_IOC_TYPE(cmd)不等于SNAPSHOT_IOC_MAGIC则返回:负ENOTTY |
| 211 | 如果_IOC_NR(cmd)大于SNAPSHOT_IOC_MAXNR则返回:负ENOTTY |
| 216 | 如果非mutex_trylock - try to acquire the mutex, without waiting*@lock: the mutex to be acquired* Try to acquire the mutex atomically则返回:负EBUSY |
| 219 | lock_device_hotplug() |
| 224 | 当:cmd恒等于SNAPSHOT_FREEZE |
| 228 | ksys_sync_helper() |
| 235 | 如果error则thaw_processes() |
| 237 | 否则frozen = true |
| 240 | 退出 |
| 242 | 当:cmd恒等于SNAPSHOT_UNFREEZE |
| 252 | 当:cmd恒等于SNAPSHOT_CREATE_IMAGE |
| 257 | pm_restore_gfp_mask() |
| 259 | 如果非error则 |
| 260 | error等于put_user - Write a simple value into user space(in_suspend, (int__user * )arg) |
| 261 | ready等于非freezer_test_done且非error |
| 262 | freezer_test_done = false |
| 264 | 退出 |
| 266 | 当:cmd恒等于SNAPSHOT_ATOMIC_RESTORE |
| 276 | 当:cmd恒等于SNAPSHOT_FREE |
| 278 | memset( & handle, 0, sizeof(structsnapshot_handle)) |
| 279 | ready = false |
| 288 | thaw_kernel_threads() |
| 289 | 退出 |
| 291 | 当:cmd恒等于SNAPSHOT_PREF_IMAGE_SIZE |
| 293 | 退出 |
| 295 | 当:cmd恒等于SNAPSHOT_GET_IMAGE_SIZE |
| 296 | 如果非ready则 |
| 300 | size等于snapshot_get_image_size() |
| 301 | size左移等于PAGE_SHIFT determines the page size 位 |
| 303 | 退出 |
| 305 | 当:cmd恒等于SNAPSHOT_AVAIL_SWAP_SIZE |
| 311 | 当:cmd恒等于SNAPSHOT_ALLOC_SWAP_PAGE |
| 312 | 如果swap小于0或swap大于等于MAX_SWAPFILES则 |
| 316 | offset等于alloc_swapdev_block - allocate a swap page and register that it has* been allocated, so that it can be freed in case of an error. |
| 317 | 如果offset则 |
| 320 | 否则 |
| 323 | 退出 |
| 325 | 当:cmd恒等于SNAPSHOT_FREE_SWAP_PAGES |
| 326 | 如果swap小于0或swap大于等于MAX_SWAPFILES则 |
| 331 | 退出 |
| 333 | 当:cmd恒等于SNAPSHOT_S2RAM |
| 334 | 如果非frozen则 |
| 342 | error等于suspend_devices_and_enter - Suspend devices and enter system sleep state.*@state: System sleep state to enter. |
| 343 | ready = false |
| 344 | 退出 |
| 346 | 当:cmd恒等于SNAPSHOT_PLATFORM_SUPPORT |
| 347 | platform_support等于非非arg |
| 348 | 退出 |
| 350 | 当:cmd恒等于SNAPSHOT_POWER_OFF |
| 351 | 如果platform_support则error等于hibernation_platform_enter - Power off the system using the platform driver. |
| 353 | 退出 |
| 355 | 当:cmd恒等于SNAPSHOT_SET_SWAP_AREA |
| 356 | 如果swsusp_swap_in_use()则 |
| 358 | 否则 |
| 362 | error等于copy_from_user( & swap_area, (void__user * )arg, sizeof(structresume_swap_area)) |
| 364 | 如果error则 |
| 373 | swdev等于new_decode_dev(dev) |
| 374 | 如果swdev则 |
| 379 | 否则 |
| 384 | 退出 |
| 386 | 默认 |
| 391 | unlock_device_hotplug() |
| 394 | 返回:error |
| 名称 | 描述 |
|---|---|
| snapshot_compat_ioctl |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |