diff options
author | Luca Dariz <luca@orpolo.org> | 2023-02-12 18:03:11 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-02-12 18:28:47 +0100 |
commit | 5fdc928d3d29fdc93ad00cea5f5c877a19013d44 (patch) | |
tree | b4b63da236cd6d805d6bcd7bafad03ef3994bb40 /kern | |
parent | b0d39e2ffda3cdd67d81022f40b2a73518fda6d0 (diff) | |
download | gnumach-5fdc928d3d29fdc93ad00cea5f5c877a19013d44.tar.gz gnumach-5fdc928d3d29fdc93ad00cea5f5c877a19013d44.tar.bz2 gnumach-5fdc928d3d29fdc93ad00cea5f5c877a19013d44.zip |
fix rpc time value for 64 bit
* include/mach/task_info.h: use rpc variant of time_value_t
* include/mach/thread_info.h: Likewise
* kern/mach_clock.c: use rpc variant of time_value_t in
read_time_stamp()
* kern/mach_clock.h: Likewise
* kern/thread.c: use rpc variant of thread_read_times()
* kern/timer.h_ add thread_read_times_rpc() by converting time_value_t
to the corresponding rpc structures inline.
Message-Id: <20230212170313.1501404-5-luca@orpolo.org>
Diffstat (limited to 'kern')
-rw-r--r-- | kern/mach_clock.c | 2 | ||||
-rw-r--r-- | kern/mach_clock.h | 2 | ||||
-rw-r--r-- | kern/thread.c | 2 | ||||
-rw-r--r-- | kern/timer.h | 12 |
4 files changed, 15 insertions, 3 deletions
diff --git a/kern/mach_clock.c b/kern/mach_clock.c index 09717d16..ed38c76b 100644 --- a/kern/mach_clock.c +++ b/kern/mach_clock.c @@ -429,7 +429,7 @@ record_time_stamp(time_value_t *stamp) * real-time clock frame. */ void -read_time_stamp (const time_value_t *stamp, time_value_t *result) +read_time_stamp (const time_value_t *stamp, rpc_time_value_t *result) { time_value64_t result64; TIME_VALUE_TO_TIME_VALUE64(stamp, &result64); diff --git a/kern/mach_clock.h b/kern/mach_clock.h index 7e8d3046..9a670011 100644 --- a/kern/mach_clock.h +++ b/kern/mach_clock.h @@ -98,7 +98,7 @@ extern void record_time_stamp (time_value_t *stamp); * Read a timestamp in STAMP into RESULT. Returns values in the * real-time clock frame. */ -extern void read_time_stamp (const time_value_t *stamp, time_value_t *result); +extern void read_time_stamp (const time_value_t *stamp, rpc_time_value_t *result); extern void mapable_time_init (void); diff --git a/kern/thread.c b/kern/thread.c index 17cc458c..4a6b9eda 100644 --- a/kern/thread.c +++ b/kern/thread.c @@ -1522,7 +1522,7 @@ kern_return_t thread_info( /* fill in info */ - thread_read_times(thread, + thread_read_times_rpc(thread, &basic_info->user_time, &basic_info->system_time); basic_info->base_priority = thread->priority; diff --git a/kern/timer.h b/kern/timer.h index 35782b41..89790230 100644 --- a/kern/timer.h +++ b/kern/timer.h @@ -134,6 +134,18 @@ extern unsigned timer_delta(timer_t, timer_save_t); extern void timer_normalize(timer_t); extern void timer_init(timer_t); +static inline void +thread_read_times_rpc(thread_t thread, + rpc_time_value_t *user_time_p, rpc_time_value_t *system_time_p) +{ + time_value_t user_p, system_p; + thread_read_times(thread, &user_p, &system_p); + user_time_p->seconds = user_p.seconds; + user_time_p->microseconds = user_p.microseconds; + system_time_p->seconds = system_p.seconds; + system_time_p->microseconds = system_p.microseconds; +} + #if STAT_TIME /* * Macro to bump timer values. |