- /* public functions */
- this->public.send = (status_t(*)(netlink_socket_t*,struct nlmsghdr*, struct nlmsghdr**, size_t*))netlink_send;
- this->public.send_ack = (status_t(*)(netlink_socket_t*,struct nlmsghdr*))netlink_send_ack;
- this->public.destroy = (void(*)(netlink_socket_t*))destroy;
-
- /* private members */
- this->seq = 200;
- this->mutex = mutex_create(MUTEX_TYPE_DEFAULT);
+ INIT(this,
+ .public = {
+ .send = _netlink_send,
+ .send_ack = _netlink_send_ack,
+ .destroy = _destroy,
+ },
+ .seq = 200,
+ .mutex = mutex_create(MUTEX_TYPE_DEFAULT),
+ .protocol = protocol,
+ );