do_timer.h

来自「鼎力推荐!本程序是基于嵌入式LUNUX系统开发的源程序代码」· C头文件 代码 · 共 53 行

H
53
字号
/* defines for inline arch setup functions */#include <asm/fixmap.h>#include "cobalt.h"static inline void do_timer_interrupt_hook(struct pt_regs *regs){	/* Clear the interrupt */	co_cpu_write(CO_CPU_STAT,co_cpu_read(CO_CPU_STAT) & ~CO_STAT_TIMEINTR);	do_timer(regs);#ifndef CONFIG_SMP	update_process_times(user_mode(regs));#endif/* * In the SMP case we use the local APIC timer interrupt to do the * profiling, except when we simulate SMP mode on a uniprocessor * system, in that case we have to call the local interrupt handler. */#ifndef CONFIG_X86_LOCAL_APIC	profile_tick(CPU_PROFILING, regs);#else	if (!using_apic_timer)		smp_local_timer_interrupt(regs);#endif}static inline int do_timer_overflow(int count){	int i;	spin_lock(&i8259A_lock);	/*	 * This is tricky when I/O APICs are used;	 * see do_timer_interrupt().	 */	i = inb(0x20);	spin_unlock(&i8259A_lock);		/* assumption about timer being IRQ0 */	if (i & 0x01) {		/*		 * We cannot detect lost timer interrupts ... 		 * well, that's why we call them lost, don't we? :)		 * [hmm, on the Pentium and Alpha we can ... sort of]		 */		count -= LATCH;	} else {		printk("do_slow_gettimeoffset(): hardware timer problem?\n");	}	return count;}

⌨️ 快捷键说明

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