/* Chrysalide - Outil d'analyse de fichiers binaires * raw.h - prototypes pour les instructions de données brutes * * Copyright (C) 2014-2025 Cyrille Bagard * * This file is part of Chrysalide. * * Chrysalide 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. * * Chrysalide 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 Chrysalide. If not, see . */ #ifndef _ARCH_INSTRUCTIONS_RAW_H #define _ARCH_INSTRUCTIONS_RAW_H #include "../instruction.h" #include "../vmpa.h" #include "../../analysis/content.h" #include "../../glibext/helpers.h" #define G_TYPE_RAW_INSTRUCTION (g_raw_instruction_get_type()) DECLARE_GTYPE(GRawInstruction, g_raw_instruction, G, RAW_INSTRUCTION); /* Crée une instruction de type 'db/dw/etc' simple. */ GArchInstruction *g_raw_instruction_new_from_value(GBinaryPortion *, const vmpa2t *, MemoryDataSize, uint64_t); /* Crée une instruction de type 'db/dw/etc' étendue. */ GArchInstruction *g_raw_instruction_new_array(GBinaryPortion *, vmpa2t *, MemoryDataSize, const GBinContent *, size_t, SourceEndian); /* Drapeaux pour informations complémentaires */ typedef enum _RawInstrFlag { RIF_PADDING = (1 << (AIF_USER_BIT + 0)),/* Données de bourrage */ RIF_STRING = (1 << (AIF_USER_BIT + 1)),/* Impression en chaîne */ } RawInstrFlag; /* Marque l'instruction comme ne contenant que du bourrage. */ void g_raw_instruction_mark_as_padding(GRawInstruction *, bool); /* Indique si le contenu de l'instruction est du bourrage. */ bool g_raw_instruction_is_padding(const GRawInstruction *); /* Marque l'instruction comme contenant une chaîne de texte. */ void g_raw_instruction_mark_as_string(GRawInstruction *, bool); /* Indique si le contenu de l'instruction est un texte. */ bool g_raw_instruction_is_string(const GRawInstruction *); #endif /* _ARCH_INSTRUCTIONS_RAW_H */