stage4/generate_c/types.h
author Mario de Sousa <msousa@fe.up.pt>
Fri, 20 Apr 2018 17:38:09 +0100
changeset 1071 7fd69f29320a
parent 70 e1f0ebd2d9ec
permissions -rwxr-xr-x
fix backup/restore functions: now also backup/restore programs instantiated to run inside tasks.
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     1
/*
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     2
 * (c) 2000 Jiri Baum
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     3
 *          Mario de Sousa
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     4
 *
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     5
 * Offered to the public under the terms of the GNU General Public License
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     6
 * as published by the Free Software Foundation; either version 2 of the
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     7
 * License, or (at your option) any later version.
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     8
 *
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful, but
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    10
 * WITHOUT ANY WARRANTY; without even the implied warranty of
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    12
 * Public License for more details.
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    13
 *
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    14
 * This code is made available on the understanding that it will not be
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    15
 * used in safety-critical situations without a full and competent review.
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    16
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    17
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    18
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    19
#ifndef __PLC_TYPES_H
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    20
#define __PLC_TYPES_H
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    21
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    22
#include <limits.h>
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    23
#include <float.h>   /* some limits related to floats are located here (?) */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    24
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    25
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    26
/*
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    27
 * This will need to be conditional on the arquitecture or something.
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    28
 * Anyone know where we can snarf the relevant magic easily?
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    29
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    30
typedef double                 f64; /* 64-bit floating point   */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    31
typedef float                  f32; /* 32-bit floating point   */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    32
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    33
typedef unsigned long long int u64; /* 64-bit unsigned integer */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    34
typedef long long int          i64; /* 64-bit signed integer   */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    35
typedef unsigned int           u32; /* 32-bit unsigned integer */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    36
typedef int                    i32; /* 32-bit signed integer   */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    37
typedef unsigned short int     u16; /* 16-bit unsigned integer */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    38
typedef short int              i16; /* 16-bit signed integer   */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    39
typedef unsigned char          u8;  /*  8-bit unsigned integer */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    40
typedef signed char            i8;  /*  8-bit signed integer   */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    41
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    42
/* some platforms seem to be missing <float.h> with the definition of FLT_MAX */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    43
#ifndef FLT_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    44
  /* this is the minimum value guaranteed by ANSI C++           */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    45
  /* does anybody know the minimum value guaranteed for ANSI C ? */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    46
#define FLT_MAX 1E+37
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    47
#endif
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    48
#ifndef FLT_MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    49
  /* this is the minimum value guaranteed by ANSI C++           */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    50
  /* does anybody know the minimum value guaranteed for ANSI C ? */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    51
#define FLT_MIN 1E-37
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    52
#endif
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    53
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    54
#define f32_MAX FLT_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    55
#define f32_MIN FLT_MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    56
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    57
#define u32_MAX UINT_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    58
#define u32_MIN 0
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    59
#define i32_MAX INT_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    60
#define i32_MIN INT_MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    61
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    62
#define u16_MAX USHRT_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    63
#define u16_MIN 0
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    64
#define i16_MAX SHRT_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    65
#define i16_MIN SHRT_MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    66
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    67
#define u8_MAX UCHAR_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    68
#define u8_MIN 0
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    69
#define i8_MAX SCHAR_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    70
#define i8_MIN SCHAR_MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    71
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    72
#endif /* __PLC_TYPES_H */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    73