| 函数逻辑报告 | 
| 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 插件可实现:逻辑报告 代码生成和批量转换代码 |