VMM: Sync halting GPCs and interrupt injection
[akaros.git] / tests / notify.c
1 #include <stdlib.h>
2 #include <stdio.h>
3 #include <parlib/parlib.h>
4 #include <unistd.h>
5 #include <signal.h>
6
7 int main(int argc, char **argv)
8 {
9         struct event_msg msg = {0};
10         int pid, ev_type;
11
12         if (argc < 3) {
13                 printf("Usage: %s PID EV_NUM [Arg1 Arg2 0xArg3 Arg4]\n", argv[0]);
14                 exit(-1);
15         }
16         pid = strtol(argv[1], 0, 10);
17         ev_type = strtol(argv[2], 0, 10);
18         msg.ev_type = ev_type;
19
20         if (argc >= 4)
21                 msg.ev_arg1 = strtol(argv[3], 0, 10);
22         if (argc >= 5)
23                 msg.ev_arg2 = strtol(argv[4], 0, 10);
24         if (argc >= 6)
25                 msg.ev_arg3 = (void*)strtoll(argv[5], 0, 16);   /* base 16 */
26         if (argc >= 7)
27                 msg.ev_arg4 = strtoll(argv[6], 0, 10);
28
29         if (sys_notify(pid, ev_type, &msg)) {
30                 perror("Notify failed");
31                 exit(errno);
32         }
33         return 0;
34 }