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