add get clock callbacks

Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
pull/106/head^2
Luotao Fu 2009-11-25 15:21:05 +01:00
parent 6f73bd10bc
commit 5b2ef2f2d3
2 changed files with 29 additions and 0 deletions

View File

@ -34,5 +34,6 @@ 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_ctrlmode(const char *name, struct can_ctrlmode *cm);
int scan_get_state(const char *name, int *state);
int scan_get_clock(const char *name, struct can_clock *clock);
#endif

View File

@ -46,6 +46,7 @@
#define GET_RESTART_MS 2
#define GET_BITTIMING 3
#define GET_CTRLMODE 4
#define GET_CLOCK 5
struct get_req {
struct nlmsghdr n;
@ -374,6 +375,16 @@ static int do_get_nl_link(int fd, __u8 acquire, const char *name, void *res)
} else
fprintf(stderr, "no ctrlmode data found\n");
break;
case GET_CLOCK:
if (can_attr[IFLA_CAN_CLOCK]) {
memcpy(res,
RTA_DATA(can_attr[IFLA_CAN_CLOCK]),
sizeof(struct can_clock));
ret = 0;
} else
fprintf(stderr, "no clock parameter data found\n");
break;
default:
fprintf(stderr, "unknown acquire mode\n");
@ -649,3 +660,20 @@ int scan_get_ctrlmode(const char *name, struct can_ctrlmode *cm)
close(fd);
return 0;
}
int scan_get_clock(const char *name, struct can_clock *clock)
{
int fd;
int err;
fd = open_nl_sock();
if (fd < 0)
return -1;
err = do_get_nl_link(fd, GET_CLOCK, name, clock);
if (err < 0)
return -1;
close(fd);
return 0;
}