summaryrefslogtreecommitdiff
path: root/src/arch/vmpa.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-05-14 19:40:07 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-05-14 19:40:07 (GMT)
commit0286b53bad21abf91cbe17c4772ca9cde6a89cbc (patch)
tree3bec9dc7e118c00ce9c748576b01606a71880ad7 /src/arch/vmpa.c
parent267b1ae8608ed4bf52de743798e8647c903ee1b4 (diff)
Created an instruction database for Chrysalide.
Diffstat (limited to 'src/arch/vmpa.c')
-rw-r--r--src/arch/vmpa.c58
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. *