|
@@ -205,6 +205,23 @@ static inline struct nlmsghdr *genlmsg_nlhdr(void *user_hdr,
|
|
|
NLMSG_HDRLEN);
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * genlmsg_parse - parse attributes of a genetlink message
|
|
|
+ * @nlh: netlink message header
|
|
|
+ * @family: genetlink message family
|
|
|
+ * @tb: destination array with maxtype+1 elements
|
|
|
+ * @maxtype: maximum attribute type to be expected
|
|
|
+ * @policy: validation policy
|
|
|
+ * */
|
|
|
+static inline int genlmsg_parse(const struct nlmsghdr *nlh,
|
|
|
+ const struct genl_family *family,
|
|
|
+ struct nlattr *tb[], int maxtype,
|
|
|
+ const struct nla_policy *policy)
|
|
|
+{
|
|
|
+ return nlmsg_parse(nlh, family->hdrsize + GENL_HDRLEN, tb, maxtype,
|
|
|
+ policy);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* genl_dump_check_consistent - check if sequence is consistent and advertise if not
|
|
|
* @cb: netlink callback structure that stores the sequence number
|