]> rtime.felk.cvut.cz Git - linux-lin.git/blob - sllin/canutils-patches/0001-cangen-Added-sending-of-RTR-frames.patch
sllin: Added patches enabling some programs from can-utils to work with sllin.
[linux-lin.git] / sllin / canutils-patches / 0001-cangen-Added-sending-of-RTR-frames.patch
1 From f9676c3b4416be8eb7658d3e003dcb12ee7121d9 Mon Sep 17 00:00:00 2001
2 From: Rostislav Lisovy <lisovy@gmail.com>
3 Date: Wed, 7 Dec 2011 15:44:59 +0100
4 Subject: [PATCH] cangen: Added sending of RTR frames.
5
6 ---
7  can-utils/cangen.c |   13 +++++++++++--
8  1 files changed, 11 insertions(+), 2 deletions(-)
9
10 diff --git a/can-utils/cangen.c b/can-utils/cangen.c
11 index bd48e79..ee3403f 100644
12 --- a/can-utils/cangen.c
13 +++ b/can-utils/cangen.c
14 @@ -105,7 +105,8 @@ void print_usage(char *prg)
15                 "printing sent CAN frames)\n");
16         fprintf(stderr, "         -b            (set SO_SNDBUF value of a buffer "
17                 "-- the kernel doubles this value)\n");
18 -       fprintf(stderr, "         -P            (set SO_PRIORITY of a socket)\n\n");
19 +       fprintf(stderr, "         -P            (set SO_PRIORITY of a socket)\n");
20 +       fprintf(stderr, "         -r            (send RTR frame)\n\n");
21         fprintf(stderr, "Generation modes:\n");
22         fprintf(stderr, "'r'        => random values (default)\n");
23         fprintf(stderr, "'i'        => increment values\n");
24 @@ -144,6 +145,7 @@ int main(int argc, char **argv)
25         unsigned char dlc_mode = MODE_RANDOM;
26         unsigned char loopback_disable = 0;
27         unsigned char verbose = 0;
28 +       unsigned char rtr_frame = 0;
29         int count = 0;
30         int snd_buf = 0;
31         int sk_prio = -1;
32 @@ -170,7 +172,7 @@ int main(int argc, char **argv)
33         signal(SIGHUP, sigterm);
34         signal(SIGINT, sigterm);
35  
36 -       while ((opt = getopt(argc, argv, "ig:eI:L:D:xp:n:vb:P:h?")) != -1) {
37 +       while ((opt = getopt(argc, argv, "ig:eI:L:D:xp:n:vb:P:rh?")) != -1) {
38                 switch (opt) {
39  
40                 case 'i':
41 @@ -237,6 +239,10 @@ int main(int argc, char **argv)
42                         sk_prio = atoi(optarg);
43                         break;
44  
45 +               case 'r':
46 +                       rtr_frame = 1;
47 +                       break;
48 +
49                 case 'p':
50                         polltimeout = strtoul(optarg, NULL, 10);
51                         break;
52 @@ -281,6 +287,9 @@ int main(int argc, char **argv)
53                         frame.can_id &= CAN_SFF_MASK;
54         }
55  
56 +       if (rtr_frame)
57 +               frame.can_id |=  CAN_RTR_FLAG;
58 +
59         if (extended)
60                 frame.can_id |=  CAN_EFF_FLAG;
61  
62 -- 
63 1.7.0.4
64