# HG changeset patch # User Edouard Tisserant # Date 1301916339 -7200 # Node ID f1674941c3adc21c0a69628c36d330022fd53554 # Parent 101c7f148b9aba263d33eb17804bb15cbc79873a# Parent 98fc461e18880a36f67672869cdc6f25068234c0 Merge with changes from Mario diff -r 98fc461e1888 -r f1674941c3ad lib/iec_std_lib.h --- 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; diff -r 98fc461e1888 -r f1674941c3ad lib/iec_types.h --- 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 #include -#include #include /*********************/ @@ -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*/