ieee802154: add two nl802154 helpers
Add two nl802154 helpers: one for starting a reply message, one for sending. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
This commit is contained in:
parent
405cd39f33
commit
339b4ca5f6
|
@ -38,8 +38,13 @@ void __exit ieee802154_nl_exit(void);
|
|||
.dumpit = _dump, \
|
||||
}
|
||||
|
||||
struct genl_info;
|
||||
|
||||
struct sk_buff *ieee802154_nl_create(int flags, u8 req);
|
||||
int ieee802154_nl_mcast(struct sk_buff *msg, unsigned int group);
|
||||
struct sk_buff *ieee802154_nl_new_reply(struct genl_info *info,
|
||||
int flags, u8 req);
|
||||
int ieee802154_nl_reply(struct sk_buff *msg, struct genl_info *info);
|
||||
|
||||
extern struct genl_family nl802154_family;
|
||||
int nl802154_mac_register(void);
|
||||
|
|
|
@ -75,6 +75,39 @@ out:
|
|||
return -ENOBUFS;
|
||||
}
|
||||
|
||||
struct sk_buff *ieee802154_nl_new_reply(struct genl_info *info,
|
||||
int flags, u8 req)
|
||||
{
|
||||
void *hdr;
|
||||
struct sk_buff *msg = nlmsg_new(NLMSG_GOODSIZE, GFP_ATOMIC);
|
||||
|
||||
if (!msg)
|
||||
return NULL;
|
||||
|
||||
hdr = genlmsg_put_reply(msg, info,
|
||||
&nl802154_family, flags, req);
|
||||
if (!hdr) {
|
||||
nlmsg_free(msg);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return msg;
|
||||
}
|
||||
|
||||
int ieee802154_nl_reply(struct sk_buff *msg, struct genl_info *info)
|
||||
{
|
||||
/* XXX: nlh is right at the start of msg */
|
||||
void *hdr = genlmsg_data(NLMSG_DATA(msg->data));
|
||||
|
||||
if (genlmsg_end(msg, hdr) < 0)
|
||||
goto out;
|
||||
|
||||
return genlmsg_reply(msg, info);
|
||||
out:
|
||||
nlmsg_free(msg);
|
||||
return -ENOBUFS;
|
||||
}
|
||||
|
||||
int __init ieee802154_nl_init(void)
|
||||
{
|
||||
int rc;
|
||||
|
|
Loading…
Reference in New Issue