mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
hw/arm/smmu: Introduce smmu_configs_inv_sid_range() helper
Use a similar terminology smmu_hash_remove_by_sid_range() as the one being used for other hash table matching functions since smmuv3_invalidate_ste() name is not self explanatory, and introduce a helper that invokes the g_hash_table_foreach_remove. No functional change intended. Signed-off-by: JianChunfu <jansef.jian@hj-micro.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Message-id: 20250228031438.3916-1-jansef.jian@hj-micro.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
84e5ce68c0
commit
8881b691d2
5 changed files with 31 additions and 23 deletions
|
@ -225,6 +225,27 @@ static gboolean smmu_hash_remove_by_vmid_ipa(gpointer key, gpointer value,
|
|||
((entry->iova & ~info->mask) == info->iova);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
smmu_hash_remove_by_sid_range(gpointer key, gpointer value, gpointer user_data)
|
||||
{
|
||||
SMMUDevice *sdev = (SMMUDevice *)key;
|
||||
uint32_t sid = smmu_get_sid(sdev);
|
||||
SMMUSIDRange *sid_range = (SMMUSIDRange *)user_data;
|
||||
|
||||
if (sid < sid_range->start || sid > sid_range->end) {
|
||||
return false;
|
||||
}
|
||||
trace_smmu_config_cache_inv(sid);
|
||||
return true;
|
||||
}
|
||||
|
||||
void smmu_configs_inv_sid_range(SMMUState *s, SMMUSIDRange sid_range)
|
||||
{
|
||||
trace_smmu_configs_inv_sid_range(sid_range.start, sid_range.end);
|
||||
g_hash_table_foreach_remove(s->configs, smmu_hash_remove_by_sid_range,
|
||||
&sid_range);
|
||||
}
|
||||
|
||||
void smmu_iotlb_inv_iova(SMMUState *s, int asid, int vmid, dma_addr_t iova,
|
||||
uint8_t tg, uint64_t num_pages, uint8_t ttl)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue