OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-mips64/] [time.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 * Copyright (C) 2001, 2002, MontaVista Software Inc.
3
 * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
4
 * Copyright (c) 2003  Maciej W. Rozycki
5
 *
6
 * include/asm-mips/time.h
7
 *     header file for the new style time.c file and time services.
8
 *
9
 * This program is free software; you can redistribute  it and/or modify it
10
 * under  the terms of  the GNU General  Public License as published by the
11
 * Free Software Foundation;  either version 2 of the  License, or (at your
12
 * option) any later version.
13
 *
14
 */
15
 
16
/*
17
 * Please refer to Documentation/mips/time.README.
18
 */
19
 
20
#ifndef _ASM_TIME_H
21
#define _ASM_TIME_H
22
 
23
#include <linux/ptrace.h>               /* for struct pt_regs */
24
#include <linux/linkage.h>              /* for asmlinkage */
25
#include <linux/rtc.h>                  /* for struct rtc_time */
26
 
27
/*
28
 * RTC ops.  By default, they point to no-RTC functions.
29
 *      rtc_get_time - mktime(year, mon, day, hour, min, sec) in seconds.
30
 *      rtc_set_time - reverse the above translation and set time to RTC.
31
 *      rtc_set_mmss - similar to rtc_set_time, but only min and sec need
32
 *                      to be set.  Used by RTC sync-up.
33
 */
34
extern unsigned long (*rtc_get_time)(void);
35
extern int (*rtc_set_time)(unsigned long);
36
extern int (*rtc_set_mmss)(unsigned long);
37
 
38
/*
39
 * Timer interrupt functions.
40
 * mips_timer_state is needed for high precision timer calibration.
41
 * mips_timer_ack may be NULL if the interrupt is self-recoverable.
42
 */
43
extern int (*mips_timer_state)(void);
44
extern void (*mips_timer_ack)(void);
45
 
46
/*
47
 * High precision timer functions.
48
 * If mips_hpt_read is NULL, an R4k-compatible timer setup is attempted.
49
 */
50
extern unsigned int (*mips_hpt_read)(void);
51
extern void (*mips_hpt_init)(unsigned int);
52
 
53
/*
54
 * to_tm() converts system time back to (year, mon, day, hour, min, sec).
55
 * It is intended to help implement rtc_set_time() functions.
56
 * Copied from PPC implementation.
57
 */
58
extern void to_tm(unsigned long tim, struct rtc_time *tm);
59
 
60
/*
61
 * do_gettimeoffset(). By default, this func pointer points to
62
 * do_null_gettimeoffset(), which leads to the same resolution as HZ.
63
 * Higher resolution versions are available, which give ~1us resolution.
64
 */
65
extern unsigned long (*do_gettimeoffset)(void);
66
 
67
/*
68
 * high-level timer interrupt routines.
69
 */
70
extern void timer_interrupt(int irq, void *dev_id, struct pt_regs *regs);
71
 
72
/*
73
 * the corresponding low-level timer interrupt routine.
74
 */
75
extern asmlinkage void ll_timer_interrupt(int irq, struct pt_regs *regs);
76
 
77
/*
78
 * profiling and process accouting is done separately in local_timer_interrupt
79
 */
80
extern void local_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs);
81
extern asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs);
82
 
83
/*
84
 * board specific routines required by time_init().
85
 * board_time_init is defaulted to NULL and can remain so.
86
 * board_timer_setup must be setup properly in machine setup routine.
87
 */
88
struct irqaction;
89
extern void (*board_time_init)(void);
90
extern void (*board_timer_setup)(struct irqaction *irq);
91
 
92
/*
93
 * mips_hpt_frequency - must be set if you intend to use an R4k-compatible
94
 * counter as a timer interrupt source; otherwise it can be set up
95
 * automagically with an aid of mips_timer_state.
96
 */
97
extern unsigned int mips_hpt_frequency;
98
 
99
#endif /* _ASM_TIME_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.