Command line parsing error messages are printed to stdout. Other errors
and usage goes to stderr.
Change to print errors to stderr.
Signed-off-by: Marko Kohtala <marko.kohtala@gmail.com>
Exit code does not tell if the service was provided or if it was not
provided due to command line or setup errors.
Change errors to return EXIT_FAILURE instead of 0. Also change other uses
of 0 to EXIT_SUCCESS and 1 to EXIT_FAILURE for clarity and POSIX
conformance.
Signed-off-by: Marko Kohtala <marko.kohtala@gmail.com>
The sscanf() function to parse bcmserver command strings limited the length of
the CAN netdevice name to six characters. With this patch the length is derived
from the IFNAMSIZ which defines the space in ifr.ifr_name.
Signed-off-by: Jiho Chu <jiho.chu@samsung.com>
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
With glibc versions before 2.17, we get following build error:
canfdtest.o: In function `millisleep':
canfdtest.c:(.text+0x212): undefined reference to `clock_nanosleep'
collect2: error: ld returned 1 exit status
make[1]: *** [canfdtest] Error 1
make[1]: *** Waiting for unfinished jobs....
glibc versions before 2.17 needs to link with -lrt for
clock_nanosleep(). This patch adds support to detect if linking with
librt is required.
This build issue is detected by Buildroot autobuilder:
http://autobuild.buildroot.net/results/0e5/0e5242376ff6aa82e89ed1172350e05009d48156/build-end.log
Signed-off-by: Rahul Bedarkar <rahul.bedarkar@imgtec.com>
This patch fixes this bug
https://github.com/linux-can/can-utils/issues/13
Modified the existing millisleep function to use clock_nanosleep with
MONOTONIC clock and relative timeout.
Signed-off-by: Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
After a few complaint about 100% CPU usage of canfdtest over our PCI
-like boards, I have had a look to the source file, and think I have
found the issue in can_echo_dut().
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
testj1939.c: In function 'main':
testj1939.c:201:3: warning: format '%li' expects argument of type 'long int', but argument 4 has type 'unsigned int' [-Wformat=]
fprintf(stderr, "- bind(, %s, %li);\n", canaddr2str(&sockname), sizeof(sockname));
^
testj1939.c:210:4: warning: format '%li' expects argument of type 'long int', but argument 4 has type 'unsigned int' [-Wformat=]
fprintf(stderr, "- connect(, %s, %li);\n", canaddr2str(&peername), sizeof(peername));
^
testj1939.c:228:5: warning: format '%li' expects argument of type 'long int', but argument 5 has type 'unsigned int' [-Wformat=]
fprintf(stderr, "- sendto(, <dat>, %i, 0, %s, %li);\n", todo_send, canaddr2str(&peername), sizeof(peername));
^
testj1939.c:254:4: warning: format '%li' expects argument of type 'long int', but argument 3 has type 'unsigned int' [-Wformat=]
fprintf(stderr, "- recvfrom(, <dat>, %li, 0, &<peername>, %li);\n", sizeof(peername), sizeof(peername));
^
testj1939.c:254:4: warning: format '%li' expects argument of type 'long int', but argument 4 has type 'unsigned int' [-Wformat=]
Use 'z' as correct modifier to print sizeof().
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
The cmdlinename[i] output contains the filter definitions e.g.
'can0,300:700' but you want to see only 'can0' when printing on stderr.
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
This patch fixes a bug in cangen.c
Bug: When used with -m option, if a CAN FD frame with BRS option set is
sent, that flag never gets cleared for the subsequent frames.
Fix: Reset frame.flags at the start of iteration.
Signed-off-by: Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
listen-only option (-l) has been added to slcan-attach in oct 2015.
It is now replicated in slcand
Signed-off-by: interlocuteur <gallard@mmic.net>
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
This patch tries to optimize the calculation of the sample point. To
understand what it does have a look at the original implementation.
If there is a combination of timing parameters where both the bitrate
and sample point error are 0 the current implementation will find it.
However if the reference clock doesn't allow an optimal bitrate (this
means the bitrate error is always != 0) there might be several timing
parameter combinations having the same bitrate error. The original
implementation will allways choose the one with the highest brp. The
actual sample point error isn't taken into account.
This patch changes the algorithm to minimize the sample point error,
too. Now a brp/tseg combination is accepted as better if one of these
condition are fulfilled:
1) the bit rate error must be smaller, or
2) the bit rate error must be equal and
the sample point error must be equal or smaller
If a smaller bit rate error is found the sample point error is reset.
This ensures that we first optimize for small bit rate error and then
for small sample point errors.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
* rtnetlink:
Revert "j1939.page: add relevant API calls"
testj1939: print API calls
j1939.page: add relevant API calls
j1939.page: restructure
testj1939: use send() when connect()ed
testj1939: remember if peername was provided
add .gitignore
import sample program & help page
initial