Function report |
Source Code:block\partitions\ldm.c |
Create Date:2022-07-28 17:27:16 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:ldm_parse_privhead - Read the LDM Database PRIVHEAD structure*@data: Raw database PRIVHEAD structure loaded from the device*@ph: In-memory privhead structure in which to return parsed information* This parses the LDM database PRIVHEAD structure supplied
Proto:static bool ldm_parse_privhead(const u8 *data, struct privhead *ph)
Type:bool
Parameter:
| Type | Parameter | Name |
|---|---|---|
| const u8 * | data | |
| struct privhead * | ph |
| 69 | bool is_vista = false |
| 72 | If PRIVHEAD != get_unaligned_be64(data) Then |
| 73 | ldm_error("Cannot find PRIVHEAD structure. LDM database is corrupt. Aborting.") |
| 75 | Return false |
| 77 | Offsets and sizes are in sectors. = get_unaligned_be16(data + 0x000C) |
| 78 | ver_minor = get_unaligned_be16(data + 0x000E) |
| 79 | logical_disk_start = get_unaligned_be64(data + 0x011B) |
| 80 | logical_disk_size = get_unaligned_be64(data + 0x0123) |
| 81 | config_start = get_unaligned_be64(data + 0x012B) |
| 82 | config_size = get_unaligned_be64(data + 0x0133) |
| 84 | If Offsets and sizes are in sectors. == 2 && ver_minor == 12 Then is_vista = true |
| 86 | If Not is_vista && ( Offsets and sizes are in sectors. != 2 || ver_minor != 11 ) Then |
| 87 | ldm_error("Expected PRIVHEAD version 2.11 or 2.12, got %d.%d. Aborting.", Offsets and sizes are in sectors. , ver_minor) |
| 89 | Return false |
| 93 | If config_size != Size in sectors (= 1MiB). Then |
| 95 | ldm_info("Database is normally %u bytes, it claims to be %llu bytes.", Size in sectors (= 1MiB). , (unsignedlonglong)config_size) |
| 99 | If logical_disk_size == 0 || logical_disk_start + logical_disk_size > config_start Then |
| 101 | ldm_error("PRIVHEAD disk size doesn't match real disk size") |
| 102 | Return false |
| 104 | If uuid_parse(data + 0x0030, & disk_id) Then |
| 105 | ldm_error("PRIVHEAD contains an invalid GUID.") |
| 106 | Return false |
| 109 | Return true |
| Name | Describe |
|---|---|
| ldm_validate_privheads | ldm_validate_privheads - Compare the primary privhead with its backups*@state: Partition check state including device holding the LDM Database*@ph1: Memory struct to fill with ph contents* Read and compare all three privheads from disk |
| 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 |