コード例 #1
0
ファイル: arm_board.c プロジェクト: CoryXie/xvisor
int arm_board_timer_init(u32 usecs)
{
	u32 val, irq;
	u64 counter_mult, counter_shift, counter_mask;

	counter_mask = 0xFFFFFFFFULL;
	counter_shift = 20;
	counter_mult = ((u64)1000000) << counter_shift;
	counter_mult += (((u64)1000) >> 1);
	counter_mult = arm_udiv64(counter_mult, ((u64)1000));

	irq = IRQ_V2M_TIMER0;

	val = arm_readl((void *)V2M_SYSCTL) | SCCTRL_TIMEREN0SEL_TIMCLK;
	arm_writel(val, (void *)V2M_SYSCTL);

	return sp804_init(usecs, V2M_TIMER0, irq, 
			  counter_mask, counter_mult, counter_shift);
}
コード例 #2
0
ファイル: dhry_port.c プロジェクト: nmaiti/xvisor
long dhry_iter_per_sec(TimeStamp UserTime, int Number_Of_Runs)
{
	return arm_udiv64(((TimeStamp)Number_Of_Runs * (TimeStamp)1000000),
								 UserTime);
}
コード例 #3
0
ファイル: generic_timer.c プロジェクト: 32bitmicro/xvisor
void generic_timer_change_period(u32 usec)
{
	timer_period_ticks = (arm_udiv64(timer_freq, 1000000) * usec);

	write_cntv_tval(timer_period_ticks);
}