1d17b7d87SMarcin Wojtas /*- 20835cc78SMarcin Wojtas * SPDX-License-Identifier: BSD-2-Clause 3d17b7d87SMarcin Wojtas * 4*8d6806cdSOsama Abboud * Copyright (c) 2015-2024 Amazon.com, Inc. or its affiliates. 5d17b7d87SMarcin Wojtas * All rights reserved. 6d17b7d87SMarcin Wojtas * 7d17b7d87SMarcin Wojtas * Redistribution and use in source and binary forms, with or without 8d17b7d87SMarcin Wojtas * modification, are permitted provided that the following conditions 9d17b7d87SMarcin Wojtas * are met: 10d17b7d87SMarcin Wojtas * 11d17b7d87SMarcin Wojtas * 1. Redistributions of source code must retain the above copyright 12d17b7d87SMarcin Wojtas * notice, this list of conditions and the following disclaimer. 13d17b7d87SMarcin Wojtas * 14d17b7d87SMarcin Wojtas * 2. Redistributions in binary form must reproduce the above copyright 15d17b7d87SMarcin Wojtas * notice, this list of conditions and the following disclaimer in the 16d17b7d87SMarcin Wojtas * documentation and/or other materials provided with the distribution. 17d17b7d87SMarcin Wojtas * 18d17b7d87SMarcin Wojtas * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19d17b7d87SMarcin Wojtas * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20d17b7d87SMarcin Wojtas * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21d17b7d87SMarcin Wojtas * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22d17b7d87SMarcin Wojtas * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23d17b7d87SMarcin Wojtas * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24d17b7d87SMarcin Wojtas * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25d17b7d87SMarcin Wojtas * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26d17b7d87SMarcin Wojtas * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27d17b7d87SMarcin Wojtas * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28d17b7d87SMarcin Wojtas * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29d17b7d87SMarcin Wojtas * 30d17b7d87SMarcin Wojtas */ 31d17b7d87SMarcin Wojtas 32d17b7d87SMarcin Wojtas #ifndef _ENA_NETMAP_H_ 33d17b7d87SMarcin Wojtas #define _ENA_NETMAP_H_ 34d17b7d87SMarcin Wojtas 35d17b7d87SMarcin Wojtas /* Undef (un)likely as they are defined in netmap_kern.h */ 36d17b7d87SMarcin Wojtas #ifdef likely 37d17b7d87SMarcin Wojtas #undef likely 38d17b7d87SMarcin Wojtas #endif /* likely */ 39d17b7d87SMarcin Wojtas #ifdef unlikely 40d17b7d87SMarcin Wojtas #undef unlikely 41d17b7d87SMarcin Wojtas #endif /* unlikely */ 42d17b7d87SMarcin Wojtas 43d17b7d87SMarcin Wojtas #include <sys/selinfo.h> 4482e558eaSDawid Gorecki 4582e558eaSDawid Gorecki #include <net/netmap.h> 4682e558eaSDawid Gorecki 47d17b7d87SMarcin Wojtas #include <dev/netmap/netmap_kern.h> 48d17b7d87SMarcin Wojtas 4902a2a7ceSMarcin Wojtas int ena_netmap_attach(struct ena_adapter *adapter); 5002a2a7ceSMarcin Wojtas int ena_netmap_alloc_rx_slot(struct ena_adapter *adapter, 5102a2a7ceSMarcin Wojtas struct ena_ring *rx_ring, struct ena_rx_buffer *rx_info); 5202a2a7ceSMarcin Wojtas void ena_netmap_free_rx_slot(struct ena_adapter *adapter, 5302a2a7ceSMarcin Wojtas struct ena_ring *rx_ring, struct ena_rx_buffer *rx_info); 5402a2a7ceSMarcin Wojtas bool ena_rx_ring_in_netmap(struct ena_adapter *adapter, int qid); 5502a2a7ceSMarcin Wojtas bool ena_tx_ring_in_netmap(struct ena_adapter *adapter, int qid); 5602a2a7ceSMarcin Wojtas void ena_netmap_reset_rx_ring(struct ena_adapter *adapter, int qid); 5702a2a7ceSMarcin Wojtas void ena_netmap_reset_tx_ring(struct ena_adapter *adapter, int qid); 5802a2a7ceSMarcin Wojtas void ena_netmap_unload(struct ena_adapter *adapter, bus_dmamap_t map); 59d17b7d87SMarcin Wojtas 60d17b7d87SMarcin Wojtas #endif /* _ENA_NETMAP_H_ */ 61