version 1.42, 2010/08/22 16:38:36
|
version 1.51, 2010/11/26 11:46:38
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.0.18 |
RPL/2 (R) version 4.0.20 |
Copyright (C) 1989-2010 Dr. BERTRAND Joël |
Copyright (C) 1989-2010 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
Line 23
|
Line 23
|
#define MAIN_RPL |
#define MAIN_RPL |
#include "rpl-conv.h" |
#include "rpl-conv.h" |
|
|
#ifdef SEMAPHORES_SYSV |
#ifdef IPCS_SYSV |
#ifndef OS2 |
#ifndef OS2 |
unsigned char *chemin_semaphores_SysV; |
unsigned char *chemin_semaphores_SysV; |
#endif |
#endif |
Line 240 rplinit(int argc, char *argv[], unsigned
|
Line 240 rplinit(int argc, char *argv[], unsigned
|
(*s_etat_processus).chemin_fichiers_temporaires = |
(*s_etat_processus).chemin_fichiers_temporaires = |
recherche_chemin_fichiers_temporaires(s_etat_processus); |
recherche_chemin_fichiers_temporaires(s_etat_processus); |
|
|
# ifdef SEMAPHORES_SYSV |
# ifdef IPCS_SYSV |
# ifndef OS2 |
# ifndef OS2 |
chemin_semaphores_SysV = (*s_etat_processus).chemin_fichiers_temporaires; |
chemin_semaphores_SysV = (*s_etat_processus).chemin_fichiers_temporaires; |
# endif |
# endif |
Line 248 rplinit(int argc, char *argv[], unsigned
|
Line 248 rplinit(int argc, char *argv[], unsigned
|
|
|
# ifdef _BROKEN_SIGINFO |
# ifdef _BROKEN_SIGINFO |
creation_fifos_signaux(s_etat_processus); |
creation_fifos_signaux(s_etat_processus); |
|
# ifdef return |
|
# undef return |
|
# endif |
|
# define return destruction_fifos_signaux(s_etat_processus); return |
|
# endif |
|
|
|
insertion_thread(s_etat_processus, d_vrai); |
|
|
|
# ifndef OS2 |
|
localisation_courante(s_etat_processus); |
|
# else |
if ((*s_etat_processus).erreur_systeme != d_es) |
if ((*s_etat_processus).erreur_systeme != d_es) |
{ |
{ |
if (((*s_etat_processus).localisation = malloc((strlen(d_locale) + 1) * |
if (((*s_etat_processus).localisation = malloc((strlen(d_locale) + 1) * |
Line 268 rplinit(int argc, char *argv[], unsigned
|
Line 278 rplinit(int argc, char *argv[], unsigned
|
|
|
strcpy((*s_etat_processus).localisation, d_locale); |
strcpy((*s_etat_processus).localisation, d_locale); |
} |
} |
# ifdef return |
|
# undef return |
|
# endif |
|
# define return destruction_fifos_signaux(s_etat_processus); return |
|
# endif |
# endif |
|
|
insertion_thread(s_etat_processus, d_vrai); |
|
|
|
localisation_courante(s_etat_processus); |
|
(*s_etat_processus).erreur_systeme = d_es; |
(*s_etat_processus).erreur_systeme = d_es; |
|
|
if ((*s_etat_processus).localisation == NULL) |
if ((*s_etat_processus).localisation == NULL) |
Line 416 rplinit(int argc, char *argv[], unsigned
|
Line 419 rplinit(int argc, char *argv[], unsigned
|
# else |
# else |
action.sa_handler = interruption1; |
action.sa_handler = interruption1; |
# endif |
# endif |
action.sa_flags = SA_ONSTACK | SA_SIGINFO; |
action.sa_flags = SA_ONSTACK | SA_SIGINFO | SA_NODEFER; |
|
|
if (sigaction(SIGINT, &action, NULL) != 0) |
if (sigaction(SIGINT, &action, NULL) != 0) |
{ |
{ |
Line 462 rplinit(int argc, char *argv[], unsigned
|
Line 465 rplinit(int argc, char *argv[], unsigned
|
# else |
# else |
action.sa_handler = interruption4; |
action.sa_handler = interruption4; |
# endif |
# endif |
// SIGCONT ne doit pas pouvoir être appelé depuis son gestionnaire. |
action.sa_flags = SA_ONSTACK | SA_SIGINFO | SA_NODEFER; |
action.sa_flags = SA_ONSTACK | SA_SIGINFO; |
|
|
|
if (sigaction(SIGSTART, &action, NULL) != 0) |
if (sigaction(SIGSTART, &action, NULL) != 0) |
{ |
{ |
Line 1597 rplinit(int argc, char *argv[], unsigned
|
Line 1599 rplinit(int argc, char *argv[], unsigned
|
# else |
# else |
action.sa_handler = interruption10; |
action.sa_handler = interruption10; |
# endif |
# endif |
action.sa_flags = SA_ONSTACK | SA_SIGINFO; |
action.sa_flags = SA_ONSTACK | SA_SIGINFO | SA_NODEFER; |
|
|
if (sigaction(SIGHUP, &action, NULL) != 0) |
if (sigaction(SIGHUP, &action, NULL) != 0) |
{ |
{ |
Line 1817 rplinit(int argc, char *argv[], unsigned
|
Line 1819 rplinit(int argc, char *argv[], unsigned
|
(*s_etat_processus).autorisation_empilement_programme = 'N'; |
(*s_etat_processus).autorisation_empilement_programme = 'N'; |
(*s_etat_processus).requete_arret = 'N'; |
(*s_etat_processus).requete_arret = 'N'; |
(*s_etat_processus).evaluation_forcee = 'N'; |
(*s_etat_processus).evaluation_forcee = 'N'; |
|
(*s_etat_processus).recherche_type = 'N'; |
|
|
(*s_etat_processus).constante_symbolique = 'N'; |
(*s_etat_processus).constante_symbolique = 'N'; |
(*s_etat_processus).traitement_symbolique = 'N'; |
(*s_etat_processus).traitement_symbolique = 'N'; |
Line 1972 rplinit(int argc, char *argv[], unsigned
|
Line 1975 rplinit(int argc, char *argv[], unsigned
|
(*s_etat_processus).pid_processus_pere = getpid(); |
(*s_etat_processus).pid_processus_pere = getpid(); |
(*s_etat_processus).processus_detache = d_vrai; |
(*s_etat_processus).processus_detache = d_vrai; |
(*s_etat_processus).var_volatile_processus_pere = -1; |
(*s_etat_processus).var_volatile_processus_pere = -1; |
|
(*s_etat_processus).var_volatile_processus_racine = -1; |
(*s_etat_processus).var_volatile_traitement_retarde_stop = 0; |
(*s_etat_processus).var_volatile_traitement_retarde_stop = 0; |
(*s_etat_processus).var_volatile_alarme = 0; |
(*s_etat_processus).var_volatile_alarme = 0; |
(*s_etat_processus).var_volatile_requete_arret = 0; |
(*s_etat_processus).var_volatile_requete_arret = 0; |