On Thu, Oct 13, 2011 at 11:24:59AM +0200, Marc Kleine-Budde wrote:
> On 10/12/2011 02:55 PM, Kurt Van Dijck wrote:
> > Not sure where exactly to put this.
> > 
> > When using libsocketcan on 
> > git://git.pengutronix.de/git/tools/libsocketcan.git,
> > I kind of missed a method to fetch the can device statistics.
> > This patch adds that functionality.
> > I think this is the proper library to put such function.
> > 
> > Signed-off-by: Kurt Van Dijck <[email protected]>
> > ---
> > diff --git a/include/libsocketcan.h b/include/libsocketcan.h
> > index 10c012c..6098d6a 100644
> > --- a/include/libsocketcan.h
> > +++ b/include/libsocketcan.h
> > @@ -45,5 +45,6 @@ int can_get_state(const char *name, int *state);
> >  int can_get_clock(const char *name, struct can_clock *clock);
> >  int can_get_bittiming_const(const char *name, struct can_bittiming_const 
> > *btc);
> >  int can_get_berr_counter(const char *name, struct can_berr_counter *bc);
> > +int can_get_device_stats(const char *name, struct can_device_stats *cds);
> >  
> >  #endif
> > diff --git a/src/libsocketcan.c b/src/libsocketcan.c
> > index 2ac3f2a..34d3875 100644
> > --- a/src/libsocketcan.c
> > +++ b/src/libsocketcan.c
> > @@ -53,6 +53,7 @@
> >  #define GET_CLOCK 5
> >  #define GET_BITTIMING_CONST 6
> >  #define GET_BERR_COUNTER 7
> > +#define GET_XSTATS 8
> >  
> >  struct get_req {
> >     struct nlmsghdr n;
> > @@ -386,6 +387,17 @@ static int do_get_nl_link(int fd, __u8 acquire, const 
> > char *name, void *res)
> >             else
> >                     continue;
> >  
> > +           if (acquire == GET_XSTATS) {
> > +                   if (!linkinfo[IFLA_INFO_XSTATS])
> > +                           fprintf(stderr, "no can statistics found\n");
> > +                   else {
> > +                           memcpy(res, 
> > RTA_DATA(linkinfo[IFLA_INFO_XSTATS]),
> > +                                           sizeof(struct 
> > can_device_stats));
> > +                           ret = 0;
> > +                   }
> > +                   continue;
> > +           }
> 
> is it possible to put GET_XSTATS to the bit switch statement below?
That would cross the check on linkinfo[IFLA_INFO_DATA], which is
irrelevant for GET_XSTATS, since you need linkinfo[IFLA_INFO_XSTATS] ...

Kurt
> 
> Marc
_______________________________________________
Socketcan-core mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/socketcan-core

Reply via email to