1*d14abf15SRobert Mustacchi 
2*d14abf15SRobert Mustacchi /*****************************************************************************
3*d14abf15SRobert Mustacchi  * CDDL HEADER START
4*d14abf15SRobert Mustacchi  *
5*d14abf15SRobert Mustacchi  * The contents of this file are subject to the terms of the
6*d14abf15SRobert Mustacchi  * Common Development and Distribution License (the "License").
7*d14abf15SRobert Mustacchi  * You may not use this file except in compliance with the License.
8*d14abf15SRobert Mustacchi  *
9*d14abf15SRobert Mustacchi  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*d14abf15SRobert Mustacchi  * or http://www.opensolaris.org/os/licensing.
11*d14abf15SRobert Mustacchi  * See the License for the specific language governing permissions
12*d14abf15SRobert Mustacchi  * and limitations under the License.
13*d14abf15SRobert Mustacchi  *
14*d14abf15SRobert Mustacchi  * When distributing Covered Code, include this CDDL HEADER in each
15*d14abf15SRobert Mustacchi  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*d14abf15SRobert Mustacchi  * If applicable, add the following below this CDDL HEADER, with the
17*d14abf15SRobert Mustacchi  * fields enclosed by brackets "[]" replaced with your own identifying
18*d14abf15SRobert Mustacchi  * information: Portions Copyright [yyyy] [name of copyright owner]
19*d14abf15SRobert Mustacchi  *
20*d14abf15SRobert Mustacchi  * CDDL HEADER END
21*d14abf15SRobert Mustacchi  *
22*d14abf15SRobert Mustacchi  * Copyright 2014 QLogic Corporation
23*d14abf15SRobert Mustacchi  * The contents of this file are subject to the terms of the
24*d14abf15SRobert Mustacchi  * QLogic End User License (the "License").
25*d14abf15SRobert Mustacchi  * You may not use this file except in compliance with the License.
26*d14abf15SRobert Mustacchi  *
27*d14abf15SRobert Mustacchi  * You can obtain a copy of the License at
28*d14abf15SRobert Mustacchi  * http://www.qlogic.com/Resources/Documents/DriverDownloadHelp/
29*d14abf15SRobert Mustacchi  * QLogic_End_User_Software_License.txt
30*d14abf15SRobert Mustacchi  * See the License for the specific language governing permissions
31*d14abf15SRobert Mustacchi  * and limitations under the License.
32*d14abf15SRobert Mustacchi  *
33*d14abf15SRobert Mustacchi  *****************************************************************************/
34*d14abf15SRobert Mustacchi 
35*d14abf15SRobert Mustacchi #if defined(USER_LINUX)
36*d14abf15SRobert Mustacchi typedef int mm_spin_lock_t;
37*d14abf15SRobert Mustacchi 
38*d14abf15SRobert Mustacchi #else
39*d14abf15SRobert Mustacchi 
40*d14abf15SRobert Mustacchi #include "ediag_compat.h"
41*d14abf15SRobert Mustacchi 
42*d14abf15SRobert Mustacchi // portable integer type of the pointer size for current platform (64/32)
43*d14abf15SRobert Mustacchi typedef unsigned long mm_int_ptr_t;
44*d14abf15SRobert Mustacchi 
45*d14abf15SRobert Mustacchi typedef struct semaphore_t * mm_spin_lock_t;
46*d14abf15SRobert Mustacchi 
47*d14abf15SRobert Mustacchi 
48*d14abf15SRobert Mustacchi #define mm_read_barrier_imp() \
49*d14abf15SRobert Mustacchi     do {                      \
50*d14abf15SRobert Mustacchi         barrier();            \
51*d14abf15SRobert Mustacchi         ediag_rmb();          \
52*d14abf15SRobert Mustacchi     } while(0)
53*d14abf15SRobert Mustacchi 
54*d14abf15SRobert Mustacchi #define mm_write_barrier_imp() \
55*d14abf15SRobert Mustacchi     do {                       \
56*d14abf15SRobert Mustacchi         barrier();             \
57*d14abf15SRobert Mustacchi         ediag_wmb();           \
58*d14abf15SRobert Mustacchi     } while(0)
59*d14abf15SRobert Mustacchi 
60*d14abf15SRobert Mustacchi #define mm_barrier_imp() \
61*d14abf15SRobert Mustacchi     do {                 \
62*d14abf15SRobert Mustacchi         barrier();       \
63*d14abf15SRobert Mustacchi         ediag_rmb();     \
64*d14abf15SRobert Mustacchi         ediag_wmb();     \
65*d14abf15SRobert Mustacchi     } while(0)
66*d14abf15SRobert Mustacchi 
67*d14abf15SRobert Mustacchi #define mm_atomic_set_imp(_p, _v) ediag_atomic_set((s32_t *)_p, (s32_t)_v)
68*d14abf15SRobert Mustacchi 
69*d14abf15SRobert Mustacchi #define mm_atomic_dec_imp(_p) ediag_atomic_dec_and_test((s32_t *)_p)
70*d14abf15SRobert Mustacchi 
71*d14abf15SRobert Mustacchi /* returns the decremented value */
72*d14abf15SRobert Mustacchi #define mm_atomic_inc_imp(_p) ediag_atomic_inc_and_test((s32_t *)_p)
73*d14abf15SRobert Mustacchi 
74*d14abf15SRobert Mustacchi #define mm_atomic_read_imp(_p) ediag_atomic_read((s32_t *)_p)
75*d14abf15SRobert Mustacchi 
76*d14abf15SRobert Mustacchi #define mm_atomic_long_read_imp(_p) ediag_atomic_long_read((unsigned long *)_p)
77*d14abf15SRobert Mustacchi 
78*d14abf15SRobert Mustacchi #define mm_atomic_cmpxchg_imp(_p, _cmp, _new_v) ediag_atomic_cmpxchg((s32_t *)_p, (int)_cmp, (int)_new_v)
79*d14abf15SRobert Mustacchi 
80*d14abf15SRobert Mustacchi 
81*d14abf15SRobert Mustacchi #define mm_atomic_and_imp(p, v) \
82*d14abf15SRobert Mustacchi do {                            \
83*d14abf15SRobert Mustacchi     *(p) = *(p) & (v);          \
84*d14abf15SRobert Mustacchi } while (0)
85*d14abf15SRobert Mustacchi 
86*d14abf15SRobert Mustacchi #define mm_atomic_long_and_imp(p, v) mm_atomic_and((p), (v))
87*d14abf15SRobert Mustacchi 
88*d14abf15SRobert Mustacchi #define mm_atomic_or_imp(p, v) \
89*d14abf15SRobert Mustacchi do {                           \
90*d14abf15SRobert Mustacchi     *(p) = *(p) | (v);         \
91*d14abf15SRobert Mustacchi } while (0)
92*d14abf15SRobert Mustacchi 
93*d14abf15SRobert Mustacchi #define mm_atomic_long_or_imp(p, v) mm_atomic_or((p), (v))
94*d14abf15SRobert Mustacchi 
95*d14abf15SRobert Mustacchi 
96*d14abf15SRobert Mustacchi #define MM_WRITE_DOORBELL_IMP(PDEV, BAR, CID, VAL) \
97*d14abf15SRobert Mustacchi     LM_BAR_WR32_ADDRESS((PDEV), ((u8_t *)PFDEV(PDEV)->context_info->array[VF_TO_PF_CID((PDEV),(CID))].cid_resc.mapped_cid_bar_addr + (DPM_TRIGER_TYPE)), (VAL))
98*d14abf15SRobert Mustacchi 
99*d14abf15SRobert Mustacchi #define MM_REGISTER_LPME_IMP(_pdev, _func, _b_fw_access, _b_queue_for_fw) \
100*d14abf15SRobert Mustacchi     (LM_STATUS_SUCCESS)
101*d14abf15SRobert Mustacchi 
102*d14abf15SRobert Mustacchi #define MM_DCB_MP_L2_IS_ENABLE(_pdev)  (FALSE)
103*d14abf15SRobert Mustacchi 
104*d14abf15SRobert Mustacchi void MM_ACQUIRE_SPQ_LOCK_IMP(struct _lm_device_t *_pdev);
105*d14abf15SRobert Mustacchi void MM_RELEASE_SPQ_LOCK_IMP(struct _lm_device_t *_pdev);
106*d14abf15SRobert Mustacchi void MM_ACQUIRE_SPQ_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
107*d14abf15SRobert Mustacchi void MM_RELEASE_SPQ_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
108*d14abf15SRobert Mustacchi 
109*d14abf15SRobert Mustacchi void MM_ACQUIRE_CID_LOCK_IMP(struct _lm_device_t *_pdev);
110*d14abf15SRobert Mustacchi void MM_RELEASE_CID_LOCK_IMP(struct _lm_device_t *_pdev);
111*d14abf15SRobert Mustacchi 
112*d14abf15SRobert Mustacchi void MM_ACQUIRE_REQUEST_LOCK_IMP(struct _lm_device_t *_pdev);
113*d14abf15SRobert Mustacchi void MM_RELEASE_REQUEST_LOCK_IMP(struct _lm_device_t *_pdev);
114*d14abf15SRobert Mustacchi 
115*d14abf15SRobert Mustacchi void MM_ACQUIRE_REQUEST_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
116*d14abf15SRobert Mustacchi void MM_RELEASE_REQUEST_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
117*d14abf15SRobert Mustacchi 
118*d14abf15SRobert Mustacchi void MM_ACQUIRE_PHY_LOCK_IMP(struct _lm_device_t *_pdev);
119*d14abf15SRobert Mustacchi void MM_RELEASE_PHY_LOCK_IMP(struct _lm_device_t *_pdev);
120*d14abf15SRobert Mustacchi void MM_ACQUIRE_PHY_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
121*d14abf15SRobert Mustacchi void MM_RELEASE_PHY_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
122*d14abf15SRobert Mustacchi 
123*d14abf15SRobert Mustacchi 
124*d14abf15SRobert Mustacchi void MM_ACQUIRE_ISLES_CONTROL_LOCK_IMP(struct _lm_device_t *_pdev);
125*d14abf15SRobert Mustacchi void MM_RELEASE_ISLES_CONTROL_LOCK_IMP(struct _lm_device_t *_pdev);
126*d14abf15SRobert Mustacchi void MM_ACQUIRE_ISLES_CONTROL_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
127*d14abf15SRobert Mustacchi void MM_RELEASE_ISLES_CONTROL_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
128*d14abf15SRobert Mustacchi 
129*d14abf15SRobert Mustacchi void MM_ACQUIRE_RAMROD_COMP_LOCK_IMP(struct _lm_device_t *_pdev);
130*d14abf15SRobert Mustacchi void MM_RELEASE_RAMROD_COMP_LOCK_IMP(struct _lm_device_t *_pdev);
131*d14abf15SRobert Mustacchi 
132*d14abf15SRobert Mustacchi 
133*d14abf15SRobert Mustacchi 
134*d14abf15SRobert Mustacchi 
135*d14abf15SRobert Mustacchi #define MM_ACQUIRE_IND_REG_LOCK_IMP(pdev)
136*d14abf15SRobert Mustacchi #define MM_RELEASE_IND_REG_LOCK_IMP(pdev)
137*d14abf15SRobert Mustacchi 
138*d14abf15SRobert Mustacchi void MM_ACQUIRE_LOADER_LOCK_IMP(void);
139*d14abf15SRobert Mustacchi void MM_RELEASE_LOADER_LOCK_IMP(void);
140*d14abf15SRobert Mustacchi 
141*d14abf15SRobert Mustacchi void MM_ACQUIRE_SP_REQ_MGR_LOCK_IMP(struct _lm_device_t *pdev);
142*d14abf15SRobert Mustacchi void MM_RELEASE_SP_REQ_MGR_LOCK_IMP(struct _lm_device_t *pdev);
143*d14abf15SRobert Mustacchi 
144*d14abf15SRobert Mustacchi void MM_ACQUIRE_MCP_LOCK_IMP(struct _lm_device_t *pdev);
145*d14abf15SRobert Mustacchi void MM_RELEASE_MCP_LOCK_IMP(struct _lm_device_t *pdev);
146*d14abf15SRobert Mustacchi 
147*d14abf15SRobert Mustacchi void MM_ACQUIRE_SB_LOCK_IMP(struct _lm_device_t *_pdev, u8_t _sb_idx);
148*d14abf15SRobert Mustacchi void MM_RELEASE_SB_LOCK_IMP(struct _lm_device_t *_pdev, u8_t _sb_idx);
149*d14abf15SRobert Mustacchi 
150*d14abf15SRobert Mustacchi void MM_ACQUIRE_ETH_CON_LOCK_IMP(struct _lm_device_t *pdev);
151*d14abf15SRobert Mustacchi void MM_RELEASE_ETH_CON_LOCK_IMP(struct _lm_device_t *pdev);
152*d14abf15SRobert Mustacchi 
153*d14abf15SRobert Mustacchi #ifdef VF_INVOLVED
154*d14abf15SRobert Mustacchi 
155*d14abf15SRobert Mustacchi void MM_ACQUIRE_PF_LOCK_IMP(struct _lm_device_t *pdev);
156*d14abf15SRobert Mustacchi void MM_RELEASE_PF_LOCK_IMP(struct _lm_device_t *pdev);
157*d14abf15SRobert Mustacchi 
158*d14abf15SRobert Mustacchi void MM_ACQUIRE_VFS_STATS_LOCK_IMP(struct _lm_device_t *_pdev);
159*d14abf15SRobert Mustacchi void MM_RELEASE_VFS_STATS_LOCK_IMP(struct _lm_device_t *_pdev);
160*d14abf15SRobert Mustacchi void MM_ACQUIRE_VFS_STATS_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
161*d14abf15SRobert Mustacchi void MM_RELEASE_VFS_STATS_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
162*d14abf15SRobert Mustacchi 
163*d14abf15SRobert Mustacchi #endif /* VF_INVOLVED */
164*d14abf15SRobert Mustacchi 
165*d14abf15SRobert Mustacchi 
166*d14abf15SRobert Mustacchi #define mm_er_initiate_recovery_imp(pdev) \
167*d14abf15SRobert Mustacchi     (LM_STATUS_FAILURE)
168*d14abf15SRobert Mustacchi 
169*d14abf15SRobert Mustacchi #define mm_register_dpc_imp(_pdev, _func) \
170*d14abf15SRobert Mustacchi     (LM_STATUS_FAILURE)
171*d14abf15SRobert Mustacchi 
172*d14abf15SRobert Mustacchi #define mm_empty_ramrod_received_imp(pdev, empty_data)
173*d14abf15SRobert Mustacchi 
174*d14abf15SRobert Mustacchi #define mm_dbus_start_if_enabled_imp(_pdev)
175*d14abf15SRobert Mustacchi #define mm_dbus_stop_if_started_imp(_pdev)
176*d14abf15SRobert Mustacchi 
177*d14abf15SRobert Mustacchi 
178*d14abf15SRobert Mustacchi lm_status_t mm_get_bar_offset_imp(struct _lm_device_t *pdev,
179*d14abf15SRobert Mustacchi                                    u8_t barn,
180*d14abf15SRobert Mustacchi                                    lm_address_t *bar_addr);
181*d14abf15SRobert Mustacchi 
182*d14abf15SRobert Mustacchi lm_status_t mm_get_bar_size_imp(struct _lm_device_t *pdev,
183*d14abf15SRobert Mustacchi                                  u8_t bar_num,
184*d14abf15SRobert Mustacchi                                  u32_t *bar_sz);
185*d14abf15SRobert Mustacchi 
186*d14abf15SRobert Mustacchi 
187*d14abf15SRobert Mustacchi 
188*d14abf15SRobert Mustacchi lm_status_t mm_get_bar_size(
189*d14abf15SRobert Mustacchi 	struct _lm_device_t  * pdev,
190*d14abf15SRobert Mustacchi     u8_t                   bar_num,
191*d14abf15SRobert Mustacchi 	u32_t                * bar_sz
192*d14abf15SRobert Mustacchi 	);
193*d14abf15SRobert Mustacchi 
194*d14abf15SRobert Mustacchi void mm_bar_read_byte(
195*d14abf15SRobert Mustacchi 	struct _lm_device_t * _pdev,
196*d14abf15SRobert Mustacchi 	u8_t                  bar,
197*d14abf15SRobert Mustacchi 	u32_t                 offset,
198*d14abf15SRobert Mustacchi 	u8_t                * ret
199*d14abf15SRobert Mustacchi 	);
200*d14abf15SRobert Mustacchi 
201*d14abf15SRobert Mustacchi 
202*d14abf15SRobert Mustacchi void mm_bar_read_word(
203*d14abf15SRobert Mustacchi 	struct _lm_device_t * _pdev,
204*d14abf15SRobert Mustacchi 	u8_t                  bar,
205*d14abf15SRobert Mustacchi 	u32_t                 offset,
206*d14abf15SRobert Mustacchi 	u16_t               * ret
207*d14abf15SRobert Mustacchi 	);
208*d14abf15SRobert Mustacchi 
209*d14abf15SRobert Mustacchi void mm_bar_read_dword(
210*d14abf15SRobert Mustacchi 	struct _lm_device_t * _pdev,
211*d14abf15SRobert Mustacchi 	u8_t                  bar,
212*d14abf15SRobert Mustacchi 	u32_t                 offset,
213*d14abf15SRobert Mustacchi 	u32_t               * ret
214*d14abf15SRobert Mustacchi 	);
215*d14abf15SRobert Mustacchi 
216*d14abf15SRobert Mustacchi 
217*d14abf15SRobert Mustacchi void mm_bar_read_ddword(
218*d14abf15SRobert Mustacchi 	struct _lm_device_t * _pdev,
219*d14abf15SRobert Mustacchi 	u8_t                  bar,
220*d14abf15SRobert Mustacchi 	u32_t                 offset,
221*d14abf15SRobert Mustacchi 	u64_t               * ret
222*d14abf15SRobert Mustacchi 	);
223*d14abf15SRobert Mustacchi 
224*d14abf15SRobert Mustacchi 
225*d14abf15SRobert Mustacchi void mm_bar_write_byte(
226*d14abf15SRobert Mustacchi 	struct _lm_device_t * _pdev,
227*d14abf15SRobert Mustacchi 	u8_t                  bar,
228*d14abf15SRobert Mustacchi 	u32_t                 offset,
229*d14abf15SRobert Mustacchi 	u8_t                  val
230*d14abf15SRobert Mustacchi 	);
231*d14abf15SRobert Mustacchi 
232*d14abf15SRobert Mustacchi 
233*d14abf15SRobert Mustacchi void mm_bar_write_word(
234*d14abf15SRobert Mustacchi 	struct _lm_device_t * _pdev,
235*d14abf15SRobert Mustacchi 	u8_t                  bar,
236*d14abf15SRobert Mustacchi 	u32_t                 offset,
237*d14abf15SRobert Mustacchi 	u16_t                 val
238*d14abf15SRobert Mustacchi 	);
239*d14abf15SRobert Mustacchi 
240*d14abf15SRobert Mustacchi 
241*d14abf15SRobert Mustacchi void mm_bar_write_dword(
242*d14abf15SRobert Mustacchi 	struct _lm_device_t * _pdev,
243*d14abf15SRobert Mustacchi 	u8_t                  bar,
244*d14abf15SRobert Mustacchi 	u32_t                 offset,
245*d14abf15SRobert Mustacchi 	u32_t                 val
246*d14abf15SRobert Mustacchi 	);
247*d14abf15SRobert Mustacchi 
248*d14abf15SRobert Mustacchi 
249*d14abf15SRobert Mustacchi void mm_io_write_dword(
250*d14abf15SRobert Mustacchi 	struct _lm_device_t * _pdev,
251*d14abf15SRobert Mustacchi 	void                * addr,
252*d14abf15SRobert Mustacchi 	u32_t                 val
253*d14abf15SRobert Mustacchi 	);
254*d14abf15SRobert Mustacchi 
255*d14abf15SRobert Mustacchi 
256*d14abf15SRobert Mustacchi void mm_bar_write_ddword(
257*d14abf15SRobert Mustacchi 	struct _lm_device_t * _pdev,
258*d14abf15SRobert Mustacchi 	u8_t                  bar,
259*d14abf15SRobert Mustacchi 	u32_t                 offset,
260*d14abf15SRobert Mustacchi 	u64_t                 val
261*d14abf15SRobert Mustacchi 	);
262*d14abf15SRobert Mustacchi 
263*d14abf15SRobert Mustacchi 
264*d14abf15SRobert Mustacchi void mm_bar_copy_buffer(
265*d14abf15SRobert Mustacchi 	struct _lm_device_t * _pdev,
266*d14abf15SRobert Mustacchi 	u8_t                  bar,
267*d14abf15SRobert Mustacchi 	u32_t                 offset,
268*d14abf15SRobert Mustacchi     u32_t                 size,
269*d14abf15SRobert Mustacchi 	u32_t                 *buf_ptr
270*d14abf15SRobert Mustacchi 	);
271*d14abf15SRobert Mustacchi 
272*d14abf15SRobert Mustacchi 
273*d14abf15SRobert Mustacchi 
mm_le16_to_cpu_imp(u16_t val)274*d14abf15SRobert Mustacchi static inline u16_t mm_le16_to_cpu_imp(u16_t val)
275*d14abf15SRobert Mustacchi {
276*d14abf15SRobert Mustacchi 	return ediag_le16_to_cpu(val);
277*d14abf15SRobert Mustacchi }
278*d14abf15SRobert Mustacchi 
mm_le32_to_cpu_imp(u32_t val)279*d14abf15SRobert Mustacchi static inline u32_t mm_le32_to_cpu_imp(u32_t val)
280*d14abf15SRobert Mustacchi {
281*d14abf15SRobert Mustacchi 	return ediag_le32_to_cpu(val);
282*d14abf15SRobert Mustacchi }
283*d14abf15SRobert Mustacchi 
mm_be32_to_cpu_imp(u32_t val)284*d14abf15SRobert Mustacchi static inline u32_t mm_be32_to_cpu_imp(u32_t val)
285*d14abf15SRobert Mustacchi {
286*d14abf15SRobert Mustacchi 	return ediag_be32_to_cpu(val);
287*d14abf15SRobert Mustacchi }
288*d14abf15SRobert Mustacchi 
mm_be16_to_cpu_imp(u32_t val)289*d14abf15SRobert Mustacchi static inline u32_t mm_be16_to_cpu_imp(u32_t val)
290*d14abf15SRobert Mustacchi {
291*d14abf15SRobert Mustacchi     return ediag_be16_to_cpu(val);
292*d14abf15SRobert Mustacchi }
293*d14abf15SRobert Mustacchi 
mm_cpu_to_be32_imp(u32_t val)294*d14abf15SRobert Mustacchi static inline u32_t mm_cpu_to_be32_imp(u32_t val)
295*d14abf15SRobert Mustacchi {
296*d14abf15SRobert Mustacchi     return ediag_cpu_to_be32(val);
297*d14abf15SRobert Mustacchi }
298*d14abf15SRobert Mustacchi 
mm_cpu_to_be16_imp(u32_t val)299*d14abf15SRobert Mustacchi static inline u32_t mm_cpu_to_be16_imp(u32_t val)
300*d14abf15SRobert Mustacchi {
301*d14abf15SRobert Mustacchi     return ediag_cpu_to_be16(val);
302*d14abf15SRobert Mustacchi }
303*d14abf15SRobert Mustacchi 
mm_cpu_to_le16_imp(u16_t val)304*d14abf15SRobert Mustacchi static inline u16_t mm_cpu_to_le16_imp(u16_t val)
305*d14abf15SRobert Mustacchi {
306*d14abf15SRobert Mustacchi 	return ediag_cpu_to_le16(val);
307*d14abf15SRobert Mustacchi }
308*d14abf15SRobert Mustacchi 
mm_cpu_to_le32_imp(u32_t val)309*d14abf15SRobert Mustacchi static inline u32_t mm_cpu_to_le32_imp(u32_t val)
310*d14abf15SRobert Mustacchi {
311*d14abf15SRobert Mustacchi 	return ediag_cpu_to_le32(val);
312*d14abf15SRobert Mustacchi }
313*d14abf15SRobert Mustacchi 
314*d14abf15SRobert Mustacchi u32_t mm_get_wol_flags( IN struct _lm_device_t* pdev );
315*d14abf15SRobert Mustacchi 
316*d14abf15SRobert Mustacchi u32_t mm_get_feature_flags(struct _lm_device_t* pdev);
317*d14abf15SRobert Mustacchi 
318*d14abf15SRobert Mustacchi u32_t mm_get_vmq_cnt(struct _lm_device_t* pdev);
319*d14abf15SRobert Mustacchi 
320*d14abf15SRobert Mustacchi lm_status_t mm_i2c_update(struct _lm_device_t *pdev);
321*d14abf15SRobert Mustacchi 
322*d14abf15SRobert Mustacchi u64_t mm_query_system_time(void);
323*d14abf15SRobert Mustacchi 
324*d14abf15SRobert Mustacchi /* the following are __LINUX only... */
325*d14abf15SRobert Mustacchi 
326*d14abf15SRobert Mustacchi u32_t mm_get_cap_offset(struct _lm_device_t *pdev,
327*d14abf15SRobert Mustacchi                         u32_t cap_id);
328*d14abf15SRobert Mustacchi 
329*d14abf15SRobert Mustacchi void mm_eth_ramrod_comp_cb(struct _lm_device_t *pdev,
330*d14abf15SRobert Mustacchi                            struct common_ramrod_eth_rx_cqe *cqe);
331*d14abf15SRobert Mustacchi 
332*d14abf15SRobert Mustacchi void mm_common_ramrod_comp_cb(struct _lm_device_t *pdev,
333*d14abf15SRobert Mustacchi                               struct event_ring_msg *msg);
334*d14abf15SRobert Mustacchi 
335*d14abf15SRobert Mustacchi 
336*d14abf15SRobert Mustacchi #endif
337