arch_timer.c

来自「newos is new operation system」· C语言 代码 · 共 45 行

C
45
字号
/*** Copyright 2001, Travis Geiselbrecht. All rights reserved.** Distributed under the terms of the NewOS License.*/#include <boot/stage2.h>#include <kernel/kernel.h>#include <kernel/debug.h>#include <kernel/timer.h>#include <kernel/arch/timer.h>static bigtime_t tick_rate;static uint32 periodic_tick_val;void arch_timer_set_hardware_timer(bigtime_t timeout, int type){	bigtime_t new_val_64;	if(timeout < 1000)		timeout = 1000;	new_val_64 = (timeout * tick_rate) / 1000000;	asm("mtdec	%0" :: "r"((uint32)new_val_64));		periodic_tick_val = new_val_64;}void ppc_timer_reset(void){	asm("mtdec	%0" :: "r"((uint32)periodic_tick_val));}void arch_timer_clear_hardware_timer(){	asm("mtdec	%0" :: "r"(0x7fffffff));}int arch_init_timer(kernel_args *ka){	tick_rate = (66*1000*1000) / 4; // XXX fix	return 0;}

⌨️ 快捷键说明

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