summaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/timers/timer_none.c
blob: 4ea2f414dbbde0b03847e0b51af523df2c4e5815 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <linux/init.h>
#include <asm/timer.h>

static void mark_offset_none(void)
{
	/* nothing needed */
}

static unsigned long get_offset_none(void)
{
	return 0;
}

static unsigned long long monotonic_clock_none(void)
{
	return 0;
}

static void delay_none(unsigned long loops)
{
	int d0;
	__asm__ __volatile__(
		"\tjmp 1f\n"
		".align 16\n"
		"1:\tjmp 2f\n"
		".align 16\n"
		"2:\tdecl %0\n\tjns 2b"
		:"=&a" (d0)
		:"0" (loops));
}

/* none timer_opts struct */
struct timer_opts timer_none = {
	.name = 	"none",
	.mark_offset =	mark_offset_none, 
	.get_offset =	get_offset_none,
	.monotonic_clock =	monotonic_clock_none,
	.delay = delay_none,
};