Skip to content

Commit 3272afe

Browse files
committed
windows: Implement mp_hal_ticks_cpu in terms of QueryPerformanceCounter
1 parent 0b9ed55 commit 3272afe

3 files changed

Lines changed: 13 additions & 2 deletions

File tree

unix/modtime.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ STATIC const mp_rom_map_elem_t mp_module_time_globals_table[] = {
152152
{ MP_ROM_QSTR(MP_QSTR_time), MP_ROM_PTR(&mod_time_time_obj) },
153153
{ MP_ROM_QSTR(MP_QSTR_ticks_ms), MP_ROM_PTR(&mp_utime_ticks_ms_obj) },
154154
{ MP_ROM_QSTR(MP_QSTR_ticks_us), MP_ROM_PTR(&mp_utime_ticks_us_obj) },
155+
{ MP_ROM_QSTR(MP_QSTR_ticks_cpu), MP_ROM_PTR(&mp_utime_ticks_cpu_obj) },
155156
{ MP_ROM_QSTR(MP_QSTR_ticks_add), MP_ROM_PTR(&mp_utime_ticks_add_obj) },
156157
{ MP_ROM_QSTR(MP_QSTR_ticks_diff), MP_ROM_PTR(&mp_utime_ticks_diff_obj) },
157158
{ MP_ROM_QSTR(MP_QSTR_strftime), MP_ROM_PTR(&mod_time_strftime_obj) },

windows/windows_mphal.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,3 +217,13 @@ mp_uint_t mp_hal_ticks_us(void) {
217217
gettimeofday(&tv, NULL);
218218
return tv.tv_sec * 1000000 + tv.tv_usec;
219219
}
220+
221+
mp_uint_t mp_hal_ticks_cpu(void) {
222+
LARGE_INTEGER value;
223+
QueryPerformanceCounter(&value);
224+
#ifdef _WIN64
225+
return value.QuadPart;
226+
#else
227+
return value.LowPart;
228+
#endif
229+
}

windows/windows_mphal.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,5 @@
3232
void mp_hal_move_cursor_back(unsigned int pos);
3333
void mp_hal_erase_line_from_cursor(unsigned int n_chars_to_erase);
3434

35-
// TODO: Implement.
36-
#define mp_hal_ticks_cpu() 0
35+
#undef mp_hal_ticks_cpu
36+
mp_uint_t mp_hal_ticks_cpu(void);

0 commit comments

Comments
 (0)