⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time.c

📁 这个linux源代码是很全面的~基本完整了~使用c编译的~由于时间问题我没有亲自测试~但就算用来做参考资料也是非常好的
💻 C
字号:
/* *  linux/arch/m68k/hp300/time.c * *  Copyright (C) 1998 Philip Blundell <philb@gnu.org> * *  This file contains the HP300-specific time handling code. */#include <asm/ptrace.h>#include <linux/types.h>#include <linux/init.h>#include <linux/sched.h>#include <linux/kernel_stat.h>#include <linux/interrupt.h>#include <asm/machdep.h>#include <asm/irq.h>#include <asm/io.h>#include <asm/system.h>#include <asm/traps.h>#include "ints.h"/* Clock hardware definitions */#define CLOCKBASE	0xf05f8000#define	CLKCR1		0x1#define	CLKCR2		0x3#define	CLKCR3		CLKCR1#define	CLKSR		CLKCR2#define	CLKMSB1		0x5#define	CLKMSB2		0x9#define	CLKMSB3		0xD/* This is for machines which generate the exact clock. */#define USECS_PER_JIFFY (1000000/HZ)#define INTVAL ((10000 / 4) - 1)static void hp300_tick(int irq, void *dev_id, struct pt_regs *regs){  unsigned long tmp;  void (*vector)(int, void *, struct pt_regs *) = dev_id;  in_8(CLOCKBASE + CLKSR);  asm volatile ("movpw %1@(5),%0" : "=d" (tmp) : "a" (CLOCKBASE));  vector(irq, NULL, regs);}unsigned long hp300_gettimeoffset(void){  /* Read current timer 1 value */  unsigned char lsb, msb1, msb2;  unsigned short ticks;  msb1 = in_8(CLOCKBASE + 5);  lsb = in_8(CLOCKBASE + 7);  msb2 = in_8(CLOCKBASE + 5);  if (msb1 != msb2)    /* A carry happened while we were reading.  Read it again */    lsb = in_8(CLOCKBASE + 7);  ticks = INTVAL - ((msb2 << 8) | lsb);  return (USECS_PER_JIFFY * ticks) / INTVAL;}void __init hp300_sched_init(void (*vector)(int, void *, struct pt_regs *)){  out_8(CLOCKBASE + CLKCR2, 0x1);		/* select CR1 */  out_8(CLOCKBASE + CLKCR1, 0x1);		/* reset */  asm volatile(" movpw %0,%1@(5)" : : "d" (INTVAL), "a" (CLOCKBASE));  sys_request_irq(6, hp300_tick, IRQ_FLG_STD, "timer tick", vector);  out_8(CLOCKBASE + CLKCR2, 0x1);		/* select CR1 */  out_8(CLOCKBASE + CLKCR1, 0x40);		/* enable irq */}

⌨️ 快捷键说明

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