diff options
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/vmpa.c | 42 | ||||
-rw-r--r-- | src/arch/vmpa.h | 10 |
2 files changed, 47 insertions, 5 deletions
diff --git a/src/arch/vmpa.c b/src/arch/vmpa.c index dc1804c..6db62cc 100644 --- a/src/arch/vmpa.c +++ b/src/arch/vmpa.c @@ -106,6 +106,48 @@ vmpa2t *make_vmpa(phys_t phy, virt_t virt) /****************************************************************************** * * +* Paramètres : src = position à dupliquer. * +* * +* Description : Copie une localisation dans l'adressage mémoire. * +* * +* Retour : Adressage alloué en mémoire. * +* * +* Remarques : - * +* * +******************************************************************************/ + +vmpa2t *dup_vmpa(const vmpa2t *src) +{ + vmpa2t *result; /* Structure à retourner */ + + result = make_vmpa(get_phy_addr(src), get_virt_addr(src)); + + return result; + +} + + +/****************************************************************************** +* * +* Paramètres : addr = position à traiter. * +* * +* Description : Supprime une localisation de l'espace mémoire. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void delete_vmpa(vmpa2t *addr) +{ + free(addr); + +} + + +/****************************************************************************** +* * * Paramètres : dest = structure de destination pour la copie. * * src = structure de source pour la copie. * * * diff --git a/src/arch/vmpa.h b/src/arch/vmpa.h index 48f61a8..871e282 100644 --- a/src/arch/vmpa.h +++ b/src/arch/vmpa.h @@ -26,7 +26,6 @@ #include <limits.h> -#include <malloc.h> #include <stdbool.h> #include <stdint.h> @@ -82,7 +81,11 @@ void init_vmpa(vmpa2t *, phys_t, virt_t); /* Crée une localisation dans l'adressage mémoire. */ vmpa2t *make_vmpa(phys_t, virt_t); -#define delete_vmpa(a) free(a) +/* Copie une localisation dans l'adressage mémoire. */ +vmpa2t *dup_vmpa(const vmpa2t *); + +/* Supprime une localisation de l'espace mémoire. */ +void delete_vmpa(vmpa2t *); /* Copie la définition d'un adressage dans un autre. */ void copy_vmpa(vmpa2t *, const vmpa2t *); @@ -109,9 +112,6 @@ int cmp_vmpa(const vmpa2t *, const vmpa2t *); #define reset_virt_addr(a) (a)->virtual = VMPA_NO_VIRTUAL -#define dup_vmpa(src) \ - make_vmpa(get_phy_addr(src), get_virt_addr(src)) - /* Décalle une position d'une certaine quantité. */ void advance_vmpa(vmpa2t *, phys_t); |