summaryrefslogtreecommitdiff
path: root/src/format/symbol.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2020-04-12 22:25:43 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2020-04-12 22:25:43 (GMT)
commit8d4c5ae6dfd812b753109a25d7e84f7e524d4bf0 (patch)
treeb437de37b5447daa02263901aca4ef7a7d2d0386 /src/format/symbol.c
parentb4cbeedf6ed4e04dd85c92e8345b4cb8dcaab27d (diff)
Improved support of type prefix for symbols.
Diffstat (limited to 'src/format/symbol.c')
-rw-r--r--src/format/symbol.c64
1 files changed, 63 insertions, 1 deletions
diff --git a/src/format/symbol.c b/src/format/symbol.c
index 7d272ce..abf284e 100644
--- a/src/format/symbol.c
+++ b/src/format/symbol.c
@@ -549,7 +549,7 @@ SymbolFlag g_binary_symbol_get_flags(const GBinSymbol *symbol)
g_bit_lock(&extra->lock, HOLE_LOCK_BIT);
- result = extra->flags;
+ result = (extra->flags & SFL_MASK);
g_bit_unlock(&extra->lock, HOLE_LOCK_BIT);
@@ -561,6 +561,68 @@ SymbolFlag g_binary_symbol_get_flags(const GBinSymbol *symbol)
/******************************************************************************
* *
* Paramètres : symbol = symbole à venir consulter. *
+* prefix = éventuel préfixe à constituer. [OUT] *
+* *
+* Description : Fournit le préfixe compatible avec une sortie "nm". *
+* *
+* Retour : true si un préfixe "nm" est renseigné. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+bool g_binary_symbol_get_nm_prefix(const GBinSymbol *symbol, char *prefix)
+{
+ bool result; /* Validité à retourner */
+ sym_obj_extra *extra; /* Données insérées à modifier */
+
+ extra = GET_BIN_SYMBOL_EXTRA(symbol);
+
+ g_bit_lock(&extra->lock, HOLE_LOCK_BIT);
+
+ result = (extra->flags & SFL_HAS_NM_PREFIX);
+
+ if (result)
+ *prefix = extra->nm_prefix;
+
+ g_bit_unlock(&extra->lock, HOLE_LOCK_BIT);
+
+ return result;
+
+}
+
+/******************************************************************************
+* *
+* Paramètres : symbol = symbole à venir consulter. *
+* prefix = préfixe "nm" à associer au symbole. *
+* *
+* Description : Définit le préfixe compatible avec une sortie "nm". *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void g_binary_symbol_set_nm_prefix(const GBinSymbol *symbol, char prefix)
+{
+ sym_obj_extra *extra; /* Données insérées à modifier */
+
+ extra = GET_BIN_SYMBOL_EXTRA(symbol);
+
+ g_bit_lock(&extra->lock, HOLE_LOCK_BIT);
+
+ extra->nm_prefix = prefix;
+ extra->flags |= SFL_HAS_NM_PREFIX;
+
+ g_bit_unlock(&extra->lock, HOLE_LOCK_BIT);
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : symbol = symbole à venir consulter. *
* *
* Description : Fournit une étiquette pour viser un symbole. *
* *