1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 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 /* 30 * File: qla_glbl.h 31 * Author : David C Somayajulu, Qlogic Corporation, Aliso Viejo, CA 92656. 32 * Content: Contains prototypes of the exported functions from each file. 33 */ 34 #ifndef _QLA_GLBL_H_ 35 #define _QLA_GLBL_H_ 36 37 /* 38 * from qla_isr.c 39 */ 40 extern void qla_isr(void *arg); 41 extern void qla_rcv(void *context, int pending); 42 43 /* 44 * from qla_os.c 45 */ 46 extern uint32_t std_replenish; 47 extern uint32_t jumbo_replenish; 48 extern uint32_t rcv_pkt_thres; 49 extern uint32_t rcv_pkt_thres_d; 50 extern uint32_t snd_pkt_thres; 51 extern uint32_t free_pkt_thres; 52 53 extern int qla_alloc_dmabuf(qla_host_t *ha, qla_dma_t *dma_buf); 54 extern void qla_free_dmabuf(qla_host_t *ha, qla_dma_t *dma_buf); 55 extern void qla_start(if_t ifp); 56 extern int qla_get_mbuf(qla_host_t *ha, qla_rx_buf_t *rxb, struct mbuf *nmp, 57 uint32_t jumbo); 58 59 /* 60 * from qla_hw.c 61 */ 62 extern int qla_get_msix_count(qla_host_t *ha); 63 extern int qla_alloc_dma(qla_host_t *ha); 64 extern void qla_free_dma(qla_host_t *ha); 65 extern void qla_hw_add_sysctls(qla_host_t *ha); 66 extern int qla_hw_send(qla_host_t *ha, bus_dma_segment_t *segs, int nsegs, 67 uint32_t *tx_idx, struct mbuf *mp); 68 extern int qla_init_hw_if(qla_host_t *ha); 69 extern void qla_get_hw_caps(qla_host_t *ha); 70 extern void qla_hw_set_multi(qla_host_t *ha, uint8_t *mta, uint32_t mcnt, 71 uint32_t add_multi); 72 extern void qla_del_hw_if(qla_host_t *ha); 73 extern void qla_set_promisc(qla_host_t *ha); 74 extern void qla_set_allmulti(qla_host_t *ha); 75 extern void qla_reset_promisc_allmulti(qla_host_t *ha); 76 extern void qla_config_ipv4_addr(qla_host_t *ha, uint32_t ipv4_addr); 77 extern int qla_hw_tx_compl(qla_host_t *ha); 78 extern void qla_update_link_state(qla_host_t *ha); 79 extern void qla_hw_tx_done(qla_host_t *ha); 80 extern int qla_config_lro(qla_host_t *ha); 81 extern void qla_free_lro(qla_host_t *ha); 82 extern int qla_set_max_mtu(qla_host_t *ha, uint32_t mtu, uint16_t cntxt_id); 83 extern void qla_hw_stop_rcv(qla_host_t *ha); 84 85 /* 86 * from qla_misc.c 87 */ 88 extern int qla_init_hw(qla_host_t *ha); 89 extern int qla_rdwr_indreg32(qla_host_t *ha, uint32_t addr, uint32_t *val, 90 uint32_t rd); 91 extern int qla_rd_flash32(qla_host_t *ha, uint32_t addr, uint32_t *data); 92 extern int qla_flash_rd32_words(qla_host_t *ha, uint32_t addr, 93 uint32_t *val, uint32_t num); 94 extern int qla_flash_rd32(qla_host_t *ha, uint32_t addr, uint32_t *val); 95 extern int qla_fw_update(qla_host_t *ha, void *fdata, uint32_t off, 96 uint32_t size); 97 extern int qla_erase_flash(qla_host_t *ha, uint32_t off, uint32_t size); 98 extern int qla_wr_flash_buffer(qla_host_t *ha, uint32_t off, uint32_t size, 99 void *buf, uint32_t pattern); 100 101 /* 102 * from qla_ioctl.c 103 */ 104 extern int qla_make_cdev(qla_host_t *ha); 105 extern void qla_del_cdev(qla_host_t *ha); 106 extern int qla_eioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, 107 struct thread *td); 108 109 #endif /* #ifndef_QLA_GLBL_H_ */ 110