1*7e5bf684SAlexander V. Chernikov /*- 2*7e5bf684SAlexander V. Chernikov * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3*7e5bf684SAlexander V. Chernikov * 4*7e5bf684SAlexander V. Chernikov * Copyright (c) 2022 Alexander V. Chernikov <melifaro@FreeBSD.org> 5*7e5bf684SAlexander V. Chernikov * 6*7e5bf684SAlexander V. Chernikov * Redistribution and use in source and binary forms, with or without 7*7e5bf684SAlexander V. Chernikov * modification, are permitted provided that the following conditions 8*7e5bf684SAlexander V. Chernikov * are met: 9*7e5bf684SAlexander V. Chernikov * 1. Redistributions of source code must retain the above copyright 10*7e5bf684SAlexander V. Chernikov * notice, this list of conditions and the following disclaimer. 11*7e5bf684SAlexander V. Chernikov * 2. Redistributions in binary form must reproduce the above copyright 12*7e5bf684SAlexander V. Chernikov * notice, this list of conditions and the following disclaimer in the 13*7e5bf684SAlexander V. Chernikov * documentation and/or other materials provided with the distribution. 14*7e5bf684SAlexander V. Chernikov * 15*7e5bf684SAlexander V. Chernikov * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16*7e5bf684SAlexander V. Chernikov * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17*7e5bf684SAlexander V. Chernikov * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18*7e5bf684SAlexander V. Chernikov * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19*7e5bf684SAlexander V. Chernikov * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20*7e5bf684SAlexander V. Chernikov * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21*7e5bf684SAlexander V. Chernikov * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22*7e5bf684SAlexander V. Chernikov * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23*7e5bf684SAlexander V. Chernikov * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24*7e5bf684SAlexander V. Chernikov * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25*7e5bf684SAlexander V. Chernikov * SUCH DAMAGE. 26*7e5bf684SAlexander V. Chernikov */ 27*7e5bf684SAlexander V. Chernikov 28*7e5bf684SAlexander V. Chernikov #ifndef _NETLINK_LINUX_VAR_H_ 29*7e5bf684SAlexander V. Chernikov #define _NETLINK_LINUX_VAR_H_ 30*7e5bf684SAlexander V. Chernikov 31*7e5bf684SAlexander V. Chernikov /* 32*7e5bf684SAlexander V. Chernikov * The file contains headers for the bridge interface between 33*7e5bf684SAlexander V. Chernikov * linux[_common] module and the netlink module 34*7e5bf684SAlexander V. Chernikov */ 35*7e5bf684SAlexander V. Chernikov struct nlpcb; 36*7e5bf684SAlexander V. Chernikov struct nl_pstate; 37*7e5bf684SAlexander V. Chernikov 38*7e5bf684SAlexander V. Chernikov typedef struct mbuf *mbufs_to_linux_cb_t(int netlink_family, struct mbuf *m, 39*7e5bf684SAlexander V. Chernikov struct nlpcb *nlp); 40*7e5bf684SAlexander V. Chernikov typedef struct mbuf *msgs_to_linux_cb_t(int netlink_family, char *buf, int data_length, 41*7e5bf684SAlexander V. Chernikov struct nlpcb *nlp); 42*7e5bf684SAlexander V. Chernikov typedef struct nlmsghdr *msg_from_linux_cb_t(int netlink_family, struct nlmsghdr *hdr, 43*7e5bf684SAlexander V. Chernikov struct nl_pstate *npt); 44*7e5bf684SAlexander V. Chernikov 45*7e5bf684SAlexander V. Chernikov struct linux_netlink_provider { 46*7e5bf684SAlexander V. Chernikov mbufs_to_linux_cb_t *mbufs_to_linux; 47*7e5bf684SAlexander V. Chernikov msgs_to_linux_cb_t *msgs_to_linux; 48*7e5bf684SAlexander V. Chernikov msg_from_linux_cb_t *msg_from_linux; 49*7e5bf684SAlexander V. Chernikov 50*7e5bf684SAlexander V. Chernikov }; 51*7e5bf684SAlexander V. Chernikov 52*7e5bf684SAlexander V. Chernikov extern struct linux_netlink_provider *linux_netlink_p; 53*7e5bf684SAlexander V. Chernikov 54*7e5bf684SAlexander V. Chernikov #endif 55