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