OSDN Git Service

Step 10 added.
[kozos-expbrd/kozos_expbrd.git] / firm / junk / 03 / os / interrupt.c
1 #include "defines.h"
2 #include "intr.h"
3 #include "interrupt.h"
4
5 /* ¥½¥Õ¥È¥¦¥¨¥¢¡¦³ä¹þ¤ß¥Ù¥¯¥¿¤Î½é´ü²½ */
6 int softvec_init(void)
7 {
8   int type;
9   for (type = 0; type < SOFTVEC_TYPE_NUM; type++)
10     softvec_setintr(type, NULL);
11   return 0;
12 }
13
14 /* ¥½¥Õ¥È¥¦¥¨¥¢¡¦³ä¹þ¤ß¥Ù¥¯¥¿¤ÎÀßÄê */
15 int softvec_setintr(softvec_type_t type, softvec_handler_t handler)
16 {
17   SOFTVECS[type] = handler;
18   return 0;
19 }
20
21 /*
22  * ¶¦Ä̳ä¹þ¤ß¥Ï¥ó¥É¥é¡¥
23  * ¥½¥Õ¥È¥¦¥¨¥¢¡¦³ä¹þ¤ß¥Ù¥¯¥¿¤ò¸«¤Æ¡¤³Æ¥Ï¥ó¥É¥é¤Ëʬ´ô¤¹¤ë¡¥
24  */
25 void interrupt(softvec_type_t type, unsigned long sp)
26 {
27   softvec_handler_t handler = SOFTVECS[type];
28   if (handler)
29     handler(type, sp);
30 }