Exemple #1
0
	int win_gettimeofday(win_time_val_t *tv)
	{
		SYSTEMTIME st;
		FILETIME ft;
		LARGE_INTEGER li;
		static char get_base_time_flag = 0;

		if (get_base_time_flag == 0)
		{
			get_base_time(&base_time);
		}

		/* Standard Win32 GetLocalTime */
		GetLocalTime(&st);
		SystemTimeToFileTime(&st, &ft);

		li.LowPart = ft.dwLowDateTime;
		li.HighPart = ft.dwHighDateTime;
		li.QuadPart /= SECS_TO_FT_MULT;
		li.QuadPart -= base_time.QuadPart;

		tv->tv_sec = li.LowPart;
		tv->tv_usec = st.wMilliseconds;

		return 0;
	}
Exemple #2
0
pj_status_t pj_gettimeofday(pj_time_val *tv)
{
#ifdef WINCE_TIME
    pj_timestamp tick;
    pj_uint64_t msec_elapsed;
#else
    SYSTEMTIME st;
    FILETIME ft;
    LARGE_INTEGER li;
#endif
    pj_status_t status;

    if (base_time.QuadPart == 0) {
	status = get_base_time();
	if (status != PJ_SUCCESS)
	    return status;
    }

#ifdef WINCE_TIME
    do {
	status = pj_get_timestamp(&tick);
	if (status != PJ_SUCCESS)
	    return status;

	if (tick.u64 - g_last_update.u64 >= g_update_period) {
	    pj_enter_critical_section();
	    if (tick.u64 - g_last_update.u64 >= g_update_period) {
		g_last_update.u64 = tick.u64;
		check_system_time(tick.u64 - g_start_tick.u64);
	    }
	    pj_leave_critical_section();
	} else {
	    break;
	}
    } while (1);

    msec_elapsed = pj_elapsed_msec64(&g_start_tick, &tick);

    tv->sec = (long)(g_start_time.QuadPart + msec_elapsed/1000);
    tv->msec = (long)(msec_elapsed % 1000);
#else
    /* Standard Win32 GetLocalTime */
    GetLocalTime(&st);
    SystemTimeToFileTime(&st, &ft);

    li.LowPart = ft.dwLowDateTime;
    li.HighPart = ft.dwHighDateTime;
    li.QuadPart /= SECS_TO_FT_MULT;
    li.QuadPart -= base_time.QuadPart;

    tv->sec = li.LowPart;
    tv->msec = st.wMilliseconds;
#endif	/* WINCE_TIME */

    return PJ_SUCCESS;
}
Exemple #3
0
PJ_DEF(pj_status_t) pj_gettimeofday(pj_time_val *tv)
{
    SYSTEMTIME st;
    FILETIME ft;
    LARGE_INTEGER li;

    if (base_time.QuadPart == 0)
	get_base_time();

    GetLocalTime(&st);
    SystemTimeToFileTime(&st, &ft);

    li.LowPart = ft.dwLowDateTime;
    li.HighPart = ft.dwHighDateTime;
    li.QuadPart /= SECS_TO_FT_MULT;
    li.QuadPart -= base_time.QuadPart;

    tv->sec = li.LowPart;
    tv->msec = st.wMilliseconds;

    return PJ_SUCCESS;
}
Exemple #4
0
inline uint64_t cq_count(countque_t *cqi)
{
    time_t base_time = get_base_time(cqi->tic_per_sec);
    cq_adjust(cqi, base_time);
    return cqi->count;
}