embox

Форк
0
44 строки · 857.0 Байт
1
/**
2
 * @file
3
 * @brief
4
 *
5
 * @author  Anton Kozlov
6
 * @date    08.03.2013
7
 */
8

9
#include <embox/unit.h>
10
#include <hal/clock.h>
11
#include <hal/system.h>
12
#include <kernel/irq.h>
13
#include <kernel/time/clock_source.h>
14
#include <kernel/host.h>
15

16
#define CLOCK_IRQ HOST_TIMER_IRQ
17

18
static irq_return_t clock_handler(unsigned int irq_nr, void *data) {
19

20
	clock_tick_handler(data);
21

22
	return IRQ_HANDLED;
23
}
24

25
static int clk_set_periodic(struct clock_source *cs);
26

27
static struct time_event_device umclock_ev = {
28
	.set_periodic = clk_set_periodic,
29
	.irq_nr = CLOCK_IRQ,
30
};
31

32
static int clk_set_periodic(struct clock_source *cs) {
33

34
	host_timer_config(1000000 / 1000);
35

36
	return 0;
37
}
38

39
static int umclock_init(struct clock_source *cs) {
40
	return irq_attach(CLOCK_IRQ, clock_handler, 0, cs, "usermode clock");
41
}
42

43
CLOCK_SOURCE_DEF(usermode,  umclock_init, NULL,
44
	&umclock_ev,NULL);
45

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.