add get clock callbacks
Signed-off-by: Luotao Fu <l.fu@pengutronix.de>pull/106/head^2
parent
6f73bd10bc
commit
5b2ef2f2d3
|
|
@ -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_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);
|
||||||
int scan_get_state(const char *name, int *state);
|
int scan_get_state(const char *name, int *state);
|
||||||
|
int scan_get_clock(const char *name, struct can_clock *clock);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@
|
||||||
#define GET_RESTART_MS 2
|
#define GET_RESTART_MS 2
|
||||||
#define GET_BITTIMING 3
|
#define GET_BITTIMING 3
|
||||||
#define GET_CTRLMODE 4
|
#define GET_CTRLMODE 4
|
||||||
|
#define GET_CLOCK 5
|
||||||
|
|
||||||
struct get_req {
|
struct get_req {
|
||||||
struct nlmsghdr n;
|
struct nlmsghdr n;
|
||||||
|
|
@ -374,6 +375,16 @@ static int do_get_nl_link(int fd, __u8 acquire, const char *name, void *res)
|
||||||
} else
|
} else
|
||||||
fprintf(stderr, "no ctrlmode data found\n");
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "unknown acquire mode\n");
|
fprintf(stderr, "unknown acquire mode\n");
|
||||||
|
|
@ -649,3 +660,20 @@ int scan_get_ctrlmode(const char *name, struct can_ctrlmode *cm)
|
||||||
close(fd);
|
close(fd);
|
||||||
return 0;
|
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;
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue