diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2015-01-30 23:37:39 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2015-01-30 23:37:39 (GMT) |
commit | d246c98c515cb44c5bc4c742a674bae2e824872b (patch) | |
tree | 2ea1ec27ae5fba761ee778ba4ddb85c7752ebbf5 /src/arch/vmpa.c | |
parent | 262c95e0b088a56e9fd919edc57ad19f85e2e40e (diff) |
Bound a symbol for each loaded value for 'ldr' instructions.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@462 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
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. * |