Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 #ifndef __NET_NEXTHOP_H
  2 #define __NET_NEXTHOP_H
  3 
  4 #include <linux/rtnetlink.h>
  5 #include <net/netlink.h>
  6 
  7 static inline int rtnh_ok(const struct rtnexthop *rtnh, int remaining)
  8 {
  9         return remaining >= sizeof(*rtnh) &&
 10                rtnh->rtnh_len >= sizeof(*rtnh) &&
 11                rtnh->rtnh_len <= remaining;
 12 }
 13 
 14 static inline struct rtnexthop *rtnh_next(const struct rtnexthop *rtnh,
 15                                          int *remaining)
 16 {
 17         int totlen = NLA_ALIGN(rtnh->rtnh_len);
 18 
 19         *remaining -= totlen;
 20         return (struct rtnexthop *) ((char *) rtnh + totlen);
 21 }
 22 
 23 static inline struct nlattr *rtnh_attrs(const struct rtnexthop *rtnh)
 24 {
 25         return (struct nlattr *) ((char *) rtnh + NLA_ALIGN(sizeof(*rtnh)));
 26 }
 27 
 28 static inline int rtnh_attrlen(const struct rtnexthop *rtnh)
 29 {
 30         return rtnh->rtnh_len - NLA_ALIGN(sizeof(*rtnh));
 31 }
 32 
 33 #endif
 34 
  This page was automatically generated by the LXR engine.