Home | History | Annotate | Download | only in src

Lines Matching refs:timer

44  * Creates a new timer object.
46 ESR_ReturnCode PTimerCreate(PTimer **timer)
50 if (timer == NULL)
65 *timer = tmp;
69 ESR_ReturnCode PTimerDestroy(PTimer *timer)
71 if (timer == NULL) return ESR_INVALID_ARGUMENT;
72 FREE(timer);
77 * Starts the timer. This sets the reference time from which all new elapsed
79 * useful to pause the timer.
81 ESR_ReturnCode PTimerStart(PTimer *timer)
83 if (timer == NULL) return ESR_INVALID_ARGUMENT;
84 return (QueryPerformanceCounter(&timer->RefTime) ?
90 * Stops the timer.
92 ESR_ReturnCode PTimerStop(PTimer *timer)
94 if (timer == NULL) return ESR_INVALID_ARGUMENT;
95 if (timer->RefTime.QuadPart != 0)
99 timer->elapsed.QuadPart += now.QuadPart - timer->RefTime.QuadPart;
100 timer->RefTime.QuadPart = 0;
106 * Returns the timer elapsed time. If the Timer is in the stopped state,
108 * the Timer is in the started state, successive calls will return the
111 ESR_ReturnCode PTimerGetElapsed(PTimer *timer, asr_uint32_t* elapsed)
113 if (timer == NULL || elapsed == NULL)
116 if (timer->RefTime.QuadPart != 0)
120 *elapsed = (asr_uint32_t) ((timer->elapsed.QuadPart + (now.QuadPart - timer->RefTime.QuadPart))
121 / timer->PerformanceFreq.QuadPart);
124 *elapsed = (asr_uint32_t) (timer->elapsed.QuadPart / timer->PerformanceFreq.QuadPart);
131 * Resets the elapsed time to 0 and resets the reference time of the Timer.
132 * This effectively reset the timer in the same state it was right after creation.
134 ESR_ReturnCode PTimerReset(PTimer *timer)
136 if (timer == NULL) return ESR_INVALID_ARGUMENT;
137 timer->RefTime.QuadPart = 0;
138 timer->elapsed.QuadPart = 0;
145 POSIX has a timer
150 #error "Timer is not defined!"
158 timer_t timer;
163 * Creates a new timer object.
165 ESR_ReturnCode PTimerCreate(PTimer **timer)
169 if (timer == NULL) return ESR_INVALID_ARGUMENT;
173 *timer = tmp;
174 if (timer_create(CLOCK_REALTIME, NULL, &(tmp->timer)) < 0)
180 ESR_ReturnCode PTimerDestroy(PTimer *timer)
182 if (timer == NULL) return ESR_INVALID_ARGUMENT;
183 timer_delete(timer->timer);
184 FREE(timer);
190 * Starts the timer. This sets the reference time from which all new elapsed
192 * useful to pause the timer.
194 ESR_ReturnCode PTimerStart(PTimer *timer)
198 if (timer == NULL) return ESR_INVALID_ARGUMENT;
200 expire_time.it_value.tv_sec = TIMER_MAX_VAL; /* set a large time for the timer */
202 return (timer_settime(timer->timer, 0, &expire_time, NULL) == 0 ?
208 * Stops the timer.
210 ESR_ReturnCode PTimerStop(PTimer *timer)
214 if (timer == NULL) return ESR_INVALID_ARGUMENT;
216 if (timer_gettime(timer->timer, &remaining) != 0) return ESR_NOT_SUPPORTED;
218 timer_cancel(timer->timer);
220 timer->elapsed = (asr_uint32_t) ((TIMER_MAX_VAL - remaining.it_value.tv_sec) * SECOND2MSECOND
227 * Returns the timer elapsed time. If the Timer is in the stopped state,
229 * the Timer is in the started state, successive calls will return the
232 ESR_ReturnCode PTimerGetElapsed(PTimer *timer, asr_uint32_t* elapsed)
234 if (timer == NULL || elapsed == NULL)
237 if (timer->elapsed == 0) /* stop is not called */
240 if (timer_gettime(timer->timer, &remaining) != 0) return ESR_NOT_SUPPORTED;
245 *elapsed = timer->elapsed;
252 * Resets the elapsed time to 0 and resets the reference time of the Timer.
253 * This effectively reset the timer in the same state it was right after creation.
255 ESR_ReturnCode PTimerReset(PTimer *timer)
257 if (timer == NULL) return ESR_INVALID_ARGUMENT;
258 timer->elapsed = 0;