/* OpenIDA - Outil d'analyse de fichiers binaires * archbase.c - définitions de base pour les architectures * * Copyright (C) 2009 Cyrille Bagard * * This file is part of OpenIDA. * * OpenIDA is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * OpenIDA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Foobar. If not, see . */ #include "archbase.h" #include /****************************************************************************** * * * Paramètres : addr = adresse virtuelle ou physique à traiter. * * msize = taille de cette adresse. * * buffer = chaîne de caractères à constituer. [OUT] * * * * Description : Transforme une adresse en chaîne de caractères. * * * * Retour : Bilan de l'opération. * * * * Remarques : - * * * ******************************************************************************/ size_t vmpa_to_string(vmpa_t addr, MemoryDataSize msize, char buffer[VMPA_MAX_SIZE]) { size_t result; /* Taille en place à renvoyer */ switch (msize) { case MDS_8_BITS: snprintf(buffer, VMPA_MAX_SIZE,"0x%02llx", addr); result = 4; break; case MDS_16_BITS: snprintf(buffer, VMPA_MAX_SIZE, "0x%04llx", addr); result = 6; break; case MDS_32_BITS: snprintf(buffer, VMPA_MAX_SIZE, "0x%08llx", addr); result = 10; break; case MDS_64_BITS: snprintf(buffer, VMPA_MAX_SIZE, "0x%016llx", addr); result = 18; break; default: result = 0; break; } return result; }