Applied, thanks! Luca Dariz, le dim. 12 févr. 2023 18:03:11 +0100, a ecrit: > * 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. > --- > include/mach/task_info.h | 10 +++++----- > include/mach/thread_info.h | 6 +++--- > kern/mach_clock.c | 2 +- > kern/mach_clock.h | 2 +- > kern/thread.c | 2 +- > kern/timer.h | 12 ++++++++++++ > 6 files changed, 23 insertions(+), 11 deletions(-) > > diff --git a/include/mach/task_info.h b/include/mach/task_info.h > index 3aaa7cd6..f448ee04 100644 > --- a/include/mach/task_info.h > +++ b/include/mach/task_info.h > @@ -56,11 +56,11 @@ struct task_basic_info { > integer_t base_priority; /* base scheduling priority */ > rpc_vm_size_t virtual_size; /* number of virtual pages */ > rpc_vm_size_t resident_size; /* number of resident pages */ > - time_value_t user_time; /* total user run time for > + rpc_time_value_t user_time; /* total user run time for > terminated threads */ > - time_value_t system_time; /* total system run time for > + rpc_time_value_t system_time; /* total system run time for > terminated threads */ > - time_value_t creation_time; /* creation time stamp */ > + rpc_time_value_t creation_time; /* creation time stamp */ > }; > > typedef struct task_basic_info task_basic_info_data_t; > @@ -89,9 +89,9 @@ typedef struct task_events_info > *task_events_info_t; > only accurate if suspended */ > > struct task_thread_times_info { > - time_value_t user_time; /* total user run time for > + rpc_time_value_t user_time; /* total user run time for > live threads */ > - time_value_t system_time; /* total system run time for > + rpc_time_value_t system_time; /* total system run time for > live threads */ > }; > > diff --git a/include/mach/thread_info.h b/include/mach/thread_info.h > index 569c8c84..46c1ceca 100644 > --- a/include/mach/thread_info.h > +++ b/include/mach/thread_info.h > @@ -55,8 +55,8 @@ typedef integer_t > thread_info_data_t[THREAD_INFO_MAX]; > #define THREAD_BASIC_INFO 1 /* basic information */ > > struct thread_basic_info { > - time_value_t user_time; /* user run time */ > - time_value_t system_time; /* system run time */ > + rpc_time_value_t user_time; /* user run time */ > + rpc_time_value_t system_time; /* system run time */ > integer_t cpu_usage; /* scaled cpu usage percentage */ > integer_t base_priority; /* base scheduling priority */ > integer_t cur_priority; /* current scheduling priority */ > @@ -65,7 +65,7 @@ struct thread_basic_info { > integer_t suspend_count; /* suspend count for thread */ > integer_t sleep_time; /* number of seconds that thread > has been sleeping */ > - time_value_t creation_time; /* time stamp of creation */ > + rpc_time_value_t creation_time; /* time stamp of creation */ > }; > > typedef struct thread_basic_info thread_basic_info_data_t; > 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. > -- > 2.30.2 > >
-- Samuel --- Pour une évaluation indépendante, transparente et rigoureuse ! Je soutiens la Commission d'Évaluation de l'Inria.