1316485Sdavidcs/* 2316485Sdavidcs * Copyright (c) 2017-2018 Cavium, Inc. 3316485Sdavidcs * All rights reserved. 4316485Sdavidcs * 5316485Sdavidcs * Redistribution and use in source and binary forms, with or without 6316485Sdavidcs * modification, are permitted provided that the following conditions 7316485Sdavidcs * are met: 8316485Sdavidcs * 9316485Sdavidcs * 1. Redistributions of source code must retain the above copyright 10316485Sdavidcs * notice, this list of conditions and the following disclaimer. 11316485Sdavidcs * 2. Redistributions in binary form must reproduce the above copyright 12316485Sdavidcs * notice, this list of conditions and the following disclaimer in the 13316485Sdavidcs * documentation and/or other materials provided with the distribution. 14316485Sdavidcs * 15316485Sdavidcs * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 16316485Sdavidcs * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17316485Sdavidcs * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18316485Sdavidcs * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 19316485Sdavidcs * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 20316485Sdavidcs * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 21316485Sdavidcs * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22316485Sdavidcs * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23316485Sdavidcs * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 24316485Sdavidcs * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25316485Sdavidcs * POSSIBILITY OF SUCH DAMAGE. 26316485Sdavidcs * 27316485Sdavidcs * $FreeBSD: stable/11/sys/dev/qlnx/qlnxe/ecore_cxt_api.h 316485 2017-04-04 06:16:59Z davidcs $ 28316485Sdavidcs * 29316485Sdavidcs */ 30316485Sdavidcs 31316485Sdavidcs#ifndef __ECORE_CXT_API_H__ 32316485Sdavidcs#define __ECORE_CXT_API_H__ 33316485Sdavidcs 34316485Sdavidcsstruct ecore_hwfn; 35316485Sdavidcs 36316485Sdavidcsstruct ecore_cxt_info { 37316485Sdavidcs void *p_cxt; 38316485Sdavidcs u32 iid; 39316485Sdavidcs enum protocol_type type; 40316485Sdavidcs}; 41316485Sdavidcs 42316485Sdavidcs#define MAX_TID_BLOCKS 512 43316485Sdavidcsstruct ecore_tid_mem { 44316485Sdavidcs u32 tid_size; 45316485Sdavidcs u32 num_tids_per_block; 46316485Sdavidcs u32 waste; 47316485Sdavidcs u8 *blocks[MAX_TID_BLOCKS]; /* 4K */ 48316485Sdavidcs}; 49316485Sdavidcs 50316485Sdavidcs/** 51316485Sdavidcs* @brief ecoreo_cid_get_cxt_info - Returns the context info for a specific cid 52316485Sdavidcs* 53316485Sdavidcs* 54316485Sdavidcs* @param p_hwfn 55316485Sdavidcs* @param p_info in/out 56316485Sdavidcs* 57316485Sdavidcs* @return enum _ecore_status_t 58316485Sdavidcs*/ 59316485Sdavidcsenum _ecore_status_t ecore_cxt_get_cid_info(struct ecore_hwfn *p_hwfn, 60316485Sdavidcs struct ecore_cxt_info *p_info); 61316485Sdavidcs 62316485Sdavidcs/** 63316485Sdavidcs* @brief ecore_cxt_get_tid_mem_info 64316485Sdavidcs* 65316485Sdavidcs* @param p_hwfn 66316485Sdavidcs* @param p_info 67316485Sdavidcs* 68316485Sdavidcs* @return enum _ecore_status_t 69316485Sdavidcs*/ 70316485Sdavidcsenum _ecore_status_t ecore_cxt_get_tid_mem_info(struct ecore_hwfn *p_hwfn, 71316485Sdavidcs struct ecore_tid_mem *p_info); 72316485Sdavidcs 73316485Sdavidcs#endif 74