Merge with changes from Mario
authorEdouard Tisserant
Mon, 04 Apr 2011 13:25:39 +0200
changeset 270 f1674941c3ad
parent 256 101c7f148b9a (diff)
parent 269 98fc461e1888 (current diff)
child 271 4f281513277f
Merge with changes from Mario
--- a/lib/iec_std_lib.h	Mon Apr 04 11:19:48 2011 +0100
+++ b/lib/iec_std_lib.h	Mon Apr 04 13:25:39 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	Mon Apr 04 11:19:48 2011 +0100
+++ b/lib/iec_types.h	Mon Apr 04 13:25:39 2011 +0200
@@ -3,7 +3,6 @@
 
 #include <limits.h>
 #include <float.h>
-#include <time.h>
 #include <stdint.h>
 
 /*********************/
@@ -30,22 +29,15 @@
 typedef float    IEC_REAL;
 typedef double   IEC_LREAL;
 
-
-#if !defined __timespec_defined && !defined __time_t_defined
-# define __timespec_defined     1
-
-struct timespec
-  {
+typedef struct {
     long int tv_sec;            /* Seconds.  */
     long int tv_nsec;           /* Nanoseconds.  */
-  };
+}__attribute__((packed)) IEC_TIMESPEC;
 
-#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
@@ -59,6 +51,6 @@
 typedef struct {
     __strlen_t len;
     uint8_t body[STR_MAX_LEN];
-} IEC_STRING;
+} __attribute__((packed)) IEC_STRING;
 
 #endif /*IEC_TYPES_H*/