time.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:3k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * Copyright (C) 2001, 2002, MontaVista Software Inc.
  3.  * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
  4.  *
  5.  * include/asm-mips/time.h
  6.  *     header file for the new style time.c file and time services.
  7.  *
  8.  * This program is free software; you can redistribute  it and/or modify it
  9.  * under  the terms of  the GNU General  Public License as published by the
  10.  * Free Software Foundation;  either version 2 of the  License, or (at your
  11.  * option) any later version.
  12.  *
  13.  */
  14. /*
  15.  * Please refer to Documentation/MIPS/time.README.
  16.  */
  17. #ifndef _ASM_TIME_H
  18. #define _ASM_TIME_H
  19. #include <linux/ptrace.h>               /* for struct pt_regs */
  20. #include <linux/linkage.h>              /* for asmlinkage */
  21. #include <linux/rtc.h>                  /* for struct rtc_time */
  22. /*
  23.  * RTC ops.  By default, they point a no-RTC functions.
  24.  * rtc_get_time - mktime(year, mon, day, hour, min, sec) in seconds.
  25.  * rtc_set_time - reverse the above translation and set time to RTC.
  26.  */
  27. extern unsigned long (*rtc_get_time)(void);
  28. extern int (*rtc_set_time)(unsigned long);
  29. /*
  30.  * to_tm() converts system time back to (year, mon, day, hour, min, sec).
  31.  * It is intended to help implement rtc_set_time() functions.
  32.  * Copied from PPC implementation.
  33.  */
  34. extern void to_tm(unsigned long tim, struct rtc_time * tm);
  35. /*
  36.  * do_gettimeoffset(). By default, this func pointer points to
  37.  * do_null_gettimeoffset(), which leads to the same resolution as HZ.
  38.  * Higher resolution versions are vailable, which gives ~1us resolution.
  39.  */
  40. extern unsigned long (*do_gettimeoffset)(void);
  41. extern unsigned long null_gettimeoffset(void);
  42. extern unsigned long fixed_rate_gettimeoffset(void);
  43. extern unsigned long calibrate_div32_gettimeoffset(void);
  44. extern unsigned long calibrate_div64_gettimeoffset(void);
  45. /*
  46.  * high-level timer interrupt routines.
  47.  */
  48. extern void timer_interrupt(int irq, void *dev_id, struct pt_regs *regs);
  49. /*
  50.  * the corresponding low-level timer interrupt routine.
  51.  */
  52. asmlinkage void ll_timer_interrupt(int irq, struct pt_regs *regs);
  53. /*
  54.  * profiling and process accouting is done separately in local_timer_interrupt
  55.  */
  56. void local_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs);
  57. asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs);
  58. /*
  59.  * board specific routines required by time_init().
  60.  * board_time_init is defaulted to NULL and can remains so.
  61.  * board_timer_setup must be setup properly in machine setup routine.
  62.  */
  63. struct irqaction;
  64. extern void (*board_time_init)(void);
  65. extern void (*board_timer_setup)(struct irqaction *irq);
  66. /*
  67.  * mips_counter_frequency - must be set if you intend to use
  68.  * counter as timer interrupt source or use fixed_rate_gettimeoffset.
  69.  */
  70. extern unsigned int mips_counter_frequency;
  71. #endif /* _ASM_TIME_H */