timer.h

来自「嵌入式系统设计与实例开发实验教材二源码 多线程应用程序设计 串行端口程序设计」· C头文件 代码 · 共 59 行

H
59
字号
/* $Id: timer.h,v 1.3 2000/05/09 17:40:15 davem Exp $ * timer.h: System timer definitions for sun5. * * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) */#ifndef _SPARC64_TIMER_H#define _SPARC64_TIMER_H/* How timers work: * * On uniprocessors we just use counter zero for the system wide * ticker, this performs thread scheduling, clock book keeping, * and runs timer based events.  Previously we used the Ultra * %tick interrupt for this purpose. * * On multiprocessors we pick one cpu as the master level 10 tick * processor.  Here this counter zero tick handles clock book * keeping and timer events only.  Each Ultra has it's level * 14 %tick interrupt set to fire off as well, even the master * tick cpu runs this locally.  This ticker performs thread * scheduling, system/user tick counting for the current thread, * and also profiling if enabled. */#include <linux/config.h>/* Two timers, traditionally steered to PIL's 10 and 14 respectively. * But since INO packets are used on sun5, we could use any PIL level * we like, however for now we use the normal ones. * * The 'reg' and 'interrupts' properties for these live in nodes named * 'counter-timer'.  The first of three 'reg' properties describe where * the sun5_timer registers are.  The other two I have no idea. (XXX) */struct sun5_timer {	u64	count0;	u64	limit0;	u64	count1;	u64	limit1;};#define SUN5_LIMIT_ENABLE	0x80000000#define SUN5_LIMIT_TOZERO	0x40000000#define SUN5_LIMIT_ZRESTART	0x20000000#define SUN5_LIMIT_CMASK	0x1fffffff/* Given a HZ value, set the limit register to so that the timer IRQ * gets delivered that often. */#define SUN5_HZ_TO_LIMIT(__hz)  (1000000/(__hz))#ifdef CONFIG_SMPextern unsigned long timer_tick_offset;extern void timer_tick_interrupt(struct pt_regs *);#endif#endif /* _SPARC64_TIMER_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?