diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2016-12-04 23:09:45 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2016-12-04 23:09:45 (GMT) |
commit | b3efd0bbc506e701ea9872f50b8b4db974f35954 (patch) | |
tree | 11926fd4d0e39321b0da171e8d926868dd618475 /src/arch | |
parent | 7d6d3acb65586ad9512a38b58c16b9a21cdf98e0 (diff) |
Read ELF notes when requested.
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/vmpa.c | 28 | ||||
-rw-r--r-- | src/arch/vmpa.h | 3 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/arch/vmpa.c b/src/arch/vmpa.c index fe159f6..8f550fe 100644 --- a/src/arch/vmpa.c +++ b/src/arch/vmpa.c @@ -281,6 +281,34 @@ void deminish_vmpa(vmpa2t *addr, phys_t qty) /****************************************************************************** * * +* Paramètres : addr = élément à modifier. * +* bytes = nombre d'octets sur lequel aligner la position. * +* * +* Description : Aligne une localisation sur un nombre d'octets donné. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void align_vmpa(vmpa2t *addr, phys_t bytes) +{ + if (bytes > 1) + { + if (addr->physical != VMPA_NO_PHYSICAL) + addr->physical = (addr->physical + bytes - 1) & ~(bytes - 1); + + if (addr->virtual != VMPA_NO_VIRTUAL) + addr->virtual = (addr->virtual + bytes - 1) & ~(bytes - 1); + + } + +} + + +/****************************************************************************** +* * * Paramètres : a = première élément à venir consulter. * * b = second élément à traiter en parallèle. * * * diff --git a/src/arch/vmpa.h b/src/arch/vmpa.h index 695e21e..1e17f17 100644 --- a/src/arch/vmpa.h +++ b/src/arch/vmpa.h @@ -113,6 +113,9 @@ void advance_vmpa(vmpa2t *, phys_t); /* Décalle une position d'une certaine quantité. */ void deminish_vmpa(vmpa2t *, phys_t); +/* Aligne une localisation sur un nombre d'octets donné. */ +void align_vmpa(vmpa2t *, phys_t); + /* Calcule au mieux la distance entre deux coordonnées. */ phys_t compute_vmpa_diff(const vmpa2t *, const vmpa2t *); |