diff options
Diffstat (limited to 'src/arch/vmpa.c')
-rw-r--r-- | src/arch/vmpa.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/arch/vmpa.c b/src/arch/vmpa.c index b306f00..46d1a04 100644 --- a/src/arch/vmpa.c +++ b/src/arch/vmpa.c @@ -685,7 +685,12 @@ bool mrange_contains_addr(const mrange_t *range, const vmpa2t *addr) if (ret <= -1) { diff = compute_vmpa_diff(&range->addr, addr); - result = (diff < range->length); + + if (diff != VMPA_NO_PHYSICAL) + result = (diff < range->length); + else + result = false; + } else if (ret == 0) @@ -701,6 +706,27 @@ bool mrange_contains_addr(const mrange_t *range, const vmpa2t *addr) /****************************************************************************** * * +* Paramètres : range = zone mémoire à consulter. * +* addr = localisation mémoire à déterminer. * +* * +* Description : Calcule la position extérieure final d'une couverture. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void compute_mrange_end_addr(const mrange_t *range, vmpa2t *addr) +{ + copy_vmpa(addr, &range->addr); + advance_vmpa(addr, range->length); + +} + + +/****************************************************************************** +* * * Paramètres : rane = emplacement virtuel ou physique à traiter. * * msize = taille de cette adresse, réelle ou désirée. * * start = indique si le début ou la fin est à imprimer. * |