version 1.312, 2017/07/30 22:00:22
|
version 1.324, 2019/01/01 09:03:15
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.27 |
RPL/2 (R) version 4.1.30 |
Copyright (C) 1989-2017 Dr. BERTRAND Joël |
Copyright (C) 1989-2019 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 92
|
Line 92
|
#include <stdarg.h> |
#include <stdarg.h> |
#include <poll.h> |
#include <poll.h> |
#include <signal.h> |
#include <signal.h> |
|
#include <sys/time.h> |
|
|
#ifndef RPLARGS |
#ifndef RPLARGS |
# include <sys/mman.h> |
# include <sys/mman.h> |
# include <sys/time.h> |
|
# include <sys/resource.h> |
# include <sys/resource.h> |
# include <sys/select.h> |
# include <sys/select.h> |
# include <sys/socket.h> |
# include <sys/socket.h> |
Line 104
|
Line 104
|
# include <sys/types.h> |
# include <sys/types.h> |
# include <sys/un.h> |
# include <sys/un.h> |
# include <sys/wait.h> |
# include <sys/wait.h> |
|
# include <omp.h> |
|
|
# include <arpa/inet.h> |
# include <arpa/inet.h> |
# include <netinet/in.h> |
# include <netinet/in.h> |
Line 718 pid_t debug_fork();
|
Line 719 pid_t debug_fork();
|
pthread_self(), #mutex, mutex, __FUNCTION__, __LINE__), \ |
pthread_self(), #mutex, mutex, __FUNCTION__, __LINE__), \ |
fflush(stdout), \ |
fflush(stdout), \ |
pthread_mutex_unlock(mutex) |
pthread_mutex_unlock(mutex) |
|
# define pthread_mutex_trylock(mutex) uprintf("[%d-%llu] Mutex %s (%p) " \ |
|
"trylocking at " \ |
|
"%s() line #%d\n", (int) getpid(), (unsigned long long) \ |
|
pthread_self(), #mutex, mutex, __FUNCTION__, __LINE__), \ |
|
fflush(stdout), \ |
|
pthread_mutex_trylock(mutex) |
#endif |
#endif |
|
|
|
|
Line 768 pid_t debug_fork();
|
Line 775 pid_t debug_fork();
|
#define d_SPH "Semaphore $n 'name'" |
#define d_SPH "Semaphore $n 'name'" |
#define d_TAB "<[ table ]>" |
#define d_TAB "<[ table ]>" |
#define d_MTX "Mutex $n" |
#define d_MTX "Mutex $n" |
#define d_REC "Record /'name_1', ..., 'name_n'/" |
#define d_REC "|[ record ]|" |
|
|
/* |
/* |
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
Line 1130 enum t_type { ADR = 0, ALG, BIN, CHN, C
|
Line 1137 enum t_type { ADR = 0, ALG, BIN, CHN, C
|
PRC : processus (struct_processus_fils *) |
PRC : processus (struct_processus_fils *) |
Sans objet. |
Sans objet. |
|
|
|
REC : enregistrement (struct_record *) |
|
|
REL : reel sur 64 bits (real*8, real8 *) |
REL : reel sur 64 bits (real*8, real8 *) |
Sans objet. |
Sans objet. |
|
|
Line 1755 typedef struct tableau
|
Line 1764 typedef struct tableau
|
|
|
/* |
/* |
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
|
Structure enregistrement |
|
-------------------------------------------------------------------------------- |
|
*/ |
|
|
|
typedef struct record |
|
{ |
|
struct_objet *noms; |
|
struct_objet *donnees; |
|
} struct_record; |
|
|
|
|
|
/* |
|
-------------------------------------------------------------------------------- |
Structure arbre |
Structure arbre |
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
*/ |
*/ |
Line 1779 typedef struct instruction_externe
|
Line 1801 typedef struct instruction_externe
|
unsigned char *nom; |
unsigned char *nom; |
unsigned char *nom_bibliotheque; |
unsigned char *nom_bibliotheque; |
void *descripteur_bibliotheque; |
void *descripteur_bibliotheque; |
|
integer8 position_fleche; |
} struct_instruction_externe; |
} struct_instruction_externe; |
|
|
|
|
Line 1820 typedef struct rpl_arguments
|
Line 1843 typedef struct rpl_arguments
|
unsigned char test_instruction; |
unsigned char test_instruction; |
|
|
integer8 nombre_arguments; |
integer8 nombre_arguments; |
// Nombre d'arguments de la fonction, positif ou nul. |
// Nombre d'arguments de la fonction |
|
// 0 : instruction infixe |
|
// positif : nombre d'arguments (notation algébrique possible) |
|
// -1 : notation algrébrique non autorisée |
|
|
void *s_etat_processus; |
void *s_etat_processus; |
} struct_rpl_arguments; |
} struct_rpl_arguments; |
Line 2470 typedef struct processus
|
Line 2496 typedef struct processus
|
CACHE(integer8, int) |
CACHE(integer8, int) |
CACHE(struct_matrice, mat) |
CACHE(struct_matrice, mat) |
CACHE(struct_nom, nom) |
CACHE(struct_nom, nom) |
|
CACHE(struct_record, rec) |
CACHE(real8, rel) |
CACHE(real8, rel) |
CACHE(struct_tableau, tab) |
CACHE(struct_tableau, tab) |
CACHE(struct_vecteur, vec) |
CACHE(struct_vecteur, vec) |
Line 2795 void instruction_mtxtrylock(struct_proce
|
Line 2822 void instruction_mtxtrylock(struct_proce
|
void instruction_mtxunlock(struct_processus *s_etat_processus); |
void instruction_mtxunlock(struct_processus *s_etat_processus); |
void instruction_multiplication(struct_processus *s_etat_processus); |
void instruction_multiplication(struct_processus *s_etat_processus); |
|
|
|
void instruction_nbrcpus(struct_processus *s_etat_prorcessus); |
void instruction_ne(struct_processus *s_etat_processus); |
void instruction_ne(struct_processus *s_etat_processus); |
void instruction_neg(struct_processus *s_etat_processus); |
void instruction_neg(struct_processus *s_etat_processus); |
void instruction_next(struct_processus *s_etat_processus); |
void instruction_next(struct_processus *s_etat_processus); |
Line 2884 void instruction_rdz(struct_processus *s
|
Line 2912 void instruction_rdz(struct_processus *s
|
void instruction_re(struct_processus *s_etat_processus); |
void instruction_re(struct_processus *s_etat_processus); |
void instruction_read(struct_processus *s_etat_processus); |
void instruction_read(struct_processus *s_etat_processus); |
void instruction_recode(struct_processus *s_etat_processus); |
void instruction_recode(struct_processus *s_etat_processus); |
|
void instruction_record(struct_processus *s_etat_processus); |
void instruction_recv(struct_processus *s_etat_processus); |
void instruction_recv(struct_processus *s_etat_processus); |
void instruction_redraw(struct_processus *s_etat_processus); |
void instruction_redraw(struct_processus *s_etat_processus); |
void instruction_regex(struct_processus *s_etat_processus); |
void instruction_regex(struct_processus *s_etat_processus); |
Line 3338 struct_liste_chainee *sauvegarde_argumen
|
Line 3367 struct_liste_chainee *sauvegarde_argumen
|
#ifndef RPLARGS |
#ifndef RPLARGS |
unsigned char *analyse_algebrique(struct_processus *s_etat_processus, |
unsigned char *analyse_algebrique(struct_processus *s_etat_processus, |
unsigned char *chaine_algebrique, struct_liste_chainee **l_base_liste); |
unsigned char *chaine_algebrique, struct_liste_chainee **l_base_liste); |
|
#endif |
unsigned char *analyse_flux(struct_processus *s_etat_processus, |
unsigned char *analyse_flux(struct_processus *s_etat_processus, |
unsigned char *flux, integer8 longueur); |
unsigned char *flux, integer8 longueur); |
|
#ifndef RPLARGS |
unsigned char *chiffrement(struct_processus *s_etat_processus, |
unsigned char *chiffrement(struct_processus *s_etat_processus, |
const EVP_CIPHER *type_chiffrement, |
const EVP_CIPHER *type_chiffrement, |
logical1 encodage, unsigned char *message, integer8 longueur_message, |
logical1 encodage, unsigned char *message, integer8 longueur_message, |
Line 3362 unsigned char *formateur_fichier(struct_
|
Line 3393 unsigned char *formateur_fichier(struct_
|
integer8 longueur, integer8 longueur_champ, unsigned char format, |
integer8 longueur, integer8 longueur_champ, unsigned char format, |
unsigned char type, integer8 *longueur_effective, integer8 *recursivite, |
unsigned char type, integer8 *longueur_effective, integer8 *recursivite, |
logical1 export_fichier); |
logical1 export_fichier); |
|
#endif |
unsigned char *formateur_flux(struct_processus *s_etat_processus, |
unsigned char *formateur_flux(struct_processus *s_etat_processus, |
unsigned char *donnees, integer8 *longueur); |
unsigned char *donnees, integer8 *longueur); |
|
#ifndef RPLARGS |
unsigned char *formateur_fichier_nombre(struct_processus *s_etat_processus, |
unsigned char *formateur_fichier_nombre(struct_processus *s_etat_processus, |
void *valeur_numerique, unsigned char type, |
void *valeur_numerique, unsigned char type, |
integer8 longueur, integer8 longueur_champ, unsigned char format); |
integer8 longueur, integer8 longueur_champ, unsigned char format); |