version 1.65, 2013/09/06 10:30:51
|
version 1.86, 2017/07/11 16:04:53
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.16 |
RPL/2 (R) version 4.1.27 |
Copyright (C) 1989-2013 Dr. BERTRAND Joël |
Copyright (C) 1989-2017 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 42 formateur(struct_processus *s_etat_proce
|
Line 42 formateur(struct_processus *s_etat_proce
|
int parentheses_groupe_gauche; |
int parentheses_groupe_gauche; |
int parentheses_groupe_droit; |
int parentheses_groupe_droit; |
|
|
|
integer8 (*__type_disp)(struct_processus *, void **); |
|
|
logical1 registre45; |
logical1 registre45; |
|
|
logical4 autorisation_parenthese; |
logical4 autorisation_parenthese; |
Line 103 formateur(struct_processus *s_etat_proce
|
Line 105 formateur(struct_processus *s_etat_proce
|
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
*/ |
*/ |
|
|
if (alsprintf(&chaine, "@ %016llX", (*((unsigned long long *) |
if (alsprintf(s_etat_processus, &chaine, |
|
"@ %016llX", (*((unsigned long long *) |
((*s_objet).objet)))) < 0) |
((*s_objet).objet)))) < 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
Line 119 formateur(struct_processus *s_etat_proce
|
Line 122 formateur(struct_processus *s_etat_proce
|
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
*/ |
*/ |
|
|
if (alsprintf(&chaine, "Library $ %016llX [%s]", |
# pragma GCC diagnostic push |
|
# pragma GCC diagnostic ignored "-Wpointer-to-int-cast" |
|
|
|
if (alsprintf(s_etat_processus, &chaine, "Library $ %016llX [%s]", |
(unsigned long long) (*((struct_bibliotheque *) |
(unsigned long long) (*((struct_bibliotheque *) |
(*s_objet).objet)).descripteur, (*((struct_bibliotheque *) |
(*s_objet).objet)).descripteur, (*((struct_bibliotheque *) |
(*s_objet).objet)).nom) < 0) |
(*s_objet).objet)).nom) < 0) |
Line 127 formateur(struct_processus *s_etat_proce
|
Line 133 formateur(struct_processus *s_etat_proce
|
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
} |
} |
|
|
|
# pragma GCC diagnostic pop |
|
|
} |
} |
else if ((*s_objet).type == SPH) |
else if ((*s_objet).type == SPH) |
{ |
{ |
Line 137 formateur(struct_processus *s_etat_proce
|
Line 146 formateur(struct_processus *s_etat_proce
|
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
*/ |
*/ |
|
|
if (alsprintf(&chaine, "Semaphore $ %016llX '%s'", (unsigned long long) |
# pragma GCC diagnostic push |
|
# pragma GCC diagnostic ignored "-Wpointer-to-int-cast" |
|
|
|
if (alsprintf(s_etat_processus, |
|
&chaine, "Semaphore $ %016llX '%s'", (unsigned long long) |
&((*((struct_semaphore *) (*s_objet).objet)).semaphore), |
&((*((struct_semaphore *) (*s_objet).objet)).semaphore), |
(*((struct_semaphore *) (*s_objet).objet)).nom) < 0) |
(*((struct_semaphore *) (*s_objet).objet)).nom) < 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
} |
} |
|
|
|
# pragma GCC diagnostic pop |
|
|
} |
} |
else if ((*s_objet).type == SQL) |
else if ((*s_objet).type == SQL) |
{ |
{ |
Line 158 formateur(struct_processus *s_etat_proce
|
Line 174 formateur(struct_processus *s_etat_proce
|
"MYSQL") == 0) |
"MYSQL") == 0) |
{ |
{ |
# ifdef MYSQL_SUPPORT |
# ifdef MYSQL_SUPPORT |
if (alsprintf(&chaine, "Sql $ %016llX (%s)", |
if (alsprintf(s_etat_processus, &chaine, "Sql $ %016llX (%s)", |
(unsigned long long) (*((struct_connecteur_sql *) |
(unsigned long long) (*((struct_connecteur_sql *) |
(*s_objet).objet)).descripteur.mysql, |
(*s_objet).objet)).descripteur.mysql, |
(*((struct_connecteur_sql *) (*s_objet).objet)).type) < 0) |
(*((struct_connecteur_sql *) (*s_objet).objet)).type) < 0) |
Line 185 formateur(struct_processus *s_etat_proce
|
Line 201 formateur(struct_processus *s_etat_proce
|
"POSTGRESQL") == 0) |
"POSTGRESQL") == 0) |
{ |
{ |
# ifdef POSTGRESQL_SUPPORT |
# ifdef POSTGRESQL_SUPPORT |
if (alsprintf(&chaine, "Sql $ %016llX (%s)", |
if (alsprintf(s_etat_processus, &chaine, "Sql $ %016llX (%s)", |
(unsigned long long) (*((struct_connecteur_sql *) |
(unsigned long long) (*((struct_connecteur_sql *) |
(*s_objet).objet)).descripteur.postgresql, |
(*s_objet).objet)).descripteur.postgresql, |
(*((struct_connecteur_sql *) (*s_objet).objet)).type) < 0) |
(*((struct_connecteur_sql *) (*s_objet).objet)).type) < 0) |
Line 227 formateur(struct_processus *s_etat_proce
|
Line 243 formateur(struct_processus *s_etat_proce
|
if ((*(*((struct_processus_fils *) (*s_objet).objet)).thread) |
if ((*(*((struct_processus_fils *) (*s_objet).objet)).thread) |
.processus_detache == d_vrai) |
.processus_detache == d_vrai) |
{ |
{ |
if (alsprintf(&chaine, "Process $ %016llX", (unsigned long long) |
if (alsprintf(s_etat_processus, &chaine, |
|
"Process $ %016llX", (unsigned long long) |
(*(*((struct_processus_fils *) (*s_objet).objet)).thread) |
(*(*((struct_processus_fils *) (*s_objet).objet)).thread) |
.pid) < 0) |
.pid) < 0) |
{ |
{ |
Line 237 formateur(struct_processus *s_etat_proce
|
Line 254 formateur(struct_processus *s_etat_proce
|
} |
} |
else |
else |
{ |
{ |
if (alsprintf(&chaine, "Light weight process $ %016llX/%016llX", |
if (alsprintf(s_etat_processus, &chaine, |
|
"Light weight process $ %016llX/%016llX", |
(unsigned long long) (*(*((struct_processus_fils *) |
(unsigned long long) (*(*((struct_processus_fils *) |
(*s_objet).objet)).thread).pid, |
(*s_objet).objet)).thread).pid, |
(unsigned long long) (*(*((struct_processus_fils *) |
(unsigned long long) (*(*((struct_processus_fils *) |
Line 257 formateur(struct_processus *s_etat_proce
|
Line 275 formateur(struct_processus *s_etat_proce
|
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
*/ |
*/ |
|
|
if (alsprintf(&chaine, "File $ %016llX", (unsigned long long) |
if (alsprintf(s_etat_processus, |
|
&chaine, "File $ %016llX", (unsigned long long) |
(*((struct_fichier *) ((*s_objet).objet))).descripteur) < 0) |
(*((struct_fichier *) ((*s_objet).objet))).descripteur) < 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
Line 282 formateur(struct_processus *s_etat_proce
|
Line 301 formateur(struct_processus *s_etat_proce
|
cf(s_etat_processus, 45); |
cf(s_etat_processus, 45); |
} |
} |
|
|
if ((format_majuscule = conversion_majuscule(format)) == NULL) |
if ((format_majuscule = conversion_majuscule(s_etat_processus, |
|
format)) == NULL) |
{ |
{ |
|
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
} |
} |
|
|
Line 389 formateur(struct_processus *s_etat_proce
|
Line 410 formateur(struct_processus *s_etat_proce
|
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
*/ |
*/ |
|
|
if (alsprintf(&chaine, "Socket $ %016llX", (unsigned long long) |
if (alsprintf(s_etat_processus, &chaine, |
|
"Socket $ %016llX", (unsigned long long) |
(*((struct_socket *) ((*s_objet).objet))).socket) < 0) |
(*((struct_socket *) ((*s_objet).objet))).socket) < 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
Line 414 formateur(struct_processus *s_etat_proce
|
Line 436 formateur(struct_processus *s_etat_proce
|
cf(s_etat_processus, 45); |
cf(s_etat_processus, 45); |
} |
} |
|
|
if ((format_majuscule = conversion_majuscule(format)) == NULL) |
if ((format_majuscule = conversion_majuscule(s_etat_processus, |
|
format)) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
Line 687 formateur(struct_processus *s_etat_proce
|
Line 710 formateur(struct_processus *s_etat_proce
|
|| ((*s_etat_processus).instruction_courante[1] |
|| ((*s_etat_processus).instruction_courante[1] |
== '-')) ? d_vrai : d_faux; |
== '-')) ? d_vrai : d_faux; |
|
|
|
(*s_etat_processus).type_en_cours = NON; |
recherche_type(s_etat_processus); |
recherche_type(s_etat_processus); |
|
|
if ((*s_etat_processus).erreur_execution != d_ex) |
if ((*s_etat_processus).erreur_execution != d_ex) |
Line 744 formateur(struct_processus *s_etat_proce
|
Line 768 formateur(struct_processus *s_etat_proce
|
{ |
{ |
if ((strcmp(chaine_fonction, "AND") == 0) || |
if ((strcmp(chaine_fonction, "AND") == 0) || |
(strcmp(chaine_fonction, "XOR") == 0) || |
(strcmp(chaine_fonction, "XOR") == 0) || |
|
(strcmp(chaine_fonction, "EQV") == 0) || |
(strcmp(chaine_fonction, "OR") == 0)) |
(strcmp(chaine_fonction, "OR") == 0)) |
{ |
{ |
autorisation_parenthese = d_vrai; |
autorisation_parenthese = d_vrai; |
Line 770 formateur(struct_processus *s_etat_proce
|
Line 795 formateur(struct_processus *s_etat_proce
|
(strcmp(chaine_fonction, "-") == 0) || |
(strcmp(chaine_fonction, "-") == 0) || |
(strcmp(chaine_fonction, "AND") == 0) || |
(strcmp(chaine_fonction, "AND") == 0) || |
(strcmp(chaine_fonction, "XOR") == 0) || |
(strcmp(chaine_fonction, "XOR") == 0) || |
|
(strcmp(chaine_fonction, "EQV") == 0) || |
(strcmp(chaine_fonction, "OR") == 0)) |
(strcmp(chaine_fonction, "OR") == 0)) |
{ |
{ |
autorisation_parenthese = d_vrai; |
autorisation_parenthese = d_vrai; |
Line 850 formateur(struct_processus *s_etat_proce
|
Line 876 formateur(struct_processus *s_etat_proce
|
"'%s'", (unsigned char *) |
"'%s'", (unsigned char *) |
(*s_sous_objet_1).objet); |
(*s_sous_objet_1).objet); |
|
|
|
(*s_etat_processus).type_en_cours = NON; |
recherche_type(s_etat_processus); |
recherche_type(s_etat_processus); |
|
|
if ((*s_etat_processus).erreur_execution != d_ex) |
if ((*s_etat_processus).erreur_execution != d_ex) |
Line 905 formateur(struct_processus *s_etat_proce
|
Line 932 formateur(struct_processus *s_etat_proce
|
{ |
{ |
if ((strcmp(chaine_fonction, "AND") == 0) || |
if ((strcmp(chaine_fonction, "AND") == 0) || |
(strcmp(chaine_fonction, "XOR") == 0) || |
(strcmp(chaine_fonction, "XOR") == 0) || |
|
(strcmp(chaine_fonction, "EQV") == 0) || |
(strcmp(chaine_fonction, "OR") == 0)) |
(strcmp(chaine_fonction, "OR") == 0)) |
{ |
{ |
autorisation_parenthese = d_vrai; |
autorisation_parenthese = d_vrai; |
Line 921 formateur(struct_processus *s_etat_proce
|
Line 949 formateur(struct_processus *s_etat_proce
|
(strcmp(chaine_fonction, "-") == 0) || |
(strcmp(chaine_fonction, "-") == 0) || |
(strcmp(chaine_fonction, "AND") == 0) || |
(strcmp(chaine_fonction, "AND") == 0) || |
(strcmp(chaine_fonction, "XOR") == 0) || |
(strcmp(chaine_fonction, "XOR") == 0) || |
|
(strcmp(chaine_fonction, "EQV") == 0) || |
(strcmp(chaine_fonction, "OR") == 0)) |
(strcmp(chaine_fonction, "OR") == 0)) |
{ |
{ |
autorisation_parenthese = d_vrai; |
autorisation_parenthese = d_vrai; |
Line 1147 formateur(struct_processus *s_etat_proce
|
Line 1176 formateur(struct_processus *s_etat_proce
|
(*(*l_element_courant).donnee).objet)).nom_fonction, |
(*(*l_element_courant).donnee).objet)).nom_fonction, |
"XOR") == 0) || (strcmp((*((struct_fonction *) |
"XOR") == 0) || (strcmp((*((struct_fonction *) |
(*(*l_element_courant).donnee).objet)).nom_fonction, |
(*(*l_element_courant).donnee).objet)).nom_fonction, |
|
"EQV") == 0) || (strcmp((*((struct_fonction *) |
|
(*(*l_element_courant).donnee).objet)).nom_fonction, |
"AND") == 0)) |
"AND") == 0)) |
{ |
{ |
if (depilement(s_etat_processus, &((*s_etat_processus) |
if (depilement(s_etat_processus, &((*s_etat_processus) |
Line 1191 formateur(struct_processus *s_etat_proce
|
Line 1222 formateur(struct_processus *s_etat_proce
|
"'%s'", (unsigned char *) |
"'%s'", (unsigned char *) |
(*s_sous_objet_1).objet); |
(*s_sous_objet_1).objet); |
|
|
|
(*s_etat_processus).type_en_cours = NON; |
recherche_type(s_etat_processus); |
recherche_type(s_etat_processus); |
|
|
if ((*s_etat_processus).erreur_execution != d_ex) |
if ((*s_etat_processus).erreur_execution != d_ex) |
Line 1236 formateur(struct_processus *s_etat_proce
|
Line 1268 formateur(struct_processus *s_etat_proce
|
} |
} |
|
|
if (((strcmp(chaine_fonction, "OR") == 0) || |
if (((strcmp(chaine_fonction, "OR") == 0) || |
|
(strcmp(chaine_fonction, "EQV") == 0) || |
(strcmp(chaine_fonction, "XOR") == 0)) && |
(strcmp(chaine_fonction, "XOR") == 0)) && |
(strcmp((*((struct_fonction *) |
(strcmp((*((struct_fonction *) |
(*(*l_element_courant).donnee).objet)) |
(*(*l_element_courant).donnee).objet)) |
Line 1266 formateur(struct_processus *s_etat_proce
|
Line 1299 formateur(struct_processus *s_etat_proce
|
"'%s'", (unsigned char *) |
"'%s'", (unsigned char *) |
(*s_sous_objet_2).objet); |
(*s_sous_objet_2).objet); |
|
|
|
(*s_etat_processus).type_en_cours = NON; |
recherche_type(s_etat_processus); |
recherche_type(s_etat_processus); |
|
|
if ((*s_etat_processus).erreur_execution != d_ex) |
if ((*s_etat_processus).erreur_execution != d_ex) |
Line 1311 formateur(struct_processus *s_etat_proce
|
Line 1345 formateur(struct_processus *s_etat_proce
|
} |
} |
|
|
if (((strcmp(chaine_fonction, "OR") == 0) || |
if (((strcmp(chaine_fonction, "OR") == 0) || |
|
(strcmp(chaine_fonction, "EQV") == 0) || |
(strcmp(chaine_fonction, "XOR") == 0)) && |
(strcmp(chaine_fonction, "XOR") == 0)) && |
(strcmp((*((struct_fonction *) |
(strcmp((*((struct_fonction *) |
(*(*l_element_courant).donnee).objet)) |
(*(*l_element_courant).donnee).objet)) |
Line 2997 formateur(struct_processus *s_etat_proce
|
Line 3032 formateur(struct_processus *s_etat_proce
|
} |
} |
else if ((*s_objet).type == MTX) |
else if ((*s_objet).type == MTX) |
{ |
{ |
if (alsprintf(&chaine, "Mutex $ %016llX owned by $ %016llX", |
if (alsprintf(s_etat_processus, &chaine, |
|
"Mutex $ %016llX owned by $ %016llX", |
&((*((struct_mutex *) (*s_objet).objet)).mutex), |
&((*((struct_mutex *) (*s_objet).objet)).mutex), |
(logical8) (*((struct_mutex *) (*s_objet).objet)).tid) < 0) |
(logical8) (*((struct_mutex *) (*s_objet).objet)).tid) < 0) |
{ |
{ |
Line 3262 formateur(struct_processus *s_etat_proce
|
Line 3298 formateur(struct_processus *s_etat_proce
|
|
|
if (chaine == NULL) |
if (chaine == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
d_es_allocation_memoire; |
|
return(NULL); |
return(NULL); |
} |
} |
|
|
Line 3272 formateur(struct_processus *s_etat_proce
|
Line 3307 formateur(struct_processus *s_etat_proce
|
strcat(chaine, " ]"); |
strcat(chaine, " ]"); |
} |
} |
} |
} |
|
else if ((*s_objet).type == NON) |
|
{ |
|
if ((chaine = malloc((strlen("System object") + 1) |
|
* sizeof(unsigned char))) == NULL) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
|
return(NULL); |
|
} |
|
|
|
strcpy(chaine, "System object"); |
|
} |
|
else if ((*s_objet).type == EXT) |
|
{ |
|
if ((__type_disp = dlsym((*s_objet).descripteur_bibliotheque, |
|
"__type_disp")) == NULL) |
|
{ |
|
// Symbole externe non affichable |
|
|
|
if ((chaine = malloc((strlen("External symbol") + 1) |
|
* sizeof(unsigned char))) == NULL) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
|
return(NULL); |
|
} |
|
|
|
strcpy(chaine, "External symbol"); |
|
} |
|
else |
|
{ |
|
// Symbole externe affichable |
|
void **arg; |
|
|
|
arg = (void **) &s_objet; |
|
__type_disp(s_etat_processus, arg); |
|
chaine = (unsigned char *) (*arg); |
|
} |
|
} |
|
else |
|
{ |
|
BUG(1, uprintf("Unknown symbol type\n")); |
|
} |
|
|
return(chaine); |
return(chaine); |
} |
} |