sched/clock: Refine the code structure for userspace access

Reorganize perf_gettime implementation to eliminate duplicate functions
and improve code structure for userspace library integration,
consolidating logic flow for better maintainability.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
Xiang Xiao
2025-06-04 11:40:37 +08:00
committed by Donny(董九柱)
parent 277626870d
commit b76a8408c1
+16 -31
View File
@@ -104,28 +104,6 @@ clock_t perf_gettime(void)
return result;
}
/****************************************************************************
* perf_convert
****************************************************************************/
void perf_convert(clock_t elapsed, FAR struct timespec *ts)
{
unsigned long freq = up_perf_getfreq();
ts->tv_sec = elapsed / freq;
elapsed -= ts->tv_sec * freq;
ts->tv_nsec = NSEC_PER_SEC * elapsed / freq;
}
/****************************************************************************
* perf_getfreq
****************************************************************************/
unsigned long perf_getfreq(void)
{
return up_perf_getfreq();
}
#elif defined(CONFIG_ALARM_ARCH) || defined (CONFIG_TIMER_ARCH) || \
defined(CONFIG_ARCH_PERF_EVENTS)
@@ -138,6 +116,22 @@ clock_t perf_gettime(void)
return up_perf_gettime();
}
#else
/****************************************************************************
* perf_gettime
****************************************************************************/
clock_t perf_gettime(void)
{
return clock_systime_ticks();
}
#endif
#if defined(CONFIG_ALARM_ARCH) || defined (CONFIG_TIMER_ARCH) || \
defined(CONFIG_ARCH_PERF_EVENTS)
/****************************************************************************
* perf_convert
****************************************************************************/
@@ -158,15 +152,6 @@ unsigned long perf_getfreq(void)
#else
/****************************************************************************
* perf_gettime
****************************************************************************/
clock_t perf_gettime(void)
{
return clock_systime_ticks();
}
/****************************************************************************
* perf_convert
****************************************************************************/