From 5f7c6bd95bd6089473db3ba4f033584f5de0ee8a Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 24 Sep 2024 14:49:32 +0100 Subject: [profile] Standardise return type of profile_timestamp() All consumers of profile_timestamp() currently treat the value as an unsigned long. Only the elapsed number of ticks is ever relevant: the absolute value of the timestamp is not used. Profiling is used to measure short durations that are generally fewer than a million CPU cycles, for which an unsigned long is easily large enough. Standardise the return type of profile_timestamp() as unsigned long across all CPU architectures. This allows 32-bit architectures such as i386 and riscv32 to omit all logic associated with retrieving the upper 32 bits of the 64-bit hardware counter, which simplifies the code and allows riscv32 and riscv64 to share the same implementation. Signed-off-by: Michael Brown --- src/include/ipxe/profile.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/include') diff --git a/src/include/ipxe/profile.h b/src/include/ipxe/profile.h index 2c69e1208..fd45b3cdc 100644 --- a/src/include/ipxe/profile.h +++ b/src/include/ipxe/profile.h @@ -60,6 +60,8 @@ struct profiler { #define __profiler #endif +unsigned long profile_timestamp ( void ); + extern unsigned long profile_excluded; extern void profile_update ( struct profiler *profiler, unsigned long sample ); -- cgit v1.2.3-55-g7522