Skip to content

Commit

Permalink
uml: use *SEC_PER_*SEC constants
Browse files Browse the repository at this point in the history
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 <jdike@linux.intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Jeff Dike authored and Linus Torvalds committed Oct 16, 2007
1 parent 61b63c5 commit 1a80521
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 17 deletions.
4 changes: 4 additions & 0 deletions arch/um/include/common-offsets.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,7 @@ DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx));
DEFINE(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);
2 changes: 0 additions & 2 deletions arch/um/include/os.h
Original file line number Diff line number Diff line change
Expand Up @@ -249,8 +249,6 @@ extern int setjmp_wrapper(void (*proc)(void *, void *), ...);
extern void os_dump_core(void);

/* 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);
Expand Down
9 changes: 5 additions & 4 deletions arch/um/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -118,8 +118,9 @@ void __init time_init(void)
timer_init();

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;
}
12 changes: 7 additions & 5 deletions arch/um/os-Linux/skas/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -294,8 +294,8 @@ void userspace(struct uml_pt_regs *regs)

if (getitimer(ITIMER_VIRTUAL, &timer))
printk("Failed to get itimer, errno = %d\n", errno);
nsecs = timer.it_value.tv_sec * BILLION +
timer.it_value.tv_usec * 1000;
nsecs = timer.it_value.tv_sec * UM_NSEC_PER_SEC +
timer.it_value.tv_usec * UM_NSEC_PER_USEC;
nsecs += os_nsecs();

while (1) {
Expand Down Expand Up @@ -347,8 +347,10 @@ void userspace(struct uml_pt_regs *regs)
block_signals();
(*sig_info[sig])(sig, regs);
unblock_signals();
nsecs = timer.it_value.tv_sec * BILLION +
timer.it_value.tv_usec * 1000;
nsecs = timer.it_value.tv_sec *
UM_NSEC_PER_SEC +
timer.it_value.tv_usec *
UM_NSEC_PER_USEC;
nsecs += os_nsecs();
break;
case SIGIO:
Expand Down Expand Up @@ -395,7 +397,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;
Expand Down
12 changes: 6 additions & 6 deletions arch/um/os-Linux/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 } });

Expand All @@ -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)
Expand Down Expand Up @@ -78,8 +78,8 @@ extern void alarm_handler(int sig, struct sigcontext *sc);

void 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);
Expand Down

0 comments on commit 1a80521

Please sign in to comment.