change get_state/restart_ms function prototype

This way we can verify the return value correctly

Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
pull/106/head^2
Luotao Fu 2009-11-23 15:32:27 +01:00
parent ba5cc5b4c8
commit fb19f0edcb
2 changed files with 31 additions and 29 deletions

View File

@ -35,8 +35,8 @@ int scan_set_bitrate(const char *name, __u32 bitrate);
int scan_set_restart_ms(const char *name, __u32 restart_ms); int scan_set_restart_ms(const char *name, __u32 restart_ms);
int scan_set_ctrlmode(const char *name, __u32 mode, __u32 flags); int scan_set_ctrlmode(const char *name, __u32 mode, __u32 flags);
int scan_get_state(const char *name); int scan_get_state(const char *name, int *state);
__u32 scan_get_restart_ms(const char *name); int scan_get_restart_ms(const char *name, __u32 *restart_ms);
int scan_get_bittiming(const char *name, struct can_bittiming *bt); int scan_get_bittiming(const char *name, struct can_bittiming *bt);
int scan_get_ctrlmode(const char *name, struct can_ctrlmode *cm); int scan_get_ctrlmode(const char *name, struct can_ctrlmode *cm);

View File

@ -504,16 +504,22 @@ int scan_set_restart(const char *name)
__u32 restart_ms; __u32 restart_ms;
/* first we check if we can restart the device at all */ /* first we check if we can restart the device at all */
state = scan_get_state(name); if ((scan_get_state(name, &state)) < 0) {
if (state != CAN_STATE_BUS_OFF) { fprintf(stderr, "cannot get bustate, "
"something is seriously wrong\n");
goto err_out;
} else if (state != CAN_STATE_BUS_OFF) {
fprintf(stderr, fprintf(stderr,
"Device is not in BUS_OFF," "Device is not in BUS_OFF,"
" no use to restart\n"); " no use to restart\n");
goto err_out; goto err_out;
} }
restart_ms = scan_get_restart_ms(name); if ((scan_get_restart_ms(name, &restart_ms)) < 0) {
if (restart_ms > 0) { fprintf(stderr, "cannot get restart_ms, "
"something is seriously wrong\n");
goto err_out;
} else if (restart_ms > 0) {
fprintf(stderr, fprintf(stderr,
"auto restart with %ums interval is turned on," "auto restart with %ums interval is turned on,"
" no use to restart\n", restart_ms); " no use to restart\n", restart_ms);
@ -569,39 +575,35 @@ int scan_set_bitrate(const char *name, __u32 bitrate)
return set_link(name, &req_info); return set_link(name, &req_info);
} }
int scan_get_state(const char *name) int scan_get_state(const char *name, int *state)
{ {
int fd; int fd;
int state;
int err; int err;
fd = open_nl_sock(); fd = open_nl_sock();
if (fd < 0) if (fd < 0)
return -1; return -1;
err = do_get_nl_link(fd, GET_STATE, name, &state); err = do_get_nl_link(fd, GET_STATE, name, state);
if (err < 0)
return -1;
return state;
}
__u32 scan_get_restart_ms(const char *name)
{
int fd;
int err;
__u32 restart_ms;
fd = open_nl_sock();
if (fd < 0)
return -1;
err = do_get_nl_link(fd, GET_RESTART_MS, name, &restart_ms);
if (err < 0)
return -1;
close(fd); close(fd);
return restart_ms;
return err;
}
int scan_get_restart_ms(const char *name, __u32 *restart_ms)
{
int fd;
int err;
fd = open_nl_sock();
if (fd < 0)
return -1;
err = do_get_nl_link(fd, GET_RESTART_MS, name, restart_ms);
close(fd);
return err;
} }