1252206Sdavidcs/*
2252206Sdavidcs * Copyright (c) 2013-2014 Qlogic Corporation
3252206Sdavidcs * All rights reserved.
4252206Sdavidcs *
5252206Sdavidcs *  Redistribution and use in source and binary forms, with or without
6252206Sdavidcs *  modification, are permitted provided that the following conditions
7252206Sdavidcs *  are met:
8252206Sdavidcs *
9252206Sdavidcs *  1. Redistributions of source code must retain the above copyright
10252206Sdavidcs *     notice, this list of conditions and the following disclaimer.
11252206Sdavidcs *  2. Redistributions in binary form must reproduce the above copyright
12252206Sdavidcs *     notice, this list of conditions and the following disclaimer in the
13252206Sdavidcs *     documentation and/or other materials provided with the distribution.
14252206Sdavidcs *
15252206Sdavidcs *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16252206Sdavidcs *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17252206Sdavidcs *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18252206Sdavidcs *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19252206Sdavidcs *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20252206Sdavidcs *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21252206Sdavidcs *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22252206Sdavidcs *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23252206Sdavidcs *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24252206Sdavidcs *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25252206Sdavidcs *  POSSIBILITY OF SUCH DAMAGE.
26252206Sdavidcs *
27252206Sdavidcs * $FreeBSD: releng/10.3/sys/dev/qlxge/qls_glbl.h 252206 2013-06-25 17:50:22Z davidcs $
28252206Sdavidcs */
29252206Sdavidcs/*
30252206Sdavidcs * File: qls_glbl.h
31252206Sdavidcs * Author : David C Somayajulu, Qlogic Corporation, Aliso Viejo, CA 92656.
32252206Sdavidcs * Content: Contains prototypes of the exported functions from each file.
33252206Sdavidcs */
34252206Sdavidcs#ifndef _QLS_GLBL_H_
35252206Sdavidcs#define _QLS_GLBL_H_
36252206Sdavidcs
37252206Sdavidcs/*
38252206Sdavidcs * from qls_isr.c
39252206Sdavidcs */
40252206Sdavidcs
41252206Sdavidcsextern void qls_isr(void *arg);
42252206Sdavidcs
43252206Sdavidcs/*
44252206Sdavidcs * from qls_os.c
45252206Sdavidcs */
46252206Sdavidcs
47252206Sdavidcsextern int qls_alloc_dmabuf(qla_host_t *ha, qla_dma_t *dma_buf);
48252206Sdavidcsextern void qls_free_dmabuf(qla_host_t *ha, qla_dma_t *dma_buf);
49252206Sdavidcsextern int qls_get_mbuf(qla_host_t *ha, qla_rx_buf_t *rxb, struct mbuf *nmp);
50252206Sdavidcs
51252206Sdavidcs/*
52252206Sdavidcs * from qls_hw.c
53252206Sdavidcs */
54252206Sdavidcs
55252206Sdavidcsextern int qls_init_host_fw(qla_host_t *ha);
56252206Sdavidcsextern int qls_get_msix_count(qla_host_t *ha);
57252206Sdavidcs
58252206Sdavidcsextern void qls_hw_add_sysctls(qla_host_t *ha);
59252206Sdavidcs
60252206Sdavidcsextern void qls_free_dma(qla_host_t *ha);
61252206Sdavidcsextern int qls_alloc_dma(qla_host_t *ha);
62252206Sdavidcs
63252206Sdavidcsextern int qls_set_promisc(qla_host_t *ha);
64252206Sdavidcsextern void qls_reset_promisc(qla_host_t *ha);
65252206Sdavidcsextern int qls_set_allmulti(qla_host_t *ha);
66252206Sdavidcsextern void qls_reset_allmulti(qla_host_t *ha);
67252206Sdavidcs
68252206Sdavidcsextern int qls_hw_tx_done(qla_host_t *ha, uint32_t txr_idx);
69252206Sdavidcs
70252206Sdavidcsextern int qls_hw_send(qla_host_t *ha, bus_dma_segment_t *segs, int nsegs,
71252206Sdavidcs		uint32_t tx_idx, struct mbuf *mp, uint32_t txr_idx);
72252206Sdavidcs
73252206Sdavidcsextern void qls_del_hw_if(qla_host_t *ha);
74252206Sdavidcsextern int qls_init_hw_if(qla_host_t *ha);
75252206Sdavidcs
76252206Sdavidcsextern void qls_hw_set_multi(qla_host_t *ha, uint8_t *mta, uint32_t mcnt,
77252206Sdavidcs	uint32_t add_multi);
78252206Sdavidcs
79252206Sdavidcsextern void qls_update_link_state(qla_host_t *ha);
80252206Sdavidcs
81252206Sdavidcsextern int qls_init_hw(qla_host_t *ha);
82252206Sdavidcs
83252206Sdavidcsextern int qls_rd_flash32(qla_host_t *ha, uint32_t addr, uint32_t *data);
84252206Sdavidcsextern int qls_rd_nic_params(qla_host_t *ha);
85252206Sdavidcs
86252206Sdavidcsextern int qls_mbx_rd_reg(qla_host_t *ha, uint32_t reg, uint32_t *data);
87252206Sdavidcsextern int qls_mbx_wr_reg(qla_host_t *ha, uint32_t reg, uint32_t data);
88252206Sdavidcsextern int qls_mpi_risc_rd_reg(qla_host_t *ha, uint32_t reg, uint32_t *data);
89252206Sdavidcsextern int qls_mpi_risc_wr_reg(qla_host_t *ha, uint32_t reg, uint32_t data);
90252206Sdavidcs
91252206Sdavidcsextern int qls_mbx_dump_risc_ram(qla_host_t *ha, void *buf, uint32_t r_addr,
92252206Sdavidcs		uint32_t r_size);
93252206Sdavidcs
94252206Sdavidcsextern int qls_mpi_reset(qla_host_t *ha);
95252206Sdavidcs
96252206Sdavidcs/*
97252206Sdavidcs * from qls_ioctl.c
98252206Sdavidcs */
99252206Sdavidcs
100252206Sdavidcsextern int qls_make_cdev(qla_host_t *ha);
101252206Sdavidcsextern void qls_del_cdev(qla_host_t *ha);
102252206Sdavidcs
103252206Sdavidcsextern int qls_mpi_core_dump(qla_host_t *ha);
104252206Sdavidcs
105252206Sdavidcs#endif /* #ifndef_QLS_GLBL_H_ */
106