1*1b481fc3SMaciej Żenczykowski /* 2*1b481fc3SMaciej Żenczykowski * bitset.h - netlink bitset helpers 3*1b481fc3SMaciej Żenczykowski * 4*1b481fc3SMaciej Żenczykowski * Declarations of helpers for handling ethtool netlink bitsets. 5*1b481fc3SMaciej Żenczykowski */ 6*1b481fc3SMaciej Żenczykowski 7*1b481fc3SMaciej Żenczykowski #ifndef ETHTOOL_NETLINK_BITSET_H__ 8*1b481fc3SMaciej Żenczykowski #define ETHTOOL_NETLINK_BITSET_H__ 9*1b481fc3SMaciej Żenczykowski 10*1b481fc3SMaciej Żenczykowski #include <libmnl/libmnl.h> 11*1b481fc3SMaciej Żenczykowski #include <linux/netlink.h> 12*1b481fc3SMaciej Żenczykowski #include <linux/genetlink.h> 13*1b481fc3SMaciej Żenczykowski #include <linux/ethtool_netlink.h> 14*1b481fc3SMaciej Żenczykowski #include "strset.h" 15*1b481fc3SMaciej Żenczykowski 16*1b481fc3SMaciej Żenczykowski typedef void (*bitset_walk_callback)(unsigned int, const char *, bool, void *); 17*1b481fc3SMaciej Żenczykowski 18*1b481fc3SMaciej Żenczykowski uint32_t bitset_get_count(const struct nlattr *bitset, int *retptr); 19*1b481fc3SMaciej Żenczykowski bool bitset_get_bit(const struct nlattr *bitset, bool mask, unsigned int idx, 20*1b481fc3SMaciej Żenczykowski int *retptr); 21*1b481fc3SMaciej Żenczykowski bool bitset_is_compact(const struct nlattr *bitset); 22*1b481fc3SMaciej Żenczykowski bool bitset_is_empty(const struct nlattr *bitset, bool mask, int *retptr); 23*1b481fc3SMaciej Żenczykowski uint32_t *get_compact_bitset_value(const struct nlattr *bitset); 24*1b481fc3SMaciej Żenczykowski uint32_t *get_compact_bitset_mask(const struct nlattr *bitset); 25*1b481fc3SMaciej Żenczykowski int walk_bitset(const struct nlattr *bitset, const struct stringset *labels, 26*1b481fc3SMaciej Żenczykowski bitset_walk_callback cb, void *data); 27*1b481fc3SMaciej Żenczykowski 28*1b481fc3SMaciej Żenczykowski #endif /* ETHTOOL_NETLINK_BITSET_H__ */ 29