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
h8300
kernel
time.c
Go to the documentation of this file.
1
/*
2
* linux/arch/h8300/kernel/time.c
3
*
4
* Yoshinori Sato <
[email protected]
>
5
*
6
* Copied/hacked from:
7
*
8
* linux/arch/m68k/kernel/time.c
9
*
10
* Copyright (C) 1991, 1992, 1995 Linus Torvalds
11
*
12
* This file contains the m68k-specific time handling details.
13
* Most of the stuff is located in the machine specific files.
14
*
15
* 1997-09-10 Updated NTP code according to technical memorandum Jan '96
16
* "A Kernel Model for Precision Timekeeping" by Dave Mills
17
*/
18
19
#include <linux/errno.h>
20
#include <linux/module.h>
21
#include <linux/sched.h>
22
#include <linux/kernel.h>
23
#include <
linux/param.h
>
24
#include <linux/string.h>
25
#include <
linux/mm.h
>
26
#include <linux/timex.h>
27
#include <
linux/profile.h
>
28
29
#include <asm/io.h>
30
#include <asm/irq_regs.h>
31
#include <asm/timer.h>
32
33
#define TICK_SIZE (tick_nsec / 1000)
34
35
void
h8300_timer_tick
(
void
)
36
{
37
if
(
current
->pid)
38
profile_tick
(
CPU_PROFILING
);
39
xtime_update
(1);
40
update_process_times
(
user_mode
(
get_irq_regs
()));
41
}
42
43
void
read_persistent_clock
(
struct
timespec
*
ts
)
44
{
45
unsigned
int
year
, mon,
day
,
hour
,
min
,
sec
;
46
47
/* FIX by dqg : Set to zero for platforms that don't have tod */
48
/* without this time is undefined and can overflow time_t, causing */
49
/* very strange errors */
50
year = 1980;
51
mon = day = 1;
52
hour = min = sec = 0;
53
#ifdef CONFIG_H8300_GETTOD
54
h8300_gettod
(&year, &mon, &day, &hour, &min, &sec);
55
#endif
56
if
((year += 1900) < 1970)
57
year += 100;
58
ts->
tv_sec
=
mktime
(year, mon, day, hour, min, sec);
59
ts->
tv_nsec
= 0;
60
}
61
62
void
__init
time_init
(
void
)
63
{
64
65
h8300_timer_setup
();
66
}
Generated on Thu Jan 10 2013 12:53:32 for Linux Kernel by
1.8.2