Diff for /rpl/src/instructions_s1.c between versions 1.64 and 1.65

version 1.64, 2013/03/20 17:11:45 version 1.65, 2013/03/21 11:30:30
Line 147  instruction_sq(struct_processus *s_etat_ Line 147  instruction_sq(struct_processus *s_etat_
     struct_objet                    *s_objet_argument;      struct_objet                    *s_objet_argument;
     struct_objet                    *s_objet_resultat;      struct_objet                    *s_objet_resultat;
   
     unsigned long                   i;      integer8                        i;
     unsigned long                   j;      integer8                        j;
     unsigned long                   k;      integer8                        k;
   
     void                            *accumulateur;      void                            *accumulateur;
   
Line 310  instruction_sq(struct_processus *s_etat_ Line 310  instruction_sq(struct_processus *s_etat_
                 .objet))).nombre_colonnes;                  .objet))).nombre_colonnes;
   
         if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau =          if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau =
                 malloc((*(((struct_matrice *) (*s_objet_resultat)                  malloc(((size_t) (*(((struct_matrice *) (*s_objet_resultat)
                 .objet))).nombre_lignes * sizeof(integer8 *))) == NULL)                  .objet))).nombre_lignes) * sizeof(integer8 *))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
Line 323  instruction_sq(struct_processus *s_etat_ Line 323  instruction_sq(struct_processus *s_etat_
                 .objet))).nombre_lignes; i++)                  .objet))).nombre_lignes; i++)
         {          {
             if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau[i] =              if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau[i] =
                     malloc((*(((struct_matrice *) (*s_objet_resultat)                      malloc(((size_t) (*(((struct_matrice *) (*s_objet_resultat)
                     .objet))).nombre_colonnes * sizeof(integer8))) == NULL)                      .objet))).nombre_colonnes) * sizeof(integer8))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return;                  return;
Line 366  instruction_sq(struct_processus *s_etat_ Line 366  instruction_sq(struct_processus *s_etat_
             (*s_objet_resultat).type = MRL;              (*s_objet_resultat).type = MRL;
             (*((struct_matrice *) (*s_objet_resultat).objet)).type = 'R';              (*((struct_matrice *) (*s_objet_resultat).objet)).type = 'R';
   
             if ((accumulateur = malloc((*(((struct_matrice *)              if ((accumulateur = malloc(((size_t) (*(((struct_matrice *)
                     (*s_objet_argument).objet))).nombre_colonnes *                      (*s_objet_argument).objet))).nombre_colonnes) *
                     sizeof(real8))) == NULL)                      sizeof(real8))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
Line 381  instruction_sq(struct_processus *s_etat_ Line 381  instruction_sq(struct_processus *s_etat_
                         (*s_objet_resultat).objet)).tableau)[i]);                          (*s_objet_resultat).objet)).tableau)[i]);
   
                 if (((*((struct_matrice *) (*s_objet_resultat).objet))                  if (((*((struct_matrice *) (*s_objet_resultat).objet))
                         .tableau[i] = malloc((*(((struct_matrice *)                          .tableau[i] = malloc(((size_t) (*(((struct_matrice *)
                         (*s_objet_resultat).objet))).nombre_colonnes *                          (*s_objet_resultat).objet))).nombre_colonnes) *
                         sizeof(real8))) == NULL)                          sizeof(real8))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 457  instruction_sq(struct_processus *s_etat_ Line 457  instruction_sq(struct_processus *s_etat_
                 .objet))).nombre_colonnes;                  .objet))).nombre_colonnes;
   
         if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau =          if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau =
                 malloc((*(((struct_matrice *) (*s_objet_resultat)                  malloc(((size_t) (*(((struct_matrice *) (*s_objet_resultat)
                 .objet))).nombre_lignes * sizeof(real8 *))) == NULL)                  .objet))).nombre_lignes) * sizeof(real8 *))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
         }          }
   
         if ((accumulateur = malloc((*(((struct_matrice *)          if ((accumulateur = malloc(((size_t) (*(((struct_matrice *)
                 (*s_objet_argument).objet))).nombre_colonnes * sizeof(real8)))                  (*s_objet_argument).objet))).nombre_colonnes) * sizeof(real8)))
                 == NULL)                  == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
Line 476  instruction_sq(struct_processus *s_etat_ Line 476  instruction_sq(struct_processus *s_etat_
                 .objet))).nombre_lignes; i++)                  .objet))).nombre_lignes; i++)
         {          {
             if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau[i] =              if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau[i] =
                     malloc((*(((struct_matrice *) (*s_objet_resultat)                      malloc(((size_t) (*(((struct_matrice *) (*s_objet_resultat)
                     .objet))).nombre_colonnes * sizeof(real8))) == NULL)                      .objet))).nombre_colonnes) * sizeof(real8))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return;                  return;
Line 549  instruction_sq(struct_processus *s_etat_ Line 549  instruction_sq(struct_processus *s_etat_
                 .objet))).nombre_colonnes;                  .objet))).nombre_colonnes;
   
         if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau =          if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau =
                 malloc((*(((struct_matrice *) (*s_objet_resultat)                  malloc(((size_t) (*(((struct_matrice *) (*s_objet_resultat)
                 .objet))).nombre_lignes * sizeof(struct_complexe16 *))) == NULL)                  .objet))).nombre_lignes) * sizeof(struct_complexe16 *)))
                   == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
         }          }
   
         if ((accumulateur = malloc((*(((struct_matrice *)          if ((accumulateur = malloc(((size_t) (*(((struct_matrice *)
                 (*s_objet_argument).objet))).nombre_colonnes *                  (*s_objet_argument).objet))).nombre_colonnes) *
                 sizeof(complex16))) == NULL)                  sizeof(complex16))) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
Line 568  instruction_sq(struct_processus *s_etat_ Line 569  instruction_sq(struct_processus *s_etat_
                 .objet))).nombre_lignes; i++)                  .objet))).nombre_lignes; i++)
         {          {
             if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau[i] =              if (((*((struct_matrice *) (*s_objet_resultat).objet)).tableau[i] =
                     malloc((*(((struct_matrice *) (*s_objet_resultat)                      malloc(((size_t) (*(((struct_matrice *) (*s_objet_resultat)
                     .objet))).nombre_colonnes * sizeof(struct_complexe16)))                      .objet))).nombre_colonnes) * sizeof(struct_complexe16)))
                     == NULL)                      == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
Line 1216  instruction_same(struct_processus *s_eta Line 1217  instruction_same(struct_processus *s_eta
   
     logical1                    difference;      logical1                    difference;
   
     unsigned long               i;      integer8                    i;
     unsigned long               j;      integer8                    j;
     unsigned long               nombre_elements;      integer8                    nombre_elements;
   
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
   
Line 3088  instruction_stof(struct_processus *s_eta Line 3089  instruction_stof(struct_processus *s_eta
   
         for(i = 1; i <= 64; i++)          for(i = 1; i <= 64; i++)
         {          {
             indice_drapeau = i - 1;              indice_drapeau = (unsigned char) (i - 1);
             indice_bloc = indice_drapeau / taille_bloc;              indice_bloc = indice_drapeau / taille_bloc;
             indice_bit = indice_drapeau % taille_bloc;              indice_bit = indice_drapeau % taille_bloc;
             masque = ((t_8_bits) 1) << (taille_bloc - indice_bit - 1);              masque = (t_8_bits) (((t_8_bits) 1) <<
                       (taille_bloc - indice_bit - 1));
   
             if (((*((logical8 *) (*s_objet).objet)) &              if (((*((logical8 *) (*s_objet).objet)) &
                     ((logical8) 1) << indice_drapeau) != 0)                      ((logical8) 1) << indice_drapeau) != 0)
Line 3412  instruction_syseval(struct_processus *s_ Line 3414  instruction_syseval(struct_processus *s_
     unsigned char               *registre_programme;      unsigned char               *registre_programme;
     unsigned char               *tampon;      unsigned char               *tampon;
   
     unsigned long               longueur_lecture;      integer8                    longueur_lecture;
     unsigned long               longueur_tampon;      integer8                    longueur_tampon;
     unsigned long               nombre_iterations;      integer8                    nombre_iterations;
     unsigned long               nombre_lignes;      integer8                    nombre_lignes;
     unsigned long               pointeur;      integer8                    pointeur;
     unsigned long               registre_position_courante;      integer8                    registre_position_courante;
   
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
   
Line 3633  instruction_syseval(struct_processus *s_ Line 3635  instruction_syseval(struct_processus *s_
         (*s_etat_processus).definitions_chainees = registre_programme;          (*s_etat_processus).definitions_chainees = registre_programme;
         (*s_etat_processus).position_courante = registre_position_courante;          (*s_etat_processus).position_courante = registre_position_courante;
   
         if ((arguments = malloc(nombre_arguments * sizeof(char *))) == NULL)          if ((arguments = malloc(((size_t) nombre_arguments) * sizeof(char *)))
                   == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return;              return;
Line 3863  instruction_syseval(struct_processus *s_ Line 3866  instruction_syseval(struct_processus *s_
   
                     while(write_atomic(s_etat_processus,                      while(write_atomic(s_etat_processus,
                             pipes_entree[1], ligne,                              pipes_entree[1], ligne,
                             longueur_ecriture) != longueur_ecriture)                              (size_t) longueur_ecriture) != longueur_ecriture)
                     {                      {
 #                       ifndef SEMAPHORES_NOMMES  #                       ifndef SEMAPHORES_NOMMES
                             while(sem_wait(&((*s_etat_processus)                              while(sem_wait(&((*s_etat_processus)
Line 4017  instruction_syseval(struct_processus *s_ Line 4020  instruction_syseval(struct_processus *s_
             pointeur = 0;              pointeur = 0;
             nombre_iterations = 1;              nombre_iterations = 1;
   
             if ((tampon = malloc((longueur_lecture + 1) *              if ((tampon = malloc(((size_t) (longueur_lecture + 1)) *
                     sizeof(unsigned char))) == NULL)                      sizeof(unsigned char))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
Line 4036  instruction_syseval(struct_processus *s_ Line 4039  instruction_syseval(struct_processus *s_
                 return;                  return;
             }              }
   
             while((ios = read_atomic(s_etat_processus,              while((ios = (int) read_atomic(s_etat_processus,
                     pipes_sortie[0], &(tampon[pointeur]),                      pipes_sortie[0], &(tampon[pointeur]),
                     longueur_lecture)) > 0)                      (size_t) longueur_lecture)) > 0)
             {              {
 #               ifndef SEMAPHORES_NOMMES  #               ifndef SEMAPHORES_NOMMES
                     while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)                      while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
Line 4055  instruction_syseval(struct_processus *s_ Line 4058  instruction_syseval(struct_processus *s_
                 nombre_iterations++;                  nombre_iterations++;
   
                 if ((tampon = realloc(tampon,                  if ((tampon = realloc(tampon,
                         ((nombre_iterations * longueur_lecture) + 1) *                          ((size_t) ((nombre_iterations * longueur_lecture) + 1))
                         sizeof(unsigned char))) == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
                             d_es_allocation_memoire;                              d_es_allocation_memoire;
Line 4103  instruction_syseval(struct_processus *s_ Line 4106  instruction_syseval(struct_processus *s_
              * Transformation de la chaîne en liste               * Transformation de la chaîne en liste
              */               */
   
             longueur_tampon = strlen(tampon);              longueur_tampon = (integer8) strlen(tampon);
   
             for(i = 0, ptr = tampon, nombre_lignes = 0;              for(i = 0, ptr = tampon, nombre_lignes = 0;
                     i < (long) longueur_tampon; i++, ptr++)                      i < (long) longueur_tampon; i++, ptr++)
Line 4152  instruction_syseval(struct_processus *s_ Line 4155  instruction_syseval(struct_processus *s_
   
                     if (((*(*l_element_courant).donnee).objet =                      if (((*(*l_element_courant).donnee).objet =
                             analyse_flux(s_etat_processus, ptr,                              analyse_flux(s_etat_processus, ptr,
                             strlen(ptr))) == NULL)                              (integer8) strlen(ptr))) == NULL)
                     {                      {
                         (*s_etat_processus).erreur_systeme =                          (*s_etat_processus).erreur_systeme =
                                 d_es_allocation_memoire;                                  d_es_allocation_memoire;
Line 4876  instruction_sci(struct_processus *s_etat Line 4879  instruction_sci(struct_processus *s_etat
                 return;                  return;
             }              }
   
             (*((logical8 *) (*s_objet).objet)) =              (*((logical8 *) (*s_objet).objet)) = (logical8)
                     (*((integer8 *) (*s_objet_argument).objet));                      (*((integer8 *) (*s_objet_argument).objet));
   
             i43 = test_cfsf(s_etat_processus, 43);              i43 = test_cfsf(s_etat_processus, 43);
Line 4914  instruction_sci(struct_processus *s_etat Line 4917  instruction_sci(struct_processus *s_etat
             {              {
                 if (valeur_binaire[i] == '0')                  if (valeur_binaire[i] == '0')
                 {                  {
                     cf(s_etat_processus, j++);                      cf(s_etat_processus, (unsigned char) j++);
                 }                  }
                 else                  else
                 {                  {
                     sf(s_etat_processus, j++);                      sf(s_etat_processus, (unsigned char) j++);
                 }                  }
             }              }
   
             for(; j <= 56; cf(s_etat_processus, j++));              for(; j <= 56; cf(s_etat_processus, (unsigned char) j++));
   
             cf(s_etat_processus, 49);              cf(s_etat_processus, 49);
             sf(s_etat_processus, 50);              sf(s_etat_processus, 50);

Removed from v.1.64  
changed lines
  Added in v.1.65


CVSweb interface <joel.bertrand@systella.fr>