stage4/generate_cc/types.h
changeset 1 5d893a68be6e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stage4/generate_cc/types.h	Wed Jan 31 16:00:18 2007 +0100
@@ -0,0 +1,73 @@
+/*
+ * (c) 2000 Jiri Baum
+ *          Mario de Sousa
+ *
+ * Offered to the public under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details.
+ *
+ * This code is made available on the understanding that it will not be
+ * used in safety-critical situations without a full and competent review.
+ */
+
+
+#ifndef __PLC_TYPES_H
+#define __PLC_TYPES_H
+
+#include <limits.h>
+#include <float.h>   /* some limits related to floats are located here (?) */
+
+
+/*
+ * This will need to be conditional on the arquitecture or something.
+ * Anyone know where we can snarf the relevant magic easily?
+ */
+typedef double                 f64; /* 64-bit floating point   */
+typedef float                  f32; /* 32-bit floating point   */
+
+typedef unsigned long long int u64; /* 64-bit unsigned integer */
+typedef long long int          i64; /* 64-bit signed integer   */
+typedef unsigned int           u32; /* 32-bit unsigned integer */
+typedef int                    i32; /* 32-bit signed integer   */
+typedef unsigned short int     u16; /* 16-bit unsigned integer */
+typedef short int              i16; /* 16-bit signed integer   */
+typedef unsigned char          u8;  /*  8-bit unsigned integer */
+typedef signed char            i8;  /*  8-bit signed integer   */
+
+/* some platforms seem to be missing <float.h> with the definition of FLT_MAX */
+#ifndef FLT_MAX
+  /* this is the minimum value guaranteed by ANSI C++           */
+  /* does anybody know the minimum value guaranteed for ANSI C ? */
+#define FLT_MAX 1E+37
+#endif
+#ifndef FLT_MIN
+  /* this is the minimum value guaranteed by ANSI C++           */
+  /* does anybody know the minimum value guaranteed for ANSI C ? */
+#define FLT_MIN 1E-37
+#endif
+
+#define f32_MAX FLT_MAX
+#define f32_MIN FLT_MIN
+
+#define u32_MAX UINT_MAX
+#define u32_MIN 0
+#define i32_MAX INT_MAX
+#define i32_MIN INT_MIN
+
+#define u16_MAX USHRT_MAX
+#define u16_MIN 0
+#define i16_MAX SHRT_MAX
+#define i16_MIN SHRT_MIN
+
+#define u8_MAX UCHAR_MAX
+#define u8_MIN 0
+#define i8_MAX SCHAR_MAX
+#define i8_MIN SCHAR_MIN
+
+#endif /* __PLC_TYPES_H */
+