mirror of
https://github.com/systemd/systemd.git
synced 2024-11-06 16:59:03 +03:00
netlink: add typesafe netlink functions
This commit is contained in:
parent
1e26b1dfc7
commit
3365841384
@ -38,3 +38,23 @@ int rtnl_set_link_properties(sd_netlink **rtnl, int ifindex, const char *alias,
|
|||||||
|
|
||||||
int rtnl_log_parse_error(int r);
|
int rtnl_log_parse_error(int r);
|
||||||
int rtnl_log_create_error(int r);
|
int rtnl_log_create_error(int r);
|
||||||
|
|
||||||
|
#define netlink_call_async(nl, ret_slot, message, callback, destroy_callback, userdata) \
|
||||||
|
({ \
|
||||||
|
int (*_callback_)(sd_netlink *, sd_netlink_message *, typeof(userdata)) = callback; \
|
||||||
|
void (*_destroy_)(typeof(userdata)) = destroy_callback; \
|
||||||
|
sd_netlink_call_async(nl, ret_slot, message, \
|
||||||
|
(sd_netlink_message_handler_t) _callback_, \
|
||||||
|
(sd_netlink_destroy_t) _destroy_, \
|
||||||
|
userdata, 0, __func__); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define netlink_add_match(nl, ret_slot, metch, callback, destroy_callback, userdata) \
|
||||||
|
({ \
|
||||||
|
int (*_callback_)(sd_netlink *, sd_netlink_message *, typeof(userdata)) = callback; \
|
||||||
|
void (*_destroy_)(typeof(userdata)) = destroy_callback; \
|
||||||
|
sd_netlink_add_match(nl, ret_slot, match, \
|
||||||
|
(sd_netlink_message_handler_t) _callback_, \
|
||||||
|
(sd_netlink_destroy_t) _destroy_, \
|
||||||
|
userdata, __func__); \
|
||||||
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user