Diff for /rpl/src/instructions_p2.c between versions 1.3 and 1.23

version 1.3, 2010/02/10 10:14:23 version 1.23, 2011/06/21 15:26:33
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.11    RPL/2 (R) version 4.1.0.prerelease.2
   Copyright (C) 1989-2010 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 20 Line 20
 */  */
   
   
 #include "rpl.conv.h"  #include "rpl-conv.h"
   
   
 /*  /*
Line 38 Line 38
 void  void
 instruction_p_vers_r(struct_processus *s_etat_processus)  instruction_p_vers_r(struct_processus *s_etat_processus)
 {  {
       double                          angle;
   
     struct_liste_chainee            *l_element_courant;      struct_liste_chainee            *l_element_courant;
     struct_liste_chainee            *l_element_precedent;      struct_liste_chainee            *l_element_precedent;
   
Line 136  instruction_p_vers_r(struct_processus *s Line 138  instruction_p_vers_r(struct_processus *s
             return;              return;
         }          }
   
           angle = (*((struct_complexe16 *) (*s_objet_argument).objet))
                   .partie_imaginaire;
   
         if (test_cfsf(s_etat_processus, 60) == d_faux)          if (test_cfsf(s_etat_processus, 60) == d_faux)
         {          {
             conversion_degres_vers_radians(&((*((struct_complexe16 *)              conversion_degres_vers_radians(&angle);
                     (*s_objet_argument).objet)).partie_imaginaire));  
         }          }
   
         (*((struct_complexe16 *) (*s_objet_resultat).objet)).partie_reelle =          (*((struct_complexe16 *) (*s_objet_resultat).objet)).partie_reelle =
                 (*((struct_complexe16 *) (*s_objet_argument).objet))                  (*((struct_complexe16 *) (*s_objet_argument).objet))
                 .partie_reelle * cos((*((struct_complexe16 *)                  .partie_reelle * cos(angle);
                 (*s_objet_argument).objet)).partie_imaginaire);  
         (*((struct_complexe16 *) (*s_objet_resultat).objet)).partie_imaginaire =          (*((struct_complexe16 *) (*s_objet_resultat).objet)).partie_imaginaire =
                 (*((struct_complexe16 *) (*s_objet_argument).objet))                  (*((struct_complexe16 *) (*s_objet_argument).objet))
                 .partie_reelle * sin((*((struct_complexe16 *)                  .partie_reelle * sin(angle);
                 (*s_objet_argument).objet)).partie_imaginaire);  
     }      }
   
 /*  /*
Line 1436  instruction_put(struct_processus *s_etat Line 1438  instruction_put(struct_processus *s_etat
             return;              return;
         }          }
   
         if ((*s_etat_processus).s_liste_variables[(*s_etat_processus)          if ((*(*s_etat_processus).pointeur_variable_courante)
                 .position_variable_courante].variable_verrouillee == d_vrai)                  .variable_verrouillee == d_vrai)
         {          {
             (*s_etat_processus).erreur_execution = d_ex_variable_verrouillee;              (*s_etat_processus).erreur_execution = d_ex_variable_verrouillee;
   
Line 1448  instruction_put(struct_processus *s_etat Line 1450  instruction_put(struct_processus *s_etat
             return;              return;
         }          }
   
         s_objet_4 = (*s_etat_processus).s_liste_variables          s_objet_4 = (*(*s_etat_processus).pointeur_variable_courante).objet;
                 [(*s_etat_processus).position_variable_courante].objet;  
   
         if (s_objet_4 == NULL)          if (s_objet_4 == NULL)
         {          {
Line 1461  instruction_put(struct_processus *s_etat Line 1462  instruction_put(struct_processus *s_etat
             }              }
   
             if (recherche_variable_partagee(s_etat_processus,              if (recherche_variable_partagee(s_etat_processus,
                     (*s_etat_processus).s_liste_variables[(*s_etat_processus)                      (*(*s_etat_processus).pointeur_variable_courante).nom,
                     .position_variable_courante].nom,                      (*(*s_etat_processus).pointeur_variable_courante)
                     (*s_etat_processus).s_liste_variables[(*s_etat_processus)                      .variable_partagee, (*(*s_etat_processus)
                     .position_variable_courante].variable_partagee,                      .pointeur_variable_courante).origine) == d_faux)
                     (*s_etat_processus).s_liste_variables[(*s_etat_processus)  
                     .position_variable_courante].origine) == d_faux)  
             {              {
                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                         .s_liste_variables_partagees).mutex)) != 0)                          .s_liste_variables_partagees).mutex)) != 0)
Line 1949  instruction_put(struct_processus *s_etat Line 1948  instruction_put(struct_processus *s_etat
   
             if (variable_partagee == d_faux)              if (variable_partagee == d_faux)
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet =
                         .position_variable_courante].objet = s_objet_4;                          s_objet_4;
             }              }
             else              else
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet = NULL;
                         .position_variable_courante].objet = NULL;  
                 (*(*s_etat_processus).s_liste_variables_partagees).table                  (*(*s_etat_processus).s_liste_variables_partagees).table
                         [(*(*s_etat_processus).s_liste_variables_partagees)                          [(*(*s_etat_processus).s_liste_variables_partagees)
                         .position_variable].objet = s_objet_4;                          .position_variable].objet = s_objet_4;
Line 2546  instruction_put(struct_processus *s_etat Line 2544  instruction_put(struct_processus *s_etat
   
             if (variable_partagee == d_faux)              if (variable_partagee == d_faux)
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet =
                         .position_variable_courante].objet = s_objet_4;                          s_objet_4;
             }              }
             else              else
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet = NULL;
                         .position_variable_courante].objet = NULL;  
                 (*(*s_etat_processus).s_liste_variables_partagees).table                  (*(*s_etat_processus).s_liste_variables_partagees).table
                         [(*(*s_etat_processus).s_liste_variables_partagees)                          [(*(*s_etat_processus).s_liste_variables_partagees)
                         .position_variable].objet = s_objet_4;                          .position_variable].objet = s_objet_4;
Line 2661  instruction_put(struct_processus *s_etat Line 2658  instruction_put(struct_processus *s_etat
   
             if (variable_partagee == d_faux)              if (variable_partagee == d_faux)
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet =
                         .position_variable_courante].objet = s_objet_4;                          s_objet_4;
             }              }
             else              else
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet = NULL;
                         .position_variable_courante].objet = NULL;  
                 (*(*s_etat_processus).s_liste_variables_partagees).table                  (*(*s_etat_processus).s_liste_variables_partagees).table
                         [(*(*s_etat_processus).s_liste_variables_partagees)                          [(*(*s_etat_processus).s_liste_variables_partagees)
                         .position_variable].objet = s_objet_4;                          .position_variable].objet = s_objet_4;
Line 2825  instruction_put(struct_processus *s_etat Line 2821  instruction_put(struct_processus *s_etat
   
             if (variable_partagee == d_faux)              if (variable_partagee == d_faux)
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet =
                         .position_variable_courante].objet = s_objet_4;                          s_objet_4;
             }              }
             else              else
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet = NULL;
                         .position_variable_courante].objet = NULL;  
                 (*(*s_etat_processus).s_liste_variables_partagees).table                  (*(*s_etat_processus).s_liste_variables_partagees).table
                         [(*(*s_etat_processus).s_liste_variables_partagees)                          [(*(*s_etat_processus).s_liste_variables_partagees)
                         .position_variable].objet = s_objet_4;                          .position_variable].objet = s_objet_4;
Line 3907  instruction_puti(struct_processus *s_eta Line 3902  instruction_puti(struct_processus *s_eta
             return;              return;
         }          }
   
         if ((*s_etat_processus).s_liste_variables[(*s_etat_processus)          if ((*(*s_etat_processus).pointeur_variable_courante)
                 .position_variable_courante].variable_verrouillee == d_vrai)                  .variable_verrouillee == d_vrai)
         {          {
             (*s_etat_processus).erreur_execution = d_ex_variable_verrouillee;              (*s_etat_processus).erreur_execution = d_ex_variable_verrouillee;
   
Line 3919  instruction_puti(struct_processus *s_eta Line 3914  instruction_puti(struct_processus *s_eta
             return;              return;
         }          }
   
         s_objet_4 = (*s_etat_processus).s_liste_variables[(*s_etat_processus)          s_objet_4 = (*(*s_etat_processus).pointeur_variable_courante).objet;
                 .position_variable_courante].objet;  
   
         if (s_objet_4 == NULL)          if (s_objet_4 == NULL)
         {          {
Line 3932  instruction_puti(struct_processus *s_eta Line 3926  instruction_puti(struct_processus *s_eta
             }              }
   
             if (recherche_variable_partagee(s_etat_processus,              if (recherche_variable_partagee(s_etat_processus,
                     (*s_etat_processus).s_liste_variables[(*s_etat_processus)                      (*(*s_etat_processus).pointeur_variable_courante).nom,
                     .position_variable_courante].nom,                      (*(*s_etat_processus).pointeur_variable_courante)
                     (*s_etat_processus).s_liste_variables[(*s_etat_processus)                      .variable_partagee, (*(*s_etat_processus)
                     .position_variable_courante].variable_partagee,                      .pointeur_variable_courante).origine) == d_faux)
                     (*s_etat_processus).s_liste_variables[(*s_etat_processus)  
                     .position_variable_courante].origine) == d_faux)  
             {              {
                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                         .s_liste_variables_partagees).mutex)) != 0)                          .s_liste_variables_partagees).mutex)) != 0)
Line 4424  instruction_puti(struct_processus *s_eta Line 4416  instruction_puti(struct_processus *s_eta
   
             if (variable_partagee == d_faux)              if (variable_partagee == d_faux)
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet =
                         .position_variable_courante].objet = s_objet_4;                          s_objet_4;
             }              }
             else              else
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet = NULL;
                         .position_variable_courante].objet = NULL;  
                 (*(*s_etat_processus).s_liste_variables_partagees)                  (*(*s_etat_processus).s_liste_variables_partagees)
                         .table[(*(*s_etat_processus)                          .table[(*(*s_etat_processus)
                         .s_liste_variables_partagees).position_variable].objet                          .s_liste_variables_partagees).position_variable].objet
Line 5041  instruction_puti(struct_processus *s_eta Line 5032  instruction_puti(struct_processus *s_eta
   
             if (variable_partagee == d_faux)              if (variable_partagee == d_faux)
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet =
                         .position_variable_courante].objet = s_objet_4;                          s_objet_4;
             }              }
             else              else
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet = NULL;
                         .position_variable_courante].objet = NULL;  
                 (*(*s_etat_processus).s_liste_variables_partagees).table                  (*(*s_etat_processus).s_liste_variables_partagees).table
                         [(*(*s_etat_processus).s_liste_variables_partagees)                          [(*(*s_etat_processus).s_liste_variables_partagees)
                         .position_variable].objet = s_objet_4;                          .position_variable].objet = s_objet_4;
Line 5166  instruction_puti(struct_processus *s_eta Line 5156  instruction_puti(struct_processus *s_eta
   
             if (variable_partagee == d_faux)              if (variable_partagee == d_faux)
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet =
                         .position_variable_courante].objet = s_objet_4;                          s_objet_4;
             }              }
             else              else
             {              {
                 (*s_etat_processus).s_liste_variables[(*s_etat_processus)                  (*(*s_etat_processus).pointeur_variable_courante).objet = NULL;
                         .position_variable_courante].objet = NULL;  
                 (*(*s_etat_processus).s_liste_variables_partagees).table                  (*(*s_etat_processus).s_liste_variables_partagees).table
                         [(*(*s_etat_processus).s_liste_variables_partagees)                          [(*(*s_etat_processus).s_liste_variables_partagees)
                         .position_variable].objet = s_objet_4;                          .position_variable].objet = s_objet_4;

Removed from v.1.3  
changed lines
  Added in v.1.23


CVSweb interface <joel.bertrand@systella.fr>