From: Nicholas Nethercote Date: Tue, 30 Sep 2003 14:03:21 +0000 (+0000) Subject: Made VG_(read_millisecond_timer)() available to skins. Also made it cope X-Git-Tag: svn/VALGRIND_2_1_0~165 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=18de7ba96be2fa8bb1253340178878629a483540;p=thirdparty%2Fvalgrind.git Made VG_(read_millisecond_timer)() available to skins. Also made it cope with being called from SK_(pre_clo_init)(), before its startup code has been run (just returns 0). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1868 --- diff --git a/coregrind/vg_include.h b/coregrind/vg_include.h index 4bae44fa62..06fb5f6ae5 100644 --- a/coregrind/vg_include.h +++ b/coregrind/vg_include.h @@ -1038,7 +1038,6 @@ extern Char* VG_(arena_strdup) ( ArenaId aid, const Char* s); /* Skins shouldn't need these...(?) */ extern void VG_(start_rdtsc_calibration) ( void ); extern void VG_(end_rdtsc_calibration) ( void ); -extern UInt VG_(read_millisecond_timer) ( void ); extern Int VG_(fcntl) ( Int fd, Int cmd, Int arg ); extern Int VG_(select)( Int n, diff --git a/coregrind/vg_mylibc.c b/coregrind/vg_mylibc.c index 60e3b84fe9..f42d84529f 100644 --- a/coregrind/vg_mylibc.c +++ b/coregrind/vg_mylibc.c @@ -1327,7 +1327,9 @@ static ULong rdtsc_cal_end_raw; UInt VG_(read_millisecond_timer) ( void ) { ULong rdtsc_now; - vg_assert(rdtsc_calibration_state == 2); + // If called before rdtsc setup completed (eg. from SK_(pre_clo_init)()) + // just return 0. + if (rdtsc_calibration_state < 2) return 0; rdtsc_now = do_rdtsc_insn(); vg_assert(rdtsc_now > rdtsc_cal_end_raw); rdtsc_now -= rdtsc_cal_end_raw; diff --git a/include/vg_skin.h b/include/vg_skin.h index d2cae54be2..8b111ce2e2 100644 --- a/include/vg_skin.h +++ b/include/vg_skin.h @@ -495,6 +495,11 @@ extern Int VG_(kkill) ( Int pid, Int signo ); extern Int VG_(ksigpending) ( vki_ksigset_t* set ); +/* ------------------------------------------------------------------ */ +/* other, randomly useful functions */ +extern UInt VG_(read_millisecond_timer) ( void ); + + /*====================================================================*/ /*=== UCode definition ===*/ /*====================================================================*/