13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <string.h> 23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <time.h> 33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <sys/time.h> 43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "xpl_Time.h" 53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __cplusplus 73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyextern "C" { 83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyXPL_CLK_CLOCK_T XPL_CLK_GetClock() 113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return (XPL_CLK_CLOCK_T)time(NULL); 133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyXPL_CLK_LONG_CLOCK_T XPL_CLK_GetClockMs() 163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby struct timeval tv1; 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby gettimeofday( &tv1, NULL ); 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return (XPL_CLK_LONG_CLOCK_T)(tv1.tv_usec + (tv1.tv_sec * 1000000 )); 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyXPL_CLK_RET_STATUS_T XPL_CLK_GetTime(XPL_CLK_TM_T *parsed_time) 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return XPL_CLK_RET_SUCCESS; 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyXPL_CLK_RET_STATUS_T XPL_CLK_UnpackTime(XPL_CLK_CLOCK_T clock, XPL_CLK_TM_T *parsed_clock) 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby struct tm t; 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby time_t tt = clock; 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( gmtime_r(&tt, &t) != NULL ) 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby parsed_clock->tm_sec = t.tm_sec; 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby parsed_clock->tm_min = t.tm_min; 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby parsed_clock->tm_hour = t.tm_hour; 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby parsed_clock->tm_mday = t.tm_mday; 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby parsed_clock->tm_mon = t.tm_mon; 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby parsed_clock->tm_year = t.tm_year; 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby parsed_clock->tm_wday = t.tm_wday; 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby parsed_clock->tm_yday = t.tm_yday; 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby parsed_clock->tm_isdst = t.tm_isdst; 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return XPL_CLK_RET_SUCCESS; 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return XPL_CLK_RET_FAIL; 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyXPL_CLK_CLOCK_T XPL_CLK_PackTime(XPL_CLK_TM_T *parsed_clock) 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby struct tm t; 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby memset(&t, 0, sizeof(struct tm)); 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby t.tm_sec = parsed_clock->tm_sec; 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby t.tm_min = parsed_clock->tm_min; 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby t.tm_hour = parsed_clock->tm_hour; 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby t.tm_mday = parsed_clock->tm_mday; 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby t.tm_mon = parsed_clock->tm_mon; 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby t.tm_year = parsed_clock->tm_year; 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby t.tm_wday = parsed_clock->tm_wday; 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby t.tm_yday = parsed_clock->tm_yday; 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby t.tm_isdst = parsed_clock->tm_isdst; 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return (XPL_CLK_CLOCK_T)mktime(&t); 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyINT32 XPL_CLK_GetTimeZone(void) 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //tzset(); 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //return (INT32)timezone; 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return 0; 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Starts timer */ 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyXPL_TIMER_HANDLE_T XPL_CLK_StartTimer(XPL_PORT_T port, UINT32 interval, XPL_CLK_TIMER_CBACK reply_timer) 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return XPL_CLK_HANDLE_INVALID; 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Stops timer */ 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyXPL_CLK_RET_STATUS_T XPL_CLK_StopTimer(XPL_TIMER_HANDLE_T handle) 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return XPL_CLK_RET_SUCCESS; 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __cplusplus 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 91