summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.transmeta.com>2002-11-17 01:12:29 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2002-11-17 01:12:29 -0800
commit7c2b0510faacd18c6422b26d19ba6aefb154ed37 (patch)
tree23cf33de0791e1ec57677559aa998e551dde97f5 /kernel
parent7fcfc2bef602e5761469d116644a2f49ed0c6937 (diff)
parent5d62665d6793db5c2a497e21c4171f6a34be3b1a (diff)
Merge home.transmeta.com:/home/torvalds/v2.5/nsec-stat
into home.transmeta.com:/home/torvalds/v2.5/linux
Diffstat (limited to 'kernel')
-rw-r--r--kernel/ksyms.c2
-rw-r--r--kernel/time.c12
2 files changed, 13 insertions, 1 deletions
diff --git a/kernel/ksyms.c b/kernel/ksyms.c
index 39ba65a9bdf4..c54fadff0c0d 100644
--- a/kernel/ksyms.c
+++ b/kernel/ksyms.c
@@ -594,3 +594,5 @@ EXPORT_SYMBOL(__per_cpu_offset);
/* debug */
EXPORT_SYMBOL(dump_stack);
+
+EXPORT_SYMBOL(current_kernel_time);
diff --git a/kernel/time.c b/kernel/time.c
index 716e0bbe071a..ead1e3c7fb29 100644
--- a/kernel/time.c
+++ b/kernel/time.c
@@ -57,7 +57,7 @@ asmlinkage long sys_time(int * tloc)
/* SMP: This is fairly trivial. We grab CURRENT_TIME and
stuff it to user space. No side effects */
- i = CURRENT_TIME;
+ i = get_seconds();
if (tloc) {
if (put_user(i,tloc))
i = -EFAULT;
@@ -405,3 +405,13 @@ asmlinkage long sys_adjtimex(struct timex *txc_p)
ret = do_adjtimex(&txc);
return copy_to_user(txc_p, &txc, sizeof(struct timex)) ? -EFAULT : ret;
}
+
+struct timespec current_kernel_time(void)
+{
+ struct timespec now;
+ unsigned long flags;
+ read_lock_irqsave(&xtime_lock,flags);
+ now = xtime;
+ read_unlock_irqrestore(&xtime_lock,flags);
+ return now;
+}