Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
cris
kernel
time.c
Go to the documentation of this file.
1
/*
2
* linux/arch/cris/kernel/time.c
3
*
4
* Copyright (C) 1991, 1992, 1995 Linus Torvalds
5
* Copyright (C) 1999, 2000, 2001 Axis Communications AB
6
*
7
* 1994-07-02 Alan Modra
8
* fixed set_rtc_mmss, fixed time.year for >= 2000, new mktime
9
* 1995-03-26 Markus Kuhn
10
* fixed 500 ms bug at call to set_rtc_mmss, fixed DS12887
11
* precision CMOS clock update
12
* 1996-05-03 Ingo Molnar
13
* fixed time warps in do_[slow|fast]_gettimeoffset()
14
* 1997-09-10 Updated NTP code according to technical memorandum Jan '96
15
* "A Kernel Model for Precision Timekeeping" by Dave Mills
16
*
17
* Linux/CRIS specific code:
18
*
19
* Authors: Bjorn Wesen
20
* Johan Adolfsson
21
*
22
*/
23
24
#include <linux/errno.h>
25
#include <linux/module.h>
26
#include <
linux/param.h
>
27
#include <
linux/jiffies.h
>
28
#include <
linux/bcd.h
>
29
#include <linux/timex.h>
30
#include <
linux/init.h
>
31
#include <
linux/profile.h
>
32
#include <linux/sched.h>
/* just for sched_clock() - funny that */
33
34
35
#define D(x)
36
37
#define TICK_SIZE tick
38
39
extern
unsigned
long
loops_per_jiffy
;
/* init/main.c */
40
unsigned
long
loops_per_usec
;
41
42
43
#ifdef CONFIG_ARCH_USES_GETTIMEOFFSET
44
extern
unsigned
long
do_slow_gettimeoffset
(
void
);
45
static
unsigned
long
(*do_gettimeoffset)(
void
) =
do_slow_gettimeoffset
;
46
47
u32
arch_gettimeoffset
(
void
)
48
{
49
return
do_gettimeoffset() * 1000;
50
}
51
#endif
52
53
int
set_rtc_mmss
(
unsigned
long
nowtime)
54
{
55
D
(
printk
(
KERN_DEBUG
"set_rtc_mmss(%lu)\n"
, nowtime));
56
return
0;
57
}
58
59
/* grab the time from the RTC chip */
60
unsigned
long
get_cmos_time
(
void
)
61
{
62
return
0;
63
}
64
65
66
int
update_persistent_clock
(
struct
timespec
now)
67
{
68
return
set_rtc_mmss
(now.
tv_sec
);
69
}
70
71
void
read_persistent_clock
(
struct
timespec
*
ts
)
72
{
73
ts->
tv_sec
= 0;
74
ts->
tv_nsec
= 0;
75
}
76
77
78
extern
void
cris_profile_sample
(
struct
pt_regs
*
regs
);
79
80
void
81
cris_do_profile
(
struct
pt_regs
*
regs
)
82
{
83
84
#ifdef CONFIG_SYSTEM_PROFILER
85
cris_profile_sample
(regs);
86
#endif
87
88
#ifdef CONFIG_PROFILING
89
profile_tick
(
CPU_PROFILING
);
90
#endif
91
}
92
93
unsigned
long
long
sched_clock
(
void
)
94
{
95
return
(
unsigned
long
long
)
jiffies
* (
NSEC_PER_SEC
/
HZ
) +
96
get_ns_in_jiffie
();
97
}
98
99
static
int
100
__init
init_udelay(
void
)
101
{
102
loops_per_usec
= (
loops_per_jiffy
*
HZ
) / 1000000;
103
return
0;
104
}
105
106
__initcall
(init_udelay);
Generated on Thu Jan 10 2013 12:53:32 for Linux Kernel by
1.8.2