UML - Use *_PER_* definitions
PATCH 11/11 UML - Use *_PER_* definitions
There are various uses of powers of 1000, plus the odd BILLION constant in the time code. However, there are perfectly good definitions of *SEC_PER_*SEC in linux/time.h which can be used instaed.
These are replaced directly in kernel code. Userspace code imports those constants as UM_*SEC_PER_*SEC and uses these.
Signed-off-by Jeff Dike <[email protected]>
--
arch/um/include/common-offsets.h | 4 ++++ arch/um/include/os.h | 2 -- arch/um/kernel/time.c | 9 +++++---- arch/um/os-Linux/skas/process.c | 2 +- arch/um/os-Linux/time.c | 16 ++++++++-------- 5 files changed, 18 insertions(+), 15 deletions(-)
arch/um/kernel/time.c +5 -4
@@ -17,7 +17,7 @@*/ unsigned long long sched_clock (void ) { -return (unsigned long long )jiffies_64 * (1000000000 /HZ ); +return (unsigned long long )jiffies_64 * (NSEC_PER_SEC /HZ ); }void timer_handler (int sig,struct uml_pt_regs *regs)
@@ -119,8 +119,9 @@ void __init time_init(void)long long nsecs; nsecs =os_nsecs (); -set_normalized_timespec (&wall_to_monotonic, -nsecs /BILLION , - -nsecs %BILLION ); -set_normalized_timespec (&xtime, nsecs /BILLION , nsecs %BILLION ); +set_normalized_timespec (&wall_to_monotonic, -nsecs /NSEC_PER_SEC , + -nsecs %NSEC_PER_SEC ); +set_normalized_timespec (&xtime, nsecs /NSEC_PER_SEC , + nsecs %NSEC_PER_SEC ); late_time_init = setup_itimer; }
arch/um/os-Linux/time.c +8 -8
@@ -14,7 +14,7 @@int set_interval (void ) { -int usec =1000000 /UM_HZ ; +int usec =UM_USEC_PER_SEC /UM_HZ ;struct itimerval interval = ((struct itimerval ) { {0 , usec }, {0 , usec } });
@@ -26,11 +26,11 @@ int set_interval(void)int timer_one_shot (int ticks) { -unsigned long usec = ticks *1000000 /UM_HZ ; -unsigned long sec = usec /1000000 ; +unsigned long usec = ticks *UM_USEC_PER_SEC /UM_HZ ; +unsigned long sec = usec /UM_USEC_PER_SEC ;struct itimerval interval; - usec %=1000000 ; + usec %=UM_USEC_PER_SEC ; interval = ((struct itimerval ) { {0 ,0 }, { sec, usec } });if (setitimer (ITIMER_VIRTUAL , &interval,NULL ) ==-1 )
@@ -47,8 +47,8 @@ static inline unsigned long long tv_to_n* return. */ -return ((unsigned long long ) tv->tv_sec) *BILLION + - tv->tv_usec *1000 ; +return ((unsigned long long ) tv->tv_sec) *UM_NSEC_PER_SEC + + tv->tv_usec *UM_NSEC_PER_SEC ; }unsigned long long disable_timer (void )
@@ -74,8 +74,8 @@ extern void alarm_handler(int sig, strucvoid idle_sleep (unsigned long long nsecs) { -struct timespec ts = { .tv_sec = nsecs /BILLION , - .tv_nsec = nsecs %BILLION }; +struct timespec ts = { .tv_sec = nsecs /UM_NSEC_PER_SEC , + .tv_nsec = nsecs %UM_NSEC_PER_SEC };if (nanosleep (&ts, &ts) ==0 )alarm_handler (SIGVTALRM ,NULL );
arch/um/os-Linux/skas/process.c +1 -1
@@ -378,7 +378,7 @@ __initcall(init_thread_regs);int copy_context_skas0 (unsigned long new_stack,int pid) { -struct timeval tv = { .tv_sec =0 , .tv_usec =1000000 /UM_HZ }; +struct timeval tv = { .tv_sec =0 , .tv_usec =UM_USEC_PER_SEC /UM_HZ };int err;unsigned long current_stack =current_stub_stack ();struct stub_data *data = (struct stub_data *) current_stack;
arch/um/include/common-offsets.h +4 -0
@@ -34,3 +34,7 @@ DEFINE(crypto_tfm_ctx_offset, offsetof(sDEFINE (UM_THREAD_SIZE ,THREAD_SIZE );DEFINE (UM_HZ ,HZ ); + +DEFINE (UM_USEC_PER_SEC ,USEC_PER_SEC ); +DEFINE (UM_NSEC_PER_SEC ,NSEC_PER_SEC ); +DEFINE (UM_NSEC_PER_USEC ,NSEC_PER_USEC );
arch/um/include/os.h +0 -2
@@ -250,8 +250,6 @@ extern void os_dump_core(void);extern void os_log_info (char *fmt,va_list ap);/* time.c */ -#define BILLION (1000 * 1000 * 1000) -extern void idle_sleep (unsigned long long nsecs);extern int set_interval (void );extern int timer_one_shot (int ticks);
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel