d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/*****************************************************************************
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * CDDL HEADER START
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * The contents of this file are subject to the terms of the
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * Common Development and Distribution License (the "License").
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * You may not use this file except in compliance with the License.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * or http://www.opensolaris.org/os/licensing.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * See the License for the specific language governing permissions
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * and limitations under the License.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * When distributing Covered Code, include this CDDL HEADER in each
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * If applicable, add the following below this CDDL HEADER, with the
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * fields enclosed by brackets "[]" replaced with your own identifying
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * information: Portions Copyright [yyyy] [name of copyright owner]
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * CDDL HEADER END
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * Copyright 2014 QLogic Corporation
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * The contents of this file are subject to the terms of the
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * QLogic End User License (the "License").
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * You may not use this file except in compliance with the License.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * You can obtain a copy of the License at
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * http://www.qlogic.com/Resources/Documents/DriverDownloadHelp/
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * QLogic_End_User_Software_License.txt
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * See the License for the specific language governing permissions
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi * and limitations under the License.
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *****************************************************************************/
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#if defined(USER_LINUX)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef int mm_spin_lock_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#else
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#include "ediag_compat.h"
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi// portable integer type of the pointer size for current platform (64/32)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef unsigned long mm_int_ptr_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchitypedef struct semaphore_t * mm_spin_lock_t;
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_read_barrier_imp() \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi do { \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi barrier(); \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi ediag_rmb(); \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi } while(0)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_write_barrier_imp() \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi do { \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi barrier(); \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi ediag_wmb(); \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi } while(0)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_barrier_imp() \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi do { \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi barrier(); \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi ediag_rmb(); \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi ediag_wmb(); \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi } while(0)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_atomic_set_imp(_p, _v) ediag_atomic_set((s32_t *)_p, (s32_t)_v)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_atomic_dec_imp(_p) ediag_atomic_dec_and_test((s32_t *)_p)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/* returns the decremented value */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_atomic_inc_imp(_p) ediag_atomic_inc_and_test((s32_t *)_p)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_atomic_read_imp(_p) ediag_atomic_read((s32_t *)_p)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_atomic_long_read_imp(_p) ediag_atomic_long_read((unsigned long *)_p)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_atomic_cmpxchg_imp(_p, _cmp, _new_v) ediag_atomic_cmpxchg((s32_t *)_p, (int)_cmp, (int)_new_v)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_atomic_and_imp(p, v) \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchido { \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *(p) = *(p) & (v); \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi} while (0)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_atomic_long_and_imp(p, v) mm_atomic_and((p), (v))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_atomic_or_imp(p, v) \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchido { \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi *(p) = *(p) | (v); \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi} while (0)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_atomic_long_or_imp(p, v) mm_atomic_or((p), (v))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define MM_WRITE_DOORBELL_IMP(PDEV, BAR, CID, VAL) \
d14abf155341d55053c76eeec58b787a456b753bRobert 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))
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define MM_REGISTER_LPME_IMP(_pdev, _func, _b_fw_access, _b_queue_for_fw) \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi (LM_STATUS_SUCCESS)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define MM_DCB_MP_L2_IS_ENABLE(_pdev) (FALSE)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_SPQ_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_SPQ_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_SPQ_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_SPQ_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_CID_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_CID_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_REQUEST_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_REQUEST_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_REQUEST_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_REQUEST_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_PHY_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_PHY_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_PHY_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_PHY_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_ISLES_CONTROL_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_ISLES_CONTROL_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_ISLES_CONTROL_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_ISLES_CONTROL_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_RAMROD_COMP_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_RAMROD_COMP_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define MM_ACQUIRE_IND_REG_LOCK_IMP(pdev)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define MM_RELEASE_IND_REG_LOCK_IMP(pdev)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_LOADER_LOCK_IMP(void);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_LOADER_LOCK_IMP(void);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_SP_REQ_MGR_LOCK_IMP(struct _lm_device_t *pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_SP_REQ_MGR_LOCK_IMP(struct _lm_device_t *pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_MCP_LOCK_IMP(struct _lm_device_t *pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_MCP_LOCK_IMP(struct _lm_device_t *pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_SB_LOCK_IMP(struct _lm_device_t *_pdev, u8_t _sb_idx);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_SB_LOCK_IMP(struct _lm_device_t *_pdev, u8_t _sb_idx);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_ETH_CON_LOCK_IMP(struct _lm_device_t *pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_ETH_CON_LOCK_IMP(struct _lm_device_t *pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#ifdef VF_INVOLVED
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_PF_LOCK_IMP(struct _lm_device_t *pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_PF_LOCK_IMP(struct _lm_device_t *pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_VFS_STATS_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_VFS_STATS_LOCK_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_ACQUIRE_VFS_STATS_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid MM_RELEASE_VFS_STATS_LOCK_DPC_IMP(struct _lm_device_t *_pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif /* VF_INVOLVED */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_er_initiate_recovery_imp(pdev) \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi (LM_STATUS_FAILURE)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_register_dpc_imp(_pdev, _func) \
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi (LM_STATUS_FAILURE)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_empty_ramrod_received_imp(pdev, empty_data)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_dbus_start_if_enabled_imp(_pdev)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#define mm_dbus_stop_if_started_imp(_pdev)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchilm_status_t mm_get_bar_offset_imp(struct _lm_device_t *pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t barn,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi lm_address_t *bar_addr);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchilm_status_t mm_get_bar_size_imp(struct _lm_device_t *pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t bar_num,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t *bar_sz);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchilm_status_t mm_get_bar_size(
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi struct _lm_device_t * pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t bar_num,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t * bar_sz
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid mm_bar_read_byte(
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi struct _lm_device_t * _pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t bar,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t offset,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t * ret
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid mm_bar_read_word(
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi struct _lm_device_t * _pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t bar,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t offset,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u16_t * ret
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid mm_bar_read_dword(
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi struct _lm_device_t * _pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t bar,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t offset,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t * ret
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid mm_bar_read_ddword(
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi struct _lm_device_t * _pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t bar,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t offset,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u64_t * ret
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid mm_bar_write_byte(
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi struct _lm_device_t * _pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t bar,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t offset,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t val
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid mm_bar_write_word(
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi struct _lm_device_t * _pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t bar,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t offset,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u16_t val
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid mm_bar_write_dword(
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi struct _lm_device_t * _pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t bar,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t offset,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t val
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid mm_io_write_dword(
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi struct _lm_device_t * _pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi void * addr,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t val
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid mm_bar_write_ddword(
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi struct _lm_device_t * _pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t bar,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t offset,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u64_t val
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid mm_bar_copy_buffer(
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi struct _lm_device_t * _pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u8_t bar,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t offset,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t size,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t *buf_ptr
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchistatic inline u16_t mm_le16_to_cpu_imp(u16_t val)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi return ediag_le16_to_cpu(val);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi}
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchistatic inline u32_t mm_le32_to_cpu_imp(u32_t val)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi return ediag_le32_to_cpu(val);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi}
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchistatic inline u32_t mm_be32_to_cpu_imp(u32_t val)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi return ediag_be32_to_cpu(val);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi}
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchistatic inline u32_t mm_be16_to_cpu_imp(u32_t val)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi return ediag_be16_to_cpu(val);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi}
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchistatic inline u32_t mm_cpu_to_be32_imp(u32_t val)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi return ediag_cpu_to_be32(val);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi}
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchistatic inline u32_t mm_cpu_to_be16_imp(u32_t val)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi return ediag_cpu_to_be16(val);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi}
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchistatic inline u16_t mm_cpu_to_le16_imp(u16_t val)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi return ediag_cpu_to_le16(val);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi}
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchistatic inline u32_t mm_cpu_to_le32_imp(u32_t val)
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi{
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi return ediag_cpu_to_le32(val);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi}
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiu32_t mm_get_wol_flags( IN struct _lm_device_t* pdev );
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiu32_t mm_get_feature_flags(struct _lm_device_t* pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiu32_t mm_get_vmq_cnt(struct _lm_device_t* pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchilm_status_t mm_i2c_update(struct _lm_device_t *pdev);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiu64_t mm_query_system_time(void);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi/* the following are __LINUX only... */
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchiu32_t mm_get_cap_offset(struct _lm_device_t *pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi u32_t cap_id);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid mm_eth_ramrod_comp_cb(struct _lm_device_t *pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi struct common_ramrod_eth_rx_cqe *cqe);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchivoid mm_common_ramrod_comp_cb(struct _lm_device_t *pdev,
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi struct event_ring_msg *msg);
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi
d14abf155341d55053c76eeec58b787a456b753bRobert Mustacchi#endif