1 |
13 |
louismarie |
/* Module adaptateur */
|
2 |
|
|
#ifndef M_ADAPTATEUR_FLAG
|
3 |
|
|
#define M_ADAPTATEUR_FLAG
|
4 |
|
|
|
5 |
|
|
/* Autres modules du projet utilisés. */
|
6 |
|
|
#include <parametres.h>
|
7 |
|
|
#include <stdio.h>
|
8 |
|
|
|
9 |
|
|
/*********************************************************************************************/
|
10 |
|
|
/* DEFINITION DU TYPE MASQUE */
|
11 |
|
|
/* Définition du type mask */
|
12 |
|
|
/*********************************************************************************************/
|
13 |
|
|
|
14 |
|
|
typedef short int type_taille_mask;
|
15 |
|
|
typedef unsigned long type_valeur_mask;
|
16 |
|
|
typedef struct
|
17 |
|
|
{
|
18 |
|
|
type_taille_mask taille; /* taille du masque en octets. */
|
19 |
|
|
type_valeur_mask valeur; /* valeur du masque sur 64 bits. */
|
20 |
|
|
} type_mask;
|
21 |
|
|
|
22 |
|
|
/* Comme l'allocation de masques sera une opération très fréquente, on pourra utiliser la */
|
23 |
|
|
/* macro suivante pour simplifier le code. */
|
24 |
|
|
#define ALLOC_MASK(msk) {\
|
25 |
|
|
msk = ((type_mask *) malloc(sizeof(type_mask)));\
|
26 |
|
|
}
|
27 |
|
|
|
28 |
|
|
#define FREE_MASK(msk) {\
|
29 |
|
|
free(msk);\
|
30 |
|
|
}
|
31 |
|
|
|
32 |
|
|
/*********************************************************************************************/
|
33 |
|
|
/* EXPORTATION DES FONCTIONS DE L'ADAPTATEUR */
|
34 |
|
|
/*********************************************************************************************/
|
35 |
|
|
|
36 |
|
|
/* Définition du type pointeur vers une fonction génératrice de masque. */
|
37 |
|
|
typedef type_mask *((*type_ptr_fgm)());
|
38 |
|
|
|
39 |
|
|
type_ptr_fgm alias(char *); /* Retourne le pointeur sur la fonction à partir du nom. */
|
40 |
|
|
void clear_adaptateur(); /* Fonction de cloture de l'adaptateur. */
|
41 |
|
|
void write_data(FILE * f_lst); /* Ecriture d'informations dans la lsite. */
|
42 |
|
|
|
43 |
|
|
extern int eval_code; /* Drapeau pour le résultat de l'évaluation d'une fgm. */
|
44 |
|
|
|
45 |
|
|
/* Définition des différents types d'erreur d'évaluation. */
|
46 |
|
|
#define EVAL_REUSSIE 0 /* Evaluation réussie. */
|
47 |
|
|
#define EVAL_IMPOSSIBLE 1 /* Evaluation impossible (fonction de seconde passe ?) */
|
48 |
|
|
#define EVAL_ERREUR 2 /* Erreur lors de l'évaluation (fichier Syntaxe incorrect ?) */
|
49 |
|
|
|
50 |
|
|
#endif
|