version 1.172, 2012/07/05 08:07:41
|
version 1.179, 2012/10/03 14:53:12
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.9 |
RPL/2 (R) version 4.1.11 |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
Line 445 union semun
|
Line 445 union semun
|
__STATIC_MUTEX_INITIALIZATION__; |
__STATIC_MUTEX_INITIALIZATION__; |
__EXTERN__ pthread_mutex_t mutex_gestionnaires_signaux_atomique |
__EXTERN__ pthread_mutex_t mutex_gestionnaires_signaux_atomique |
__STATIC_MUTEX_INITIALIZATION__; |
__STATIC_MUTEX_INITIALIZATION__; |
|
__EXTERN__ pthread_mutex_t mutex_sections_critiques; |
|
|
__EXTERN__ sem_t __PTR__ semaphore_gestionnaires_signaux; |
__EXTERN__ sem_t __PTR__ semaphore_gestionnaires_signaux; |
|
|
Line 1481 typedef struct liste_pile_systeme
|
Line 1482 typedef struct liste_pile_systeme
|
|
|
/* |
/* |
type clôture : |
type clôture : |
C SELECT : END termine un test SELECT/DEFAULT/END. |
C SELECT : END termine un test SELECT/DEFAULT/END. |
D DO : END termine une boucle DO/UNTIL/END. |
D DO : END termine une boucle DO/UNTIL/END. |
I IF : END termine un test IF/THEN (ELSE)/END. |
I IF : END termine un test IF/THEN (ELSE)/END. |
J IFERR : END termine un test IFERR/THEN (ELSE)/END. |
J IFERR : END termine un test IFERR/THEN (ELSE)/END. |
K CASE : END termine un test CASE/THEN/END |
K CASE : END termine un test CASE/THEN/END |
W WHILE : END termine une boucle WHILE/REPEAT/END. |
W WHILE : END termine une boucle WHILE/REPEAT/END. |
|
Q CRITICAL : END termine une section critique CRITICAL/END |
|
|
F FOR : NEXT ou STEP termine une boucle avec compteur. |
F FOR : NEXT ou STEP termine une boucle avec compteur. |
S START : NEXT ou STEP termine une boucle sans compteur. |
S START : NEXT ou STEP termine une boucle sans compteur. |
L LOOP : boucle utilisé dans le traitement de l'instruction RETURN. |
L LOOP : boucle utilisé dans le traitement de l'instruction RETURN. |
Elle correspond à une boucle FOR ou START mais sans son |
Elle correspond à une boucle FOR ou START mais sans son |
initialisation. |
initialisation. |
|
A FORALL : NEXT termine une boucle sur un objet. |
*/ |
*/ |
|
|
unsigned long adresse_retour; |
unsigned long adresse_retour; |
Line 1518 typedef union position_variable
|
Line 1521 typedef union position_variable
|
typedef struct variable |
typedef struct variable |
{ |
{ |
unsigned char *nom; |
unsigned char *nom; |
unsigned char origine; |
unsigned char origine; // P(rogramme) ou E(valuation) |
|
|
unsigned long niveau; |
unsigned long niveau; |
|
|
Line 1726 typedef struct instruction
|
Line 1729 typedef struct instruction
|
|
|
/* |
/* |
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
Structure d'arbre des variables variable globales et locales |
Structure d'arbre des variables globales et locales |
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
*/ |
*/ |
|
|
#ifndef RPLARGS |
#ifndef RPLARGS |
typedef struct arbre_variables |
typedef struct arbre_variables |
{ |
{ |
unsigned int noeuds_utilises; |
unsigned int noeuds_utilises; |
signed int indice_tableau_pere; |
// Nombre de noeuds utilisés dans le |
struct arbre_variables *noeud_pere; |
// tableau **noeuds |
struct arbre_variables **noeuds; |
signed int indice_tableau_pere; |
struct liste_variables *feuille; |
// Position de la structure dans le |
|
// tableau **noeuds du père |
|
|
|
struct arbre_variables *noeud_pere; |
|
struct arbre_variables **noeuds; |
|
|
|
struct liste_variables *feuille; |
|
struct liste_variables_statiques *feuille_statique; |
} struct_arbre_variables; |
} struct_arbre_variables; |
|
|
typedef struct tableau_variables |
typedef struct tableau_variables |
Line 1771 typedef struct liste_variables
|
Line 1781 typedef struct liste_variables
|
struct liste_variables *precedent; |
struct liste_variables *precedent; |
} struct_liste_variables; |
} struct_liste_variables; |
|
|
|
typedef struct liste_variables_statiques |
|
{ |
|
struct liste_variables_statiques *suivant; |
|
struct_variable_statique *variable; |
|
} struct_liste_variables_statiques; |
#endif |
#endif |
|
|
/* |
/* |
Line 2215 typedef struct processus
|
Line 2230 typedef struct processus
|
|
|
struct_liste_chainee *liste_mutexes; |
struct_liste_chainee *liste_mutexes; |
pthread_mutex_t protection_liste_mutexes; |
pthread_mutex_t protection_liste_mutexes; |
|
unsigned int sections_critiques; |
|
|
/* Drapeau nécessaire à RESTART */ |
/* Drapeau nécessaire à RESTART */ |
|
|
Line 2387 void instruction_cosh(struct_processus *
|
Line 2403 void instruction_cosh(struct_processus *
|
void instruction_cov(struct_processus *s_etat_processus); |
void instruction_cov(struct_processus *s_etat_processus); |
void instruction_cr(struct_processus *s_etat_processus); |
void instruction_cr(struct_processus *s_etat_processus); |
void instruction_create(struct_processus *s_etat_processus); |
void instruction_create(struct_processus *s_etat_processus); |
|
void instruction_critical(struct_processus *s_etat_processus); |
void instruction_crmtx(struct_processus *s_etat_processus); |
void instruction_crmtx(struct_processus *s_etat_processus); |
void instruction_cross(struct_processus *s_etat_processus); |
void instruction_cross(struct_processus *s_etat_processus); |
void instruction_crsmphr(struct_processus *s_etat_processus); |
void instruction_crsmphr(struct_processus *s_etat_processus); |
Line 2471 void instruction_fleche_str(struct_proce
|
Line 2488 void instruction_fleche_str(struct_proce
|
void instruction_fleche_table(struct_processus *s_etat_processus); |
void instruction_fleche_table(struct_processus *s_etat_processus); |
void instruction_floor(struct_processus *s_etat_processus); |
void instruction_floor(struct_processus *s_etat_processus); |
void instruction_for(struct_processus *s_etat_processus); |
void instruction_for(struct_processus *s_etat_processus); |
|
void instruction_forall(struct_processus *s_etat_processus); |
void instruction_format(struct_processus *s_etat_processus); |
void instruction_format(struct_processus *s_etat_processus); |
void instruction_fp(struct_processus *s_etat_processus); |
void instruction_fp(struct_processus *s_etat_processus); |
void instruction_fs_test(struct_processus *s_etat_processus); |
void instruction_fs_test(struct_processus *s_etat_processus); |