17e5bf684SAlexander V. Chernikov /*- 24d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 37e5bf684SAlexander V. Chernikov * 47e5bf684SAlexander V. Chernikov * Copyright (c) 2022 Alexander V. Chernikov <melifaro@FreeBSD.org> 57e5bf684SAlexander V. Chernikov * 67e5bf684SAlexander V. Chernikov * Redistribution and use in source and binary forms, with or without 77e5bf684SAlexander V. Chernikov * modification, are permitted provided that the following conditions 87e5bf684SAlexander V. Chernikov * are met: 97e5bf684SAlexander V. Chernikov * 1. Redistributions of source code must retain the above copyright 107e5bf684SAlexander V. Chernikov * notice, this list of conditions and the following disclaimer. 117e5bf684SAlexander V. Chernikov * 2. Redistributions in binary form must reproduce the above copyright 127e5bf684SAlexander V. Chernikov * notice, this list of conditions and the following disclaimer in the 137e5bf684SAlexander V. Chernikov * documentation and/or other materials provided with the distribution. 147e5bf684SAlexander V. Chernikov * 157e5bf684SAlexander V. Chernikov * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 167e5bf684SAlexander V. Chernikov * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 177e5bf684SAlexander V. Chernikov * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 187e5bf684SAlexander V. Chernikov * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 197e5bf684SAlexander V. Chernikov * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 207e5bf684SAlexander V. Chernikov * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 217e5bf684SAlexander V. Chernikov * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 227e5bf684SAlexander V. Chernikov * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 237e5bf684SAlexander V. Chernikov * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 247e5bf684SAlexander V. Chernikov * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 257e5bf684SAlexander V. Chernikov * SUCH DAMAGE. 267e5bf684SAlexander V. Chernikov */ 277e5bf684SAlexander V. Chernikov 287e5bf684SAlexander V. Chernikov #ifndef _NETLINK_LINUX_VAR_H_ 297e5bf684SAlexander V. Chernikov #define _NETLINK_LINUX_VAR_H_ 3017083b94SGleb Smirnoff #ifdef _KERNEL 317e5bf684SAlexander V. Chernikov 327e5bf684SAlexander V. Chernikov /* 337e5bf684SAlexander V. Chernikov * The file contains headers for the bridge interface between 347e5bf684SAlexander V. Chernikov * linux[_common] module and the netlink module 357e5bf684SAlexander V. Chernikov */ 367e5bf684SAlexander V. Chernikov struct nlpcb; 377e5bf684SAlexander V. Chernikov struct nl_pstate; 3817083b94SGleb Smirnoff struct nl_writer; 397e5bf684SAlexander V. Chernikov 4017083b94SGleb Smirnoff typedef bool msgs_to_linux_cb_t(struct nl_writer *nw, struct nlpcb *nlp); 41*b977dd1eSGleb Smirnoff typedef int msg_from_linux_cb_t(int netlink_family, struct nlmsghdr **hdr, 427e5bf684SAlexander V. Chernikov struct nl_pstate *npt); 437e5bf684SAlexander V. Chernikov 447e5bf684SAlexander V. Chernikov struct linux_netlink_provider { 457e5bf684SAlexander V. Chernikov msgs_to_linux_cb_t *msgs_to_linux; 467e5bf684SAlexander V. Chernikov msg_from_linux_cb_t *msg_from_linux; 477e5bf684SAlexander V. Chernikov 487e5bf684SAlexander V. Chernikov }; 497e5bf684SAlexander V. Chernikov 507e5bf684SAlexander V. Chernikov extern struct linux_netlink_provider *linux_netlink_p; 517e5bf684SAlexander V. Chernikov 527e5bf684SAlexander V. Chernikov #endif 5317083b94SGleb Smirnoff #endif 54