--- 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*/