diff options
Diffstat (limited to 'src/arch/vmpa.c')
-rw-r--r-- | src/arch/vmpa.c | 58 |
1 files changed, 56 insertions, 2 deletions
diff --git a/src/arch/vmpa.c b/src/arch/vmpa.c index b29bb72..7abb5de 100644 --- a/src/arch/vmpa.c +++ b/src/arch/vmpa.c @@ -415,7 +415,7 @@ phys_t compute_vmpa_diff(const vmpa2t *a, const vmpa2t *b) * Paramètres : addr = élément à venir lire. [OUT] * * pbuf = paquet de données où venir puiser les infos. * * * -* Description : Lit la définition d'une adresse depuis un flux réseau. * +* Description : Lit la définition d'une adresse depuis un tampon. * * * * Retour : Bilan de l'opération. * * * @@ -442,7 +442,7 @@ bool unpack_vmpa(vmpa2t *addr, packed_buffer *pbuf) * Paramètres : addr = élément à venir écrire. * * pbuf = paquet de données où venir inscrire les infos. * * * -* Description : Ecrit la définition d'une adresse dans un flux réseau. * +* Description : Ecrit la définition d'une adresse dans un tampon. * * * * Retour : Bilan de l'opération. * * * @@ -1283,6 +1283,60 @@ void compute_mrange_end_addr(const mrange_t *range, vmpa2t *addr) /****************************************************************************** * * +* Paramètres : range = élément à venir lire. [OUT] * +* pbuf = paquet de données où venir puiser les infos. * +* * +* Description : Lit la définition d'une couverture depuis un tampon. * +* * +* Retour : Bilan de l'opération. * +* * +* Remarques : - * +* * +******************************************************************************/ + +bool unpack_mrange(mrange_t *range, packed_buffer *pbuf) +{ + bool result; /* Bilan à retourner */ + + result = unpack_vmpa(&range->addr, pbuf); + + if (result) + result = extract_packed_buffer(pbuf, (uint64_t *)&range->length, sizeof(uint64_t), true); + + return result; + +} + + +/****************************************************************************** +* * +* Paramètres : range = élément à venir écrire. * +* pbuf = paquet de données où venir inscrire les infos. * +* * +* Description : Ecrit la définition d'une couverture dans un tampon. * +* * +* Retour : Bilan de l'opération. * +* * +* Remarques : - * +* * +******************************************************************************/ + +bool pack_mrange(const mrange_t *range, packed_buffer *pbuf) +{ + bool result; /* Bilan à retourner */ + + result = pack_vmpa(&range->addr, pbuf); + + if (result) + result = extend_packed_buffer(pbuf, (uint64_t *)&range->length, sizeof(uint64_t), true); + + return result; + +} + + +/****************************************************************************** +* * * 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. * |