forked from Mirrors/opensbi
lib: sbi: separate the swap operation of domain region
Swapping domain region is a common operation when sorting domain region, so separate it as a function to make code clean. Signed-off-by: Inochi Amaoto <inochiama@outlook.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:

committed by
Anup Patel

parent
98bc25f181
commit
5b2f55d65a
@@ -256,10 +256,20 @@ static const struct sbi_domain_memregion *find_next_subset_region(
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void swap_region(struct sbi_domain_memregion* reg1,
|
||||||
|
struct sbi_domain_memregion* reg2)
|
||||||
|
{
|
||||||
|
struct sbi_domain_memregion treg;
|
||||||
|
|
||||||
|
sbi_memcpy(&treg, reg1, sizeof(treg));
|
||||||
|
sbi_memcpy(reg1, reg2, sizeof(treg));
|
||||||
|
sbi_memcpy(reg2, &treg, sizeof(treg));
|
||||||
|
}
|
||||||
|
|
||||||
static int sanitize_domain(struct sbi_domain *dom)
|
static int sanitize_domain(struct sbi_domain *dom)
|
||||||
{
|
{
|
||||||
u32 i, j, count;
|
u32 i, j, count;
|
||||||
struct sbi_domain_memregion treg, *reg, *reg1;
|
struct sbi_domain_memregion *reg, *reg1;
|
||||||
|
|
||||||
/* Check possible HARTs */
|
/* Check possible HARTs */
|
||||||
if (!dom->possible_harts) {
|
if (!dom->possible_harts) {
|
||||||
@@ -323,9 +333,7 @@ static int sanitize_domain(struct sbi_domain *dom)
|
|||||||
if (!is_region_before(reg1, reg))
|
if (!is_region_before(reg1, reg))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
sbi_memcpy(&treg, reg1, sizeof(treg));
|
swap_region(reg, reg1);
|
||||||
sbi_memcpy(reg1, reg, sizeof(treg));
|
|
||||||
sbi_memcpy(reg, &treg, sizeof(treg));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user