17e5bf684SAlexander V. Chernikov /*- 2*4d846d26SWarner 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_ 307e5bf684SAlexander V. Chernikov 317e5bf684SAlexander V. Chernikov /* 327e5bf684SAlexander V. Chernikov * The file contains headers for the bridge interface between 337e5bf684SAlexander V. Chernikov * linux[_common] module and the netlink module 347e5bf684SAlexander V. Chernikov */ 357e5bf684SAlexander V. Chernikov struct nlpcb; 367e5bf684SAlexander V. Chernikov struct nl_pstate; 377e5bf684SAlexander V. Chernikov 387e5bf684SAlexander V. Chernikov typedef struct mbuf *mbufs_to_linux_cb_t(int netlink_family, struct mbuf *m, 397e5bf684SAlexander V. Chernikov struct nlpcb *nlp); 407e5bf684SAlexander V. Chernikov typedef struct mbuf *msgs_to_linux_cb_t(int netlink_family, char *buf, int data_length, 417e5bf684SAlexander V. Chernikov struct nlpcb *nlp); 427e5bf684SAlexander V. Chernikov typedef struct nlmsghdr *msg_from_linux_cb_t(int netlink_family, struct nlmsghdr *hdr, 437e5bf684SAlexander V. Chernikov struct nl_pstate *npt); 447e5bf684SAlexander V. Chernikov 457e5bf684SAlexander V. Chernikov struct linux_netlink_provider { 467e5bf684SAlexander V. Chernikov mbufs_to_linux_cb_t *mbufs_to_linux; 477e5bf684SAlexander V. Chernikov msgs_to_linux_cb_t *msgs_to_linux; 487e5bf684SAlexander V. Chernikov msg_from_linux_cb_t *msg_from_linux; 497e5bf684SAlexander V. Chernikov 507e5bf684SAlexander V. Chernikov }; 517e5bf684SAlexander V. Chernikov 527e5bf684SAlexander V. Chernikov extern struct linux_netlink_provider *linux_netlink_p; 537e5bf684SAlexander V. Chernikov 547e5bf684SAlexander V. Chernikov #endif 55