version 1.100, 2011/06/23 13:41:16
|
version 1.117, 2011/09/08 15:24:25
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.0.prerelease.3 |
RPL/2 (R) version 4.1.3 |
Copyright (C) 1989-2011 Dr. BERTRAND Joël |
Copyright (C) 1989-2011 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
Line 23
|
Line 23
|
#ifndef INCLUSION_RPL |
#ifndef INCLUSION_RPL |
#define INCLUSION_RPL |
#define INCLUSION_RPL |
|
|
#define _GNU_SOURCE |
#ifndef __RPLCAS |
#define _POSIX_C_SOURCE 200112L |
# define _GNU_SOURCE |
|
# define _XOPEN_SOURCE 700 |
|
#endif |
|
|
#define _REENTRANT |
#define _REENTRANT |
|
|
#ifdef Darwin |
#ifndef __RPLCAS |
# define _DARWIN_C_SOURCE |
# ifdef Darwin |
#endif |
# define _DARWIN_C_SOURCE |
|
# endif |
|
|
#ifdef OpenBSD |
# ifdef OpenBSD |
# define _BSD_SOURCE |
# define _BSD_SOURCE |
|
# endif |
#endif |
#endif |
|
|
#ifdef OS2 |
#ifdef OS2 |
# define _BSD_SOURCE |
# ifndef __RPLCAS |
# define _XOPEN_SOURCE 600 |
# define _BSD_SOURCE |
|
# define _XOPEN_SOURCE 600 |
|
# endif |
|
|
# include <types.h> |
# include <types.h> |
enum { SHUT_RD = 0, SHUT_WR, SHUT_RDWR }; |
enum { SHUT_RD = 0, SHUT_WR, SHUT_RDWR }; |
Line 304 union semun
|
Line 311 union semun
|
# define SIGABORT SIGTHR |
# define SIGABORT SIGTHR |
# endif |
# endif |
// Arrêt d'un processus fils depuis autre chose que STOP |
// Arrêt d'un processus fils depuis autre chose que STOP |
# if defined(Darwin) || defined(OpenBSD) |
# if defined(Darwin) || defined(OpenBSD) || defined(NetBSD) |
# define SIGFABORT SIGINFO |
# define SIGFABORT SIGINFO |
# else |
# else |
# define SIGFABORT SIGPOLL |
# define SIGFABORT SIGPOLL |
Line 382 typedef unsigned char t_8_bits;
|
Line 389 typedef unsigned char t_8_bits;
|
|
|
extern jmp_buf contexte; |
extern jmp_buf contexte; |
extern jmp_buf contexte_initial; |
extern jmp_buf contexte_initial; |
|
extern jmp_buf contexte_processus; |
|
extern jmp_buf contexte_thread; |
|
|
# ifdef SEMAPHORES_NOMMES |
# ifdef SEMAPHORES_NOMMES |
extern pthread_mutex_t mutex_sem; |
extern pthread_mutex_t mutex_sem; |
Line 422 typedef unsigned char t_8_bits;
|
Line 431 typedef unsigned char t_8_bits;
|
|
|
jmp_buf contexte; |
jmp_buf contexte; |
jmp_buf contexte_initial; |
jmp_buf contexte_initial; |
|
jmp_buf contexte_processus; |
|
jmp_buf contexte_thread; |
|
|
# ifdef SEMAPHORES_NOMMES |
# ifdef SEMAPHORES_NOMMES |
pthread_mutex_t mutex_sem = PTHREAD_MUTEX_INITIALIZER; |
pthread_mutex_t mutex_sem = PTHREAD_MUTEX_INITIALIZER; |
Line 923 pid_t debug_fork();
|
Line 934 pid_t debug_fork();
|
# define d_ex_nom_implicite __erreur(81) |
# define d_ex_nom_implicite __erreur(81) |
# define d_ex_version_bibliotheque __erreur(82) |
# define d_ex_version_bibliotheque __erreur(82) |
# define d_ex_creation_variable_globale __erreur(83) |
# define d_ex_creation_variable_globale __erreur(83) |
|
# define d_ex_erreur_interne_rplcas __erreur(84) |
#endif |
#endif |
|
|
|
|
Line 973 pid_t debug_fork();
|
Line 985 pid_t debug_fork();
|
#define VIN __RPL_VIN |
#define VIN __RPL_VIN |
#define VRL __RPL_VRL |
#define VRL __RPL_VRL |
|
|
|
enum t_rplcas_commandes { RPLCAS_INTEGRATION = 0, RPLCAS_LIMITE }; |
|
|
enum t_type { ADR = 0, ALG, BIN, CHN, CPL, FCH, FCT, INT, LST, |
enum t_type { ADR = 0, ALG, BIN, CHN, CPL, FCH, FCT, INT, LST, |
MCX, MIN, MRL, MTX, NOM, NON, PRC, REL, RPN, SCK, |
MCX, MIN, MRL, MTX, NOM, NON, PRC, REL, RPN, SCK, |
Line 2050 typedef struct processus
|
Line 2063 typedef struct processus
|
|
|
/* Traitement des erreurs */ |
/* Traitement des erreurs */ |
|
|
|
unsigned int compteur_violation_d_acces; |
unsigned int erreur_compilation; |
unsigned int erreur_compilation; |
unsigned int erreur_execution; |
unsigned int erreur_execution; |
unsigned int erreur_systeme; |
unsigned int erreur_systeme; |
Line 2137 typedef struct processus
|
Line 2151 typedef struct processus
|
gsl_rng *generateur_aleatoire; |
gsl_rng *generateur_aleatoire; |
const gsl_rng_type *type_generateur_aleatoire; |
const gsl_rng_type *type_generateur_aleatoire; |
|
|
|
void *contexte_cas; |
|
|
integer8 nombre_arguments; |
integer8 nombre_arguments; |
|
|
/* |
/* |
Line 2283 typedef struct fonction
|
Line 2299 typedef struct fonction
|
// BEGIN C PROTOTYPES |
// BEGIN C PROTOTYPES |
void instruction_sensible_e(struct_processus *s_etat_processus); |
void instruction_sensible_e(struct_processus *s_etat_processus); |
void instruction_sensible_i(struct_processus *s_etat_processus); |
void instruction_sensible_i(struct_processus *s_etat_processus); |
|
void instruction_sensible_infinity(struct_processus *s_etat_processus); |
|
|
void instruction_abort(struct_processus *s_etat_processus); |
void instruction_abort(struct_processus *s_etat_processus); |
void instruction_abs(struct_processus *s_etat_processus); |
void instruction_abs(struct_processus *s_etat_processus); |
Line 2479 void instruction_in(struct_processus *s_
|
Line 2496 void instruction_in(struct_processus *s_
|
void instruction_incr(struct_processus *s_etat_processus); |
void instruction_incr(struct_processus *s_etat_processus); |
void instruction_indep(struct_processus *s_etat_processus); |
void instruction_indep(struct_processus *s_etat_processus); |
void instruction_input(struct_processus *s_etat_processus); |
void instruction_input(struct_processus *s_etat_processus); |
|
void instruction_infinity(struct_processus *s_etat_processus); |
void instruction_inquire(struct_processus *s_etat_processus); |
void instruction_inquire(struct_processus *s_etat_processus); |
void instruction_int(struct_processus *s_etat_processus); |
void instruction_int(struct_processus *s_etat_processus); |
void instruction_interrupt(struct_processus *s_etat_processus); |
void instruction_interrupt(struct_processus *s_etat_processus); |
Line 2502 void instruction_lcd_fleche(struct_proce
|
Line 2520 void instruction_lcd_fleche(struct_proce
|
void instruction_lchol(struct_processus *s_etat_processus); |
void instruction_lchol(struct_processus *s_etat_processus); |
void instruction_le(struct_processus *s_etat_processus); |
void instruction_le(struct_processus *s_etat_processus); |
void instruction_legv(struct_processus *s_etat_processus); |
void instruction_legv(struct_processus *s_etat_processus); |
|
void instruction_limit(struct_processus *s_etat_processus); |
void instruction_line(struct_processus *s_etat_processus); |
void instruction_line(struct_processus *s_etat_processus); |
void instruction_list_fleche(struct_processus *s_etat_processus); |
void instruction_list_fleche(struct_processus *s_etat_processus); |
void instruction_ln(struct_processus *s_etat_processus); |
void instruction_ln(struct_processus *s_etat_processus); |
Line 2694 void instruction_sqlquery(struct_process
|
Line 2713 void instruction_sqlquery(struct_process
|
void instruction_sqrt(struct_processus *s_etat_processus); |
void instruction_sqrt(struct_processus *s_etat_processus); |
void instruction_sr(struct_processus *s_etat_processus); |
void instruction_sr(struct_processus *s_etat_processus); |
void instruction_srb(struct_processus *s_etat_processus); |
void instruction_srb(struct_processus *s_etat_processus); |
|
void instruction_srev(struct_processus *s_etat_processus); |
void instruction_sst(struct_processus *s_etat_processus); |
void instruction_sst(struct_processus *s_etat_processus); |
void instruction_star_d(struct_processus *s_etat_processus); |
void instruction_star_d(struct_processus *s_etat_processus); |
void instruction_star_h(struct_processus *s_etat_processus); |
void instruction_star_h(struct_processus *s_etat_processus); |
Line 2755 void instruction_t_vers_l(struct_process
|
Line 2775 void instruction_t_vers_l(struct_process
|
|
|
void instruction_ucase(struct_processus *s_etat_processus); |
void instruction_ucase(struct_processus *s_etat_processus); |
void instruction_uchol(struct_processus *s_etat_processus); |
void instruction_uchol(struct_processus *s_etat_processus); |
void instruction_undo(struct_processus *s_etat_processus); |
|
void instruction_unlock(struct_processus *s_etat_processus); |
void instruction_unlock(struct_processus *s_etat_processus); |
void instruction_unprotect(struct_processus *s_etat_processus); |
void instruction_unprotect(struct_processus *s_etat_processus); |
void instruction_until(struct_processus *s_etat_processus); |
void instruction_until(struct_processus *s_etat_processus); |
Line 2810 void affichage_pile(struct_processus *s_
|
Line 2829 void affichage_pile(struct_processus *s_
|
niveau_courant); |
niveau_courant); |
#endif |
#endif |
|
|
void *allocation(struct_processus *s_etat_processus, enum t_type type); |
|
void *allocation_maillon(struct_processus *s_etat_processus); |
void *allocation_maillon(struct_processus *s_etat_processus); |
|
|
#ifndef RPLARGS |
#ifndef RPLARGS |
Line 2872 void impression_tex(struct_processus *s_
|
Line 2890 void impression_tex(struct_processus *s_
|
void informations(struct_processus *s_etat_processus); |
void informations(struct_processus *s_etat_processus); |
void initialisation_allocateur(struct_processus *s_etat_processus); |
void initialisation_allocateur(struct_processus *s_etat_processus); |
void initialisation_completion(void); |
void initialisation_completion(void); |
|
void initialisation_contexte_cas(struct_processus *s_etat_processus); |
void initialisation_drapeaux(struct_processus *s_etat_processus); |
void initialisation_drapeaux(struct_processus *s_etat_processus); |
void initialisation_generateur_aleatoire(struct_processus *s_etat_processus, |
void initialisation_generateur_aleatoire(struct_processus *s_etat_processus, |
logical1 initialisation_automatique, unsigned long int racine); |
logical1 initialisation_automatique, unsigned long int racine); |
Line 2889 void insertion_thread_surveillance(struc
|
Line 2908 void insertion_thread_surveillance(struc
|
void integrale_romberg(struct_processus *s_etat_processus, |
void integrale_romberg(struct_processus *s_etat_processus, |
struct_objet *s_expression, unsigned char *variable, |
struct_objet *s_expression, unsigned char *variable, |
real8 a, real8 b, real8 precision); |
real8 a, real8 b, real8 precision); |
|
void interface_cas(struct_processus *s_etat_processus, |
|
enum t_rplcas_commandes commande); |
void interruption1(SIGHANDLER_ARGS); |
void interruption1(SIGHANDLER_ARGS); |
void interruption2(SIGHANDLER_ARGS); |
void interruption2(SIGHANDLER_ARGS); |
void interruption3(SIGHANDLER_ARGS); |
void interruption3(SIGHANDLER_ARGS); |
Line 2916 void liberation_arbre_instructions(struc
|
Line 2937 void liberation_arbre_instructions(struc
|
struct_instruction *arbre); |
struct_instruction *arbre); |
void liberation_arbre_variables(struct_processus *s_etat_processus, |
void liberation_arbre_variables(struct_processus *s_etat_processus, |
struct_arbre_variables *arbre, logical1 definitions); |
struct_arbre_variables *arbre, logical1 definitions); |
|
void liberation_contexte_cas(struct_processus *s_etat_processus); |
void liberation_generateur_aleatoire(struct_processus *s_etat_processus); |
void liberation_generateur_aleatoire(struct_processus *s_etat_processus); |
void liberation_threads(struct_processus *s_etat_processus); |
void liberation_threads(struct_processus *s_etat_processus); |
void liberation_profil(struct_processus *s_etat_processus); |
void liberation_profil(struct_processus *s_etat_processus); |
Line 3070 unsigned char *formateur_nombre(struct_p
|
Line 3092 unsigned char *formateur_nombre(struct_p
|
void *valeur_numerique, unsigned char type); |
void *valeur_numerique, unsigned char type); |
unsigned char *formateur_reel(struct_processus *s_etat_processus, |
unsigned char *formateur_reel(struct_processus *s_etat_processus, |
void *valeur_numerique, unsigned char type); |
void *valeur_numerique, unsigned char type); |
unsigned char *interface_cas(struct_processus *s_etat_processus, |
|
unsigned char *commande, const char *argument); |
|
unsigned char *messages(struct_processus *s_etat_processus); |
unsigned char *messages(struct_processus *s_etat_processus); |
unsigned char *purification_chaine(unsigned char *chaine); |
unsigned char *purification_chaine(unsigned char *chaine); |
unsigned char *reencodage(struct_processus *s_etat_processus, |
unsigned char *reencodage(struct_processus *s_etat_processus, |
Line 3267 struct_objet *copie_objet(struct_process
|
Line 3287 struct_objet *copie_objet(struct_process
|
struct_objet *s_objet, unsigned char type); |
struct_objet *s_objet, unsigned char type); |
|
|
#ifndef RPLARGS |
#ifndef RPLARGS |
|
struct_objet *allocation(struct_processus *s_etat_processus, enum t_type type); |
struct_objet *formateur_date(struct_processus *s_etat_processus, |
struct_objet *formateur_date(struct_processus *s_etat_processus, |
struct timeval *temps); |
struct timeval *temps); |
struct_objet *lecture_pipe(struct_processus *s_etat_processus, int pipe); |
struct_objet *lecture_pipe(struct_processus *s_etat_processus, int pipe); |