| Function report | 
| Source Code: kernel\kexec_file.c | Create Date:2022-07-28 11:04:26 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:kexec_calculate_store_digests
Proto:static int kexec_calculate_store_digests(struct kimage *image)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct kimage * | image | 
| 710 | ret = 0 | 
| 717 | If Not IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_ARCH_HAS_KEXEC_PURGATORY) Then Return 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) | 
| 730 | desc = kzalloc - allocate memory. The memory is set to zero.*@size: how many bytes of memory are required.*@flags: the type of memory to allocate (see kmalloc). | 
| 731 | If Not desc Then | 
| 733 | Go to 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 | If Not sha_regions Then Go to out_free_desc | 
| 744 | If ret < 0 Then Go to out_free_sha_regions | 
| 747 | digest = kzalloc - allocate memory. The memory is set to zero.*@size: how many bytes of memory are required.*@flags: the type of memory to allocate (see kmalloc). | 
| 748 | If Not digest Then | 
| 750 | Go to out_free_sha_regions | 
| 753 | When i < nr_segments cycle | 
| 761 | If kbuf == * Temporary, modifiable buffer for stripped purgatory used for * relocation. This memory can be freed post image load. Then Continue | 
| 766 | If ret Then Break | 
| 777 | If bytes > zero_buf_sz Then bytes = zero_buf_sz | 
| 780 | If ret Then Break | 
| 785 | If ret Then Break | 
| 790 | j++ | 
| 793 | If Not ret Then | 
| 795 | If ret Then Go to out_free_digest | 
| 797 | ret = kexec_purgatory_get_set_symbol(image, "purgatory_sha_regions", sha_regions, sha_region_sz, 0) | 
| 799 | If ret Then Go to out_free_digest | 
| 802 | ret = kexec_purgatory_get_set_symbol(image, "purgatory_sha256_digest", digest, SHA256_DIGEST_SIZE, 0) | 
| 804 | If ret Then Go to 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 | Return ret | 
| Name | Describe | 
|---|---|
| SYSCALL_DEFINE5 | 
| Source code conversion tool public plug-in interface | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |