File:  [local] / rpl / src / rpltypes.h
Revision 1.20: download - view: text, annotated - select for diffs - revision graph
Tue Jun 21 15:26:35 2011 UTC (12 years, 10 months ago) by bertrand
Branches: MAIN
CVS tags: HEAD
Correction d'une réinitialisation sauvage de la pile des variables par niveau
dans la copie de la structure de description du processus. Cela corrige
la fonction SPAWN qui échouait sur un segmentation fault car la pile des
variables par niveau était vide alors même que l'arbre des variables contenait
bien les variables. Passage à la prerelease 2.

    1: /*
    2: ================================================================================
    3:   RPL/2 (R) version 4.1.0.prerelease.2
    4:   Copyright (C) 1989-2011 Dr. BERTRAND Joël
    5: 
    6:   This file is part of RPL/2.
    7: 
    8:   RPL/2 is free software; you can redistribute it and/or modify it
    9:   under the terms of the CeCILL V2 License as published by the french
   10:   CEA, CNRS and INRIA.
   11:  
   12:   RPL/2 is distributed in the hope that it will be useful, but WITHOUT
   13:   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   14:   FITNESS FOR A PARTICULAR PURPOSE.  See the CeCILL V2 License
   15:   for more details.
   16:  
   17:   You should have received a copy of the CeCILL License
   18:   along with RPL/2. If not, write to info@cecill.info.
   19: ================================================================================
   20: */
   21: 
   22: 
   23: #ifndef INCLUSION_RPLTYPES
   24: #   define INCLUSION_RPLTYPES
   25: 
   26: #   ifdef RPLCONFIG
   27: #       define HAVE_CONFIG_H
   28: #   endif
   29: 
   30: #   ifdef HAVE_CONFIG_H
   31: 
   32: /*
   33: --------------------------------------------------------------------------------
   34:   Configuratoin héritée du script configure
   35: --------------------------------------------------------------------------------
   36: */
   37: 
   38: #       include "rplconfig.h"
   39: 
   40:     /*
   41:      * Entiers
   42:      */
   43: 
   44: #       if (SIZEOF_CHAR == 1)
   45: #           ifndef _INT1
   46: #               define _INT1
   47:                 typedef signed char             integer1;
   48:                 typedef unsigned char           logical1;
   49:                 typedef logical1                unsigned_integer1;
   50: #           endif
   51: #       endif
   52: 
   53: #       if (SIZEOF_SHORT_INT == 2)
   54: #           ifndef _INT2
   55: #               define _INT2
   56:                 typedef short int               integer2;
   57:                 typedef unsigned short int      logical2;
   58:                 typedef logical2                unsigned_integer2;
   59: #           endif
   60: #       endif
   61: 
   62: #       if (SIZEOF_INT == 4)
   63: #           ifndef _INT4
   64: #               define _INT4
   65:                 typedef int                     integer4;
   66:                 typedef unsigned int            logical4;
   67:                 typedef logical4                unsigned_integer4;
   68: #           endif
   69: #       endif
   70: 
   71: #       if (SIZEOF_LONG_INT == 4)
   72: #           ifndef _INT4
   73: #               define _INT4
   74:                 typedef long int                integer4;
   75:                 typedef unsigned long int       logical4;
   76:                 typedef logical4                unsigned_integer4;
   77: #           endif
   78: #       endif
   79: 
   80: #       if (SIZEOF_LONG_INT == 8)
   81: #           ifndef _INT8
   82: #               define _INT8
   83:                 typedef long long int           integer8;
   84:                 typedef unsigned long long int  logical8;
   85:                 typedef logical8                unsigned_integer8;
   86: #           endif
   87: #       endif
   88: 
   89: #       if (SIZEOF_LONG_LONG_INT == 8)
   90: #           ifndef _INT8
   91: #               define _INT8
   92:                 typedef long long int           integer8;
   93:                 typedef unsigned long long int  logical8;
   94:                 typedef logical8                unsigned_integer8;
   95: #           endif
   96: #       endif
   97: 
   98: #       if (SIZEOF_FLOAT == 4)
   99: #           ifndef _REAL4
  100: #               define _REAL4
  101:                 typedef float                   real4;
  102: #           endif
  103: #       endif
  104: 
  105: #       if (SIZEOF_DOUBLE == 8)
  106: #           ifndef _REAL8
  107: #               define _REAL8
  108:                 typedef double                  real8;
  109: #           endif
  110: #       endif
  111: 
  112: #       if (SIZEOF_LONG_DOUBLE == 8)
  113: #           ifndef _REAL8
  114: #               define _REAL8
  115:                 typedef long double             real8;
  116: #           endif
  117: #       endif
  118: 
  119: #       ifndef _INT1
  120: #           error "INTEGER*1 is not defined !"
  121: #       endif
  122: 
  123: #       ifndef _INT2
  124: #           error "INTEGER*2 is not defined !"
  125: #       endif
  126: 
  127: #       ifndef _INT4
  128: #           error "INTEGER*4 is not defined !"
  129: #       endif
  130: 
  131: #       ifndef _INT8
  132: #           error "INTEGER*8 is not defined !"
  133: #       endif
  134: 
  135: #       ifndef _REAL4
  136: #           error "REAL*4 is not defined !"
  137: #       endif
  138: 
  139: #       ifndef _REAL8
  140: #           error "REAL*8 is not defined !"
  141: #       endif
  142: #   else
  143: 
  144: /*
  145: --------------------------------------------------------------------------------
  146:   Configuration par défaut en absence du fichier rplconfig.h
  147: --------------------------------------------------------------------------------
  148: */
  149: 
  150: #       warning "rplconfig.h header not found !"
  151: 
  152:         typedef unsigned char               logical1;
  153:         typedef unsigned short int          logical2;
  154:         typedef unsigned int                logical4;
  155:         typedef unsigned long long int      logical8;
  156: 
  157:         typedef signed char                 integer1;
  158:         typedef short int                   integer2;
  159:         typedef int                         integer4;
  160:         typedef long long int               integer8;
  161: 
  162:         typedef logical1                    unsigned_integer1;
  163:         typedef logical2                    unsigned_integer2;
  164:         typedef logical4                    unsigned_integer4;
  165:         typedef logical8                    unsigned_integer8;
  166: 
  167:         typedef float                       real4;
  168:         typedef double                      real8;
  169: #   endif
  170: 
  171:     typedef struct complex8
  172:     {
  173:         real4                               partie_reelle;
  174:         real4                               partie_imaginaire;
  175:     } struct_complexe8;
  176: 
  177:     typedef struct complex16
  178:     {
  179:         real8                               partie_reelle;
  180:         real8                               partie_imaginaire;
  181:     } struct_complexe16;
  182: 
  183:     typedef struct_complexe8                complex8;
  184:     typedef struct_complexe16               complex16;
  185: #endif
  186: 
  187: // vim: ts=4

CVSweb interface <joel.bertrand@systella.fr>