diff options
Diffstat (limited to 'src/arch/storage.h')
-rw-r--r-- | src/arch/storage.h | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/arch/storage.h b/src/arch/storage.h index 002897a..35e3a7d 100644 --- a/src/arch/storage.h +++ b/src/arch/storage.h @@ -72,23 +72,38 @@ GObject *g_asm_storage_create_object(GAsmStorage *, packed_buffer *); /* Sauvegarde le type d'un objet instancié. */ bool g_asm_storage_store_object_gtype(GAsmStorage *, GObject *, packed_buffer *); +/* Type de fichier intermédiaire */ +typedef enum _StorageFileType +{ + SFT_INSTRUCTION, /* Pour instructions */ + SFT_OPERAND, /* Pour opérandes */ + SFT_REGISTER /* Pour registres */ + +} StorageFileType; + /* Charge des données rassemblées. */ -bool _g_asm_storage_load_data(const GAsmStorage *, bool, packed_buffer *, off64_t); +bool _g_asm_storage_load_data(const GAsmStorage *, StorageFileType, packed_buffer *, off64_t); #define g_asm_storage_load_instruction_data(s, b, p) \ - _g_asm_storage_load_data(s, true, b, p) + _g_asm_storage_load_data(s, SFT_INSTRUCTION, b, p) #define g_asm_storage_load_operand_data(s, b, p) \ - _g_asm_storage_load_data(s, false, b, p) + _g_asm_storage_load_data(s, SFT_OPERAND, b, p) + +#define g_asm_storage_load_register_data(s, b, p) \ + _g_asm_storage_load_data(s, SFT_REGISTER, b, p) /* Sauvegarde des données rassemblées. */ -bool _g_asm_storage_store_data(const GAsmStorage *, bool, packed_buffer *, off64_t *); +bool _g_asm_storage_store_data(const GAsmStorage *, StorageFileType, packed_buffer *, off64_t *); #define g_asm_storage_store_instruction_data(s, b, p) \ - _g_asm_storage_store_data(s, true, b, p) + _g_asm_storage_store_data(s, SFT_INSTRUCTION, b, p) #define g_asm_storage_store_operand_data(s, b, p) \ - _g_asm_storage_store_data(s, false, b, p) + _g_asm_storage_store_data(s, SFT_OPERAND, b, p) + +#define g_asm_storage_store_register_data(s, b, p) \ + _g_asm_storage_store_data(s, SFT_REGISTER, b, p) /* Lance une restauration complète d'unsauvegarde compressée. */ bool g_asm_storage_open(GAsmStorage *, GBinFormat *, wgroup_id_t); |