mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
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
2 changed files with 38 additions and 0 deletions
|
@ -38,8 +38,13 @@ void __exit ieee802154_nl_exit(void);
|
||||||
.dumpit = _dump, \
|
.dumpit = _dump, \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct genl_info;
|
||||||
|
|
||||||
struct sk_buff *ieee802154_nl_create(int flags, u8 req);
|
struct sk_buff *ieee802154_nl_create(int flags, u8 req);
|
||||||
int ieee802154_nl_mcast(struct sk_buff *msg, unsigned int group);
|
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;
|
extern struct genl_family nl802154_family;
|
||||||
int nl802154_mac_register(void);
|
int nl802154_mac_register(void);
|
||||||
|
|
|
@ -75,6 +75,39 @@ out:
|
||||||
return -ENOBUFS;
|
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 __init ieee802154_nl_init(void)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
|
Loading…
Reference in a new issue