blob: 6e378e57ca8e999e5c713f3f678fe80714556056 [file] [log] [blame]
adamdunkels16a7b262004-07-04 21:15:53 +00001
2#include "packet-service.h"
3#include "tapdev.h"
4
5static void output(u8_t *hdr, u16_t hdrlen, u8_t *data, u16_t datalen);
6
7static const struct packet_service_state state =
8 {
9 PACKET_SERVICE_VERSION,
10 output
11 };
12
13EK_EVENTHANDLER(eventhandler, ev, data);
14EK_POLLHANDLER(pollhandler);
adamdunkelse9ef4cb2004-08-11 21:23:06 +000015EK_PROCESS(proc, PACKET_SERVICE_NAME ": TAP", EK_PRIO_NORMAL,
adamdunkels16a7b262004-07-04 21:15:53 +000016 eventhandler, pollhandler, (void *)&state);
17
18/*---------------------------------------------------------------------------*/
19EK_PROCESS_INIT(tapdev_service_init, arg)
20{
21 ek_service_start(PACKET_SERVICE_NAME, &proc);
22}
23/*---------------------------------------------------------------------------*/
24static void
25output(u8_t *hdr, u16_t hdrlen, u8_t *data, u16_t datalen)
26{
adamdunkels16a7b262004-07-04 21:15:53 +000027 tapdev_send();
28}
29/*---------------------------------------------------------------------------*/
30EK_EVENTHANDLER(eventhandler, ev, data)
31{
32 printf("packet-service: event %d\n", ev);
33 switch(ev) {
34 case EK_EVENT_INIT:
adamdunkelse9ef4cb2004-08-11 21:23:06 +000035 case EK_EVENT_REPLACE:
adamdunkels16a7b262004-07-04 21:15:53 +000036 tapdev_init();
37 break;
38 case EK_EVENT_REQUEST_REPLACE:
39 ek_replace((struct ek_proc *)data, NULL);
40 LOADER_UNLOAD();
41 break;
42 case EK_EVENT_REQUEST_EXIT:
43 ek_exit();
44 LOADER_UNLOAD();
45 break;
46 default:
47 break;
48 }
49}
50/*---------------------------------------------------------------------------*/
51EK_POLLHANDLER(pollhandler)
52{
53}
54/*---------------------------------------------------------------------------*/