[ADD] conf deplate, and test viki.
[arrow.git] / testforge / list / serv.c
blob567dc81e7983d5303287bc43ff08a383789d8b87
1 /* copyleft (C) GPL3 {{{2
2 * Filename: serv.c
4 * Author: arrow <arrow_zhang@sdc.sercomm.com>
5 * Created at: Mon 20 Aug 2007 07:05:37 PM CST
6 * }}}*/
7 /*header files {{{1*/
8 #include <linux/kernel.h>
9 #include <linux/module.h>
10 #include <linux/list.h>
11 #include <asm/semaphore.h>
12 #include <linux/timer.h>
13 #include "common.h"
14 /*}}}*/
16 /*declaration {{{1*/
17 LIST_HEAD(list);
18 struct timer_list timer;
19 /*DECLARE_MUTEX(sem);*/
20 /*}}}*/
22 /*functions {{{1*/
23 void loop(unsigned long data)
25 struct arrow_t *tp;
27 timer.expires = jiffies + HZ;
28 timer.data = ++ data;
29 sbup("looping data = %ld\n", data);
30 /* down(&sem);*/
31 list_for_each_entry(tp, &list, list) {
32 sbup("List name:%s\n", tp->name);
33 tp->fun(data);
35 /* up(&sem);*/
36 add_timer(&timer);
39 int __init init_serv(void)
41 init_timer(&timer);
42 timer.expires = jiffies + HZ;
43 timer.function = loop;
44 add_timer(&timer);
45 return 0;
48 void __exit exit_serv(void)
50 del_timer(&timer);
53 int test_register(struct arrow_t *new)
55 /* down(&sem);*/
56 list_add(&new->list, &list);
57 /* up(&sem);*/
58 return 0;
60 EXPORT_SYMBOL(test_register);
62 int test_unregister(struct arrow_t *del)
64 /* down(&sem);*/
65 list_del(&del->list);
66 /* up(&sem);*/
67 return 0;
69 EXPORT_SYMBOL(test_unregister);
71 module_init(init_serv);
72 module_exit(exit_serv);
74 /* vim:fdm=marker:ts=8:ft=c:norl:fdl=1:
75 * }}}*/