diff options
author | Namhoon Kim <namhoonk@cs.unc.edu> | 2017-05-01 16:02:05 -0400 |
---|---|---|
committer | Namhoon Kim <namhoonk@cs.unc.edu> | 2017-05-01 16:02:05 -0400 |
commit | 11765fcf37057053065abd3715cf9cb46f2fa4db (patch) | |
tree | 8403d716bbcbd96493c481a82e7e02b5da9231e8 /bin/mode_request.c | |
parent | bfee87a910560e022b04c81a026b1f88522cd62f (diff) |
RTSS17 submitwip-modechange
Diffstat (limited to 'bin/mode_request.c')
-rw-r--r-- | bin/mode_request.c | 48 |
1 files changed, 42 insertions, 6 deletions
diff --git a/bin/mode_request.c b/bin/mode_request.c index a0b3226..010add1 100644 --- a/bin/mode_request.c +++ b/bin/mode_request.c | |||
@@ -1,13 +1,49 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <stdlib.h> | ||
3 | #include <errno.h> | ||
4 | #include <sys/syscall.h> | ||
5 | #include <unistd.h> | ||
6 | #include <signal.h> | ||
7 | |||
1 | #include "litmus.h" | 8 | #include "litmus.h" |
2 | 9 | ||
3 | #define __NR_request_mode 408 | 10 | #define __NR_request_mode 408 |
4 | 11 | ||
5 | int main(int argc, char* argv){ | 12 | static int keep_running; |
6 | int ret, req_mode; | 13 | |
7 | if (argc < 2){ | 14 | void sig_handler(int signum) { |
8 | return -EINVAL; | 15 | int ret; |
16 | |||
17 | usleep(100000); | ||
18 | ret = syscall(__NR_request_mode, 0); | ||
19 | usleep(1000000); | ||
20 | keep_running = 0; | ||
21 | |||
22 | } | ||
23 | |||
24 | int main(int argc, char* argv[]) { | ||
25 | int ret, req_mode = 0; | ||
26 | int interval_ms; | ||
27 | int max_mode = 9; | ||
28 | |||
29 | signal(SIGINT, sig_handler); | ||
30 | |||
31 | if (argc == 2) { | ||
32 | max_mode = atoi(argv[1]); | ||
33 | printf("%d\n", max_mode); | ||
34 | } | ||
35 | |||
36 | keep_running = 1; | ||
37 | usleep(500000); // ms | ||
38 | while (keep_running) { | ||
39 | req_mode = (req_mode%max_mode)+1; | ||
40 | |||
41 | if (keep_running) | ||
42 | ret = syscall(__NR_request_mode, req_mode); | ||
43 | interval_ms = rand() % 1000 - 500; // ms | ||
44 | usleep(1000*(1000 + interval_ms)); | ||
9 | } | 45 | } |
10 | req_mode = atoi(argv[1]); | 46 | |
11 | ret = syscall(__NR_request_mode, req_mode); | 47 | |
12 | return ret; | 48 | return ret; |
13 | } | 49 | } |