gpt: add helpers for deriving data partition from verity or verity sig designator
let's add the inverse of the existing partition_verity_of() and partition_verity_sig_of()
This commit is contained in:
@@ -58,6 +58,33 @@ PartitionDesignator partition_verity_sig_of(PartitionDesignator p) {
|
||||
}
|
||||
}
|
||||
|
||||
PartitionDesignator partition_verity_to_data(PartitionDesignator d) {
|
||||
switch (d) {
|
||||
|
||||
case PARTITION_ROOT_VERITY:
|
||||
return PARTITION_ROOT;
|
||||
|
||||
case PARTITION_USR_VERITY:
|
||||
return PARTITION_USR;
|
||||
|
||||
default:
|
||||
return _PARTITION_DESIGNATOR_INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
PartitionDesignator partition_verity_sig_to_data(PartitionDesignator d) {
|
||||
switch (d) {
|
||||
|
||||
case PARTITION_ROOT_VERITY_SIG:
|
||||
return PARTITION_ROOT;
|
||||
|
||||
case PARTITION_USR_VERITY_SIG:
|
||||
return PARTITION_USR;
|
||||
|
||||
default:
|
||||
return _PARTITION_DESIGNATOR_INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
static const char *const partition_designator_table[_PARTITION_DESIGNATOR_MAX] = {
|
||||
[PARTITION_ROOT] = "root",
|
||||
|
||||
@@ -32,6 +32,8 @@ bool partition_designator_is_versioned(PartitionDesignator d);
|
||||
|
||||
PartitionDesignator partition_verity_of(PartitionDesignator p);
|
||||
PartitionDesignator partition_verity_sig_of(PartitionDesignator p);
|
||||
PartitionDesignator partition_verity_to_data(PartitionDesignator d);
|
||||
PartitionDesignator partition_verity_sig_to_data(PartitionDesignator d);
|
||||
|
||||
const char* partition_designator_to_string(PartitionDesignator d) _const_;
|
||||
PartitionDesignator partition_designator_from_string(const char *name) _pure_;
|
||||
|
||||
@@ -46,4 +46,22 @@ TEST(gpt_types_against_architectures) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST(verity_mappings) {
|
||||
for (PartitionDesignator p = 0; p < _PARTITION_DESIGNATOR_MAX; p++) {
|
||||
PartitionDesignator q;
|
||||
|
||||
q = partition_verity_of(p);
|
||||
assert_se(q < 0 || partition_verity_to_data(q) == p);
|
||||
|
||||
q = partition_verity_sig_of(p);
|
||||
assert_se(q < 0 || partition_verity_sig_to_data(q) == p);
|
||||
|
||||
q = partition_verity_to_data(p);
|
||||
assert_se(q < 0 || partition_verity_of(q) == p);
|
||||
|
||||
q = partition_verity_sig_to_data(p);
|
||||
assert_se(q < 0 || partition_verity_sig_of(q) == p);
|
||||
}
|
||||
}
|
||||
|
||||
DEFINE_TEST_MAIN(LOG_INFO);
|
||||
|
||||
Reference in New Issue
Block a user