Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\partitions\efi.c Create Date:2022-07-28 17:31:43
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:mpare_gpts() - Search disk for valid GPT headers and PTEs*@pgpt: primary GPT header*@agpt: alternate GPT header*@lastlba: last LBA number* Description: Returns nothing. Sanity checks pgpt and agpt fields* and prints warnings on discrepancies.

Proto:static void compare_gpts(gpt_header *pgpt, gpt_header *agpt, u64 lastlba)

Type:void

Parameter:

TypeParameterName
gpt_header *pgpt
gpt_header *agpt
u64lastlba
485  error_found = 0
486  If Not pgpt || Not agpt Then Return
488  If le64_to_cpu(my_lba) != le64_to_cpu(alternate_lba) Then
489  pr_warn("GPT:Primary header LBA != Alt. header alternate_lba\n")
490  pr_warn("GPT:%lld != %lld\n", (unsignedlonglong)le64_to_cpu(my_lba), (unsignedlonglong)le64_to_cpu(alternate_lba))
493  error_found++
495  If le64_to_cpu(alternate_lba) != le64_to_cpu(my_lba) Then
496  pr_warn("GPT:Primary header alternate_lba != Alt. header my_lba\n")
497  pr_warn("GPT:%lld != %lld\n", (unsignedlonglong)le64_to_cpu(alternate_lba), (unsignedlonglong)le64_to_cpu(my_lba))
500  error_found++
502  If le64_to_cpu(first_usable_lba) != le64_to_cpu(first_usable_lba) Then
504  pr_warn("GPT:first_usable_lbas don't match.\n")
505  pr_warn("GPT:%lld != %lld\n", (unsignedlonglong)le64_to_cpu(first_usable_lba), (unsignedlonglong)le64_to_cpu(first_usable_lba))
508  error_found++
510  If le64_to_cpu(last_usable_lba) != le64_to_cpu(last_usable_lba) Then
512  pr_warn("GPT:last_usable_lbas don't match.\n")
513  pr_warn("GPT:%lld != %lld\n", (unsignedlonglong)le64_to_cpu(last_usable_lba), (unsignedlonglong)le64_to_cpu(last_usable_lba))
516  error_found++
518  If efi_guidcmp(disk_guid, disk_guid) Then
519  pr_warn("GPT:disk_guids don't match.\n")
520  error_found++
522  If le32_to_cpu(num_partition_entries) != le32_to_cpu(num_partition_entries) Then
524  pr_warn("GPT:num_partition_entries don't match: 0x%x != 0x%x\n", le32_to_cpu(num_partition_entries), le32_to_cpu(num_partition_entries))
528  error_found++
530  If le32_to_cpu(sizeof_partition_entry) != le32_to_cpu(sizeof_partition_entry) Then
532  pr_warn("GPT:sizeof_partition_entry values don't match: 0x%x != 0x%x\n", le32_to_cpu(sizeof_partition_entry), le32_to_cpu(sizeof_partition_entry))
536  error_found++
538  If le32_to_cpu(partition_entry_array_crc32) != le32_to_cpu(partition_entry_array_crc32) Then
540  pr_warn("GPT:partition_entry_array_crc32 values don't match: 0x%x != 0x%x\n", le32_to_cpu(partition_entry_array_crc32), le32_to_cpu(partition_entry_array_crc32))
544  error_found++
546  If le64_to_cpu(alternate_lba) != lastlba Then
547  pr_warn("GPT:Primary header thinks Alt. header is not at the end of the disk.\n")
548  pr_warn("GPT:%lld != %lld\n", (unsignedlonglong)le64_to_cpu(alternate_lba), (unsignedlonglong)lastlba)
551  error_found++
554  If le64_to_cpu(my_lba) != lastlba Then
555  pr_warn("GPT:Alternate GPT header not at the end of the disk.\n")
556  pr_warn("GPT:%lld != %lld\n", (unsignedlonglong)le64_to_cpu(my_lba), (unsignedlonglong)lastlba)
559  error_found++
562  If error_found Then pr_warn("GPT: Use GNU Parted to correct GPT errors.\n")
564  Return
Caller
NameDescribe
find_valid_gptd_valid_gpt() - Search disk for valid GPT headers and PTEs*@state: disk parsed partitions*@gpt: GPT header ptr, filled on return.*@ptes: PTEs ptr, filled on return.* Description: Returns 1 if valid, 0 on error.