summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2020-05-16 18:41:37 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2020-05-16 18:41:37 (GMT)
commit85bd3c6c415d42c0722298cf8e4542c94a87d7f1 (patch)
tree6a620ac5e06fcfd09574596af8a6030deb22f547 /src/core
parent90d1fa65a1d13128a66117095a44224e8c9de656 (diff)
Added a way to get all registered architectures.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/processors.c32
-rw-r--r--src/core/processors.h4
2 files changed, 36 insertions, 0 deletions
diff --git a/src/core/processors.c b/src/core/processors.c
index 48e2cd2..81f7494 100644
--- a/src/core/processors.c
+++ b/src/core/processors.c
@@ -171,6 +171,38 @@ void unload_processors_definitions(void)
/******************************************************************************
* *
+* Paramètres : count = taille de la liste retournée. [OUT] *
+* *
+* Description : Fournit la liste des processeurs d'architecture disponibles. *
+* *
+* Retour : Liste de nom technique des processeurs enregistrés. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+char **get_all_processor_keys(size_t *count)
+{
+ char **result; /* Liste à retourner */
+ size_t i; /* Boucle de parcours */
+
+ G_LOCK(_pdef_access);
+
+ result = malloc(_processors_definitions_count * sizeof(char *));
+ *count = _processors_definitions_count;
+
+ for (i = 0; i < _processors_definitions_count; i++)
+ result[i] = strdup(_processors_definitions[i].key);
+
+ G_UNLOCK(_pdef_access);
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : key = nom technique du processeur recherché. *
* *
* Description : Retrouve l'enregistrement correspondant à une architecture. *
diff --git a/src/core/processors.h b/src/core/processors.h
index d07ceb0..f95c6c2 100644
--- a/src/core/processors.h
+++ b/src/core/processors.h
@@ -32,6 +32,7 @@
#include "../arch/processor.h"
+
/* Assure l'enregistrement de types pour les caches à charger. */
void register_arch_gtypes(void);
@@ -41,6 +42,9 @@ bool register_processor_type(GType);
/* Décharge toutes les définitions de processeurs. */
void unload_processors_definitions(void);
+/* Fournit la liste des processeurs d'architecture disponibles. */
+char **get_all_processor_keys(size_t *);
+
/* Fournit le processeur d'architecture correspondant à un nom. */
GArchProcessor *get_arch_processor_for_key(const char *);