函数逻辑报告 |
Source Code:kernel\kexec_file.c |
Create Date:2022-07-27 12:05:55 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:kexec_calculate_store_digests
函数原型:static int kexec_calculate_store_digests(struct kimage *image)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct kimage * | image |
| 710 | ret等于0 |
| 717 | 如果非IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_ARCH_HAS_KEXEC_PURGATORY)则返回:0 |
| 720 | zero_buf等于__va(page_to_pfn(ZERO_PAGE(0)) << PAGE_SHIFT determines the page size ) |
| 721 | zero_buf_sz等于PAGE_SIZE |
| 723 | tfm等于crypto_alloc_shash("sha256", 0, 0) |
| 724 | 如果是错误则 |
| 731 | 如果非desc则 |
| 733 | 转到:out_free_tfm |
| 736 | sha_region_sz等于The artificial cap on the number of segments passed to kexec_load. 乘sizeof(structkexec_sha_region) |
| 737 | sha_regions等于vzalloc(sha_region_sz) |
| 738 | 如果非sha_regions则转到:out_free_desc |
| 744 | 如果ret小于0则转到:out_free_sha_regions |
| 748 | 如果非digest则 |
| 750 | 转到:out_free_sha_regions |
| 753 | 以i小于nr_segments循环 |
| 761 | 如果kbuf恒等于* Temporary, modifiable buffer for stripped purgatory used for * relocation. This memory can be freed post image load.则继续下一循环 |
| 777 | 如果bytes大于zero_buf_sz则bytes等于zero_buf_sz |
| 790 | j自加 |
| 793 | 如果非ret则 |
| 795 | 如果ret则转到:out_free_digest |
| 797 | ret等于kexec_purgatory_get_set_symbol(image, "purgatory_sha_regions", sha_regions, sha_region_sz, 0) |
| 799 | 如果ret则转到:out_free_digest |
| 802 | ret等于kexec_purgatory_get_set_symbol(image, "purgatory_sha256_digest", digest, SHA256_DIGEST_SIZE, 0) |
| 804 | 如果ret则转到:out_free_digest |
| 808 | out_free_digest : |
| 810 | out_free_sha_regions : |
| 811 | vfree(sha_regions) |
| 812 | out_free_desc : |
| 814 | out_free_tfm : |
| 816 | out : |
| 817 | 返回:ret |
| 名称 | 描述 |
|---|---|
| SYSCALL_DEFINE5 |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |