1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD 3 * 4 * Copyright (c) 2011-2013 Qlogic Corporation 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 * POSSIBILITY OF SUCH DAMAGE. 28 * 29 * $FreeBSD$ 30 */ 31 /* 32 * File: qla_glbl.h 33 * Author : David C Somayajulu, Qlogic Corporation, Aliso Viejo, CA 92656. 34 * Content: Contains prototypes of the exported functions from each file. 35 */ 36 #ifndef _QLA_GLBL_H_ 37 #define _QLA_GLBL_H_ 38 39 /* 40 * from qla_isr.c 41 */ 42 extern void qla_isr(void *arg); 43 extern void qla_rcv(void *context, int pending); 44 45 /* 46 * from qla_os.c 47 */ 48 extern uint32_t std_replenish; 49 extern uint32_t jumbo_replenish; 50 extern uint32_t rcv_pkt_thres; 51 extern uint32_t rcv_pkt_thres_d; 52 extern uint32_t snd_pkt_thres; 53 extern uint32_t free_pkt_thres; 54 55 extern int qla_alloc_dmabuf(qla_host_t *ha, qla_dma_t *dma_buf); 56 extern void qla_free_dmabuf(qla_host_t *ha, qla_dma_t *dma_buf); 57 extern void qla_start(if_t ifp); 58 extern int qla_get_mbuf(qla_host_t *ha, qla_rx_buf_t *rxb, struct mbuf *nmp, 59 uint32_t jumbo); 60 61 /* 62 * from qla_hw.c 63 */ 64 extern int qla_get_msix_count(qla_host_t *ha); 65 extern int qla_alloc_dma(qla_host_t *ha); 66 extern void qla_free_dma(qla_host_t *ha); 67 extern void qla_hw_add_sysctls(qla_host_t *ha); 68 extern int qla_hw_send(qla_host_t *ha, bus_dma_segment_t *segs, int nsegs, 69 uint32_t *tx_idx, struct mbuf *mp); 70 extern int qla_init_hw_if(qla_host_t *ha); 71 extern void qla_get_hw_caps(qla_host_t *ha); 72 extern void qla_hw_set_multi(qla_host_t *ha, uint8_t *mta, uint32_t mcnt, 73 uint32_t add_multi); 74 extern void qla_del_hw_if(qla_host_t *ha); 75 extern void qla_set_promisc(qla_host_t *ha); 76 extern void qla_set_allmulti(qla_host_t *ha); 77 extern void qla_reset_promisc_allmulti(qla_host_t *ha); 78 extern void qla_config_ipv4_addr(qla_host_t *ha, uint32_t ipv4_addr); 79 extern int qla_hw_tx_compl(qla_host_t *ha); 80 extern void qla_update_link_state(qla_host_t *ha); 81 extern void qla_hw_tx_done(qla_host_t *ha); 82 extern int qla_config_lro(qla_host_t *ha); 83 extern void qla_free_lro(qla_host_t *ha); 84 extern int qla_set_max_mtu(qla_host_t *ha, uint32_t mtu, uint16_t cntxt_id); 85 extern void qla_hw_stop_rcv(qla_host_t *ha); 86 87 /* 88 * from qla_misc.c 89 */ 90 extern int qla_init_hw(qla_host_t *ha); 91 extern int qla_rdwr_indreg32(qla_host_t *ha, uint32_t addr, uint32_t *val, 92 uint32_t rd); 93 extern int qla_rd_flash32(qla_host_t *ha, uint32_t addr, uint32_t *data); 94 extern int qla_flash_rd32_words(qla_host_t *ha, uint32_t addr, 95 uint32_t *val, uint32_t num); 96 extern int qla_flash_rd32(qla_host_t *ha, uint32_t addr, uint32_t *val); 97 extern int qla_fw_update(qla_host_t *ha, void *fdata, uint32_t off, 98 uint32_t size); 99 extern int qla_erase_flash(qla_host_t *ha, uint32_t off, uint32_t size); 100 extern int qla_wr_flash_buffer(qla_host_t *ha, uint32_t off, uint32_t size, 101 void *buf, uint32_t pattern); 102 103 /* 104 * from qla_ioctl.c 105 */ 106 extern int qla_make_cdev(qla_host_t *ha); 107 extern void qla_del_cdev(qla_host_t *ha); 108 extern int qla_eioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, 109 struct thread *td); 110 111 #endif /* #ifndef_QLA_GLBL_H_ */ 112