Initial TIME support in debugger
authorEdouard Tisserant
Thu, 31 Mar 2011 19:11:16 +0200
changeset 254 28bd86c56793
parent 253 18988de676ac
child 255 86ef2244aef1
child 256 101c7f148b9a
Initial TIME support in debugger
lib/iec_std_lib.h
lib/iec_types.h
--- a/lib/iec_std_lib.h	Sun Mar 27 16:19:36 2011 +0200
+++ b/lib/iec_std_lib.h	Thu Mar 31 19:11:16 2011 +0200
@@ -148,7 +148,7 @@
 }
 
 
-static inline void __normalize_timespec (struct timespec *ts) {
+static inline void __normalize_timespec (IEC_TIMESPEC *ts) {
   if( ts->tv_nsec < -1000000000 || (( ts->tv_sec > 0 ) && ( ts->tv_nsec < 0 ))){
     ts->tv_sec--;
     ts->tv_nsec += 1000000000;
@@ -159,8 +159,8 @@
   }
 }
 
-static inline struct timespec __time_to_timespec(int sign, double mseconds, double seconds, double minutes, double hours, double days) {
-  struct timespec ts;
+static inline IEC_TIMESPEC __time_to_timespec(int sign, double mseconds, double seconds, double minutes, double hours, double days) {
+  IEC_TIMESPEC ts;
 
   /* sign is 1 for positive values, -1 for negative time... */
   long double total_sec = ((days*24 + hours)*60 + minutes)*60 + seconds + mseconds/1e3;
@@ -172,8 +172,8 @@
 }
 
 
-static inline struct timespec __tod_to_timespec(double seconds, double minutes, double hours) {
-  struct timespec ts;
+static inline IEC_TIMESPEC __tod_to_timespec(double seconds, double minutes, double hours) {
+  IEC_TIMESPEC ts;
 
   long double total_sec = (hours*60 + minutes)*60 + seconds;
   ts.tv_sec = (long int)total_sec;
@@ -182,8 +182,8 @@
   return ts;
 }
 
-static inline struct timespec __date_to_timespec(int day, int month, int year) {
-  struct timespec ts;
+static inline IEC_TIMESPEC __date_to_timespec(int day, int month, int year) {
+  IEC_TIMESPEC ts;
   struct tm broken_down_time;
   time_t epoch_seconds;
 
@@ -205,8 +205,8 @@
   return ts;
 }
 
-static inline struct timespec __dt_to_timespec(double seconds,  double minutes, double hours, int day, int month, int year) {
-  struct timespec ts;
+static inline IEC_TIMESPEC __dt_to_timespec(double seconds,  double minutes, double hours, int day, int month, int year) {
+  IEC_TIMESPEC ts;
   struct tm broken_down_time;
   time_t epoch_seconds;
 
--- a/lib/iec_types.h	Sun Mar 27 16:19:36 2011 +0200
+++ b/lib/iec_types.h	Thu Mar 31 19:11:16 2011 +0200
@@ -3,7 +3,6 @@
 
 #include <limits.h>
 #include <float.h>
-#include <time.h>
 #include <stdint.h>
 
 /*********************/
@@ -30,22 +29,17 @@
 typedef float    IEC_REAL;
 typedef double   IEC_LREAL;
 
-
-#if !defined __timespec_defined && !defined __time_t_defined
-# define __timespec_defined     1
-
-struct timespec
-  {
+#pragma pack(push,1)
+typedef struct {
     long int tv_sec;            /* Seconds.  */
     long int tv_nsec;           /* Nanoseconds.  */
-  };
+}IEC_TIMESPEC;
+#pragma pack(pop)
 
-#endif
-
-typedef struct timespec IEC_TIME;
-typedef struct timespec IEC_DATE;
-typedef struct timespec IEC_DT;
-typedef struct timespec IEC_TOD;
+typedef IEC_TIMESPEC IEC_TIME;
+typedef IEC_TIMESPEC IEC_DATE;
+typedef IEC_TIMESPEC IEC_DT;
+typedef IEC_TIMESPEC IEC_TOD;
 
 #ifndef STR_MAX_LEN
 #define STR_MAX_LEN 126
@@ -56,9 +50,11 @@
 #endif
 
 typedef STR_LEN_TYPE __strlen_t;
+#pragma pack(push,1)
 typedef struct {
     __strlen_t len;
     uint8_t body[STR_MAX_LEN];
 } IEC_STRING;
+#pragma pack(pop)
 
 #endif /*IEC_TYPES_H*/