1*d14abf15SRobert Mustacchi /******************************************************************************* 2*d14abf15SRobert Mustacchi * CDDL HEADER START 3*d14abf15SRobert Mustacchi * 4*d14abf15SRobert Mustacchi * The contents of this file are subject to the terms of the 5*d14abf15SRobert Mustacchi * Common Development and Distribution License (the "License"). 6*d14abf15SRobert Mustacchi * You may not use this file except in compliance with the License. 7*d14abf15SRobert Mustacchi * 8*d14abf15SRobert Mustacchi * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*d14abf15SRobert Mustacchi * or http://www.opensolaris.org/os/licensing. 10*d14abf15SRobert Mustacchi * See the License for the specific language governing permissions 11*d14abf15SRobert Mustacchi * and limitations under the License. 12*d14abf15SRobert Mustacchi * 13*d14abf15SRobert Mustacchi * When distributing Covered Code, include this CDDL HEADER in each 14*d14abf15SRobert Mustacchi * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*d14abf15SRobert Mustacchi * If applicable, add the following below this CDDL HEADER, with the 16*d14abf15SRobert Mustacchi * fields enclosed by brackets "[]" replaced with your own identifying 17*d14abf15SRobert Mustacchi * information: Portions Copyright [yyyy] [name of copyright owner] 18*d14abf15SRobert Mustacchi * 19*d14abf15SRobert Mustacchi * CDDL HEADER END 20*d14abf15SRobert Mustacchi * 21*d14abf15SRobert Mustacchi * Copyright 2014 QLogic Corporation 22*d14abf15SRobert Mustacchi * The contents of this file are subject to the terms of the 23*d14abf15SRobert Mustacchi * QLogic End User License (the "License"). 24*d14abf15SRobert Mustacchi * You may not use this file except in compliance with the License. 25*d14abf15SRobert Mustacchi * 26*d14abf15SRobert Mustacchi * You can obtain a copy of the License at 27*d14abf15SRobert Mustacchi * http://www.qlogic.com/Resources/Documents/DriverDownloadHelp/ 28*d14abf15SRobert Mustacchi * QLogic_End_User_Software_License.txt 29*d14abf15SRobert Mustacchi * See the License for the specific language governing permissions 30*d14abf15SRobert Mustacchi * and limitations under the License. 31*d14abf15SRobert Mustacchi * 32*d14abf15SRobert Mustacchi * 33*d14abf15SRobert Mustacchi * 34*d14abf15SRobert Mustacchi * Module Description: 35*d14abf15SRobert Mustacchi * 36*d14abf15SRobert Mustacchi ******************************************************************************/ 37*d14abf15SRobert Mustacchi 38*d14abf15SRobert Mustacchi #ifndef _L4DEBUG_H 39*d14abf15SRobert Mustacchi #define _L4DEBUG_H 40*d14abf15SRobert Mustacchi 41*d14abf15SRobert Mustacchi #include "bcmtype.h" 42*d14abf15SRobert Mustacchi 43*d14abf15SRobert Mustacchi #define L4_DEBUG_BIT_FIELDS 0 44*d14abf15SRobert Mustacchi // Use _l4_tcp_const_state_t _pad[0] for L4 debug 45*d14abf15SRobert Mustacchi // PbfQueue - bits 7-5 46*d14abf15SRobert Mustacchi // VOQ - bits 4-2 47*d14abf15SRobert Mustacchi // cos - bits 1-0 48*d14abf15SRobert Mustacchi #define L4_DEBUG_PBF_Q_MASK 0xE0 49*d14abf15SRobert Mustacchi #define L4_DEBUG_PBF_Q_SHIFT 5 50*d14abf15SRobert Mustacchi 51*d14abf15SRobert Mustacchi #define L4_DEBUG_VOQ_MASK 0x1C 52*d14abf15SRobert Mustacchi #define L4_DEBUG_VOQ_SHIFT 2 53*d14abf15SRobert Mustacchi 54*d14abf15SRobert Mustacchi #define L4_DEBUG_COS_MASK 0x3 55*d14abf15SRobert Mustacchi #define L4_DEBUG_COS_SHIFT 0 56*d14abf15SRobert Mustacchi 57*d14abf15SRobert Mustacchi 58*d14abf15SRobert Mustacchi 59*d14abf15SRobert Mustacchi #define L4_DEBUG_FLAGS 1 60*d14abf15SRobert Mustacchi // DPM test EN - bit 4 61*d14abf15SRobert Mustacchi // QmOpportunistic - bit 3 62*d14abf15SRobert Mustacchi // TestingEn - bit 2 63*d14abf15SRobert Mustacchi // LbEn - bit 1 64*d14abf15SRobert Mustacchi // CosEn - bit 0 65*d14abf15SRobert Mustacchi 66*d14abf15SRobert Mustacchi #define L4_DEBUG_DPM_TEST_EN_MASK 0x10 67*d14abf15SRobert Mustacchi #define L4_DEBUG_QM_OPPORT_EN_MASK 0x08 68*d14abf15SRobert Mustacchi #define L4_DEBUG_TESTING_EN_MASK 0x04 69*d14abf15SRobert Mustacchi #define L4_DEBUG_LB_EN_MASK 0x02 70*d14abf15SRobert Mustacchi #define L4_DEBUG_COS_EN_MASK 0x01 71*d14abf15SRobert Mustacchi 72*d14abf15SRobert Mustacchi 73*d14abf15SRobert Mustacchi 74*d14abf15SRobert Mustacchi #define L4_DEBUG_GET_COS(_data) ((_data[L4_DEBUG_BIT_FIELDS] & L4_DEBUG_COS_MASK) >> L4_DEBUG_COS_SHIFT) 75*d14abf15SRobert Mustacchi #define L4_DEBUG_GET_PBFQUEUE(_data) ((_data[L4_DEBUG_BIT_FIELDS] & L4_DEBUG_PBF_Q_MASK) >> L4_DEBUG_PBF_Q_SHIFT) 76*d14abf15SRobert Mustacchi #define L4_DEBUG_GET_VOQ(_data) ((_data[L4_DEBUG_BIT_FIELDS] & L4_DEBUG_VOQ_MASK) >> L4_DEBUG_VOQ_SHIFT) 77*d14abf15SRobert Mustacchi #define L4_DEBUG_GET_FLAGS(_data) (_data[L4_DEBUG_FLAGS]) 78*d14abf15SRobert Mustacchi 79*d14abf15SRobert Mustacchi #define L4_DEBUG_SET_COS(_data, cos) \ 80*d14abf15SRobert Mustacchi (_data[L4_DEBUG_BIT_FIELDS] &= (~L4_DEBUG_COS_MASK)); \ 81*d14abf15SRobert Mustacchi (_data[L4_DEBUG_BIT_FIELDS] |= ((cos << L4_DEBUG_COS_SHIFT) & L4_DEBUG_COS_MASK)) 82*d14abf15SRobert Mustacchi 83*d14abf15SRobert Mustacchi #define L4_DEBUG_SET_PBFQUEUE(_data, pbf_q) \ 84*d14abf15SRobert Mustacchi (_data[L4_DEBUG_BIT_FIELDS] &= (~L4_DEBUG_PBF_Q_MASK)); \ 85*d14abf15SRobert Mustacchi (_data[L4_DEBUG_BIT_FIELDS] |= ((pbf_q << L4_DEBUG_PBF_Q_SHIFT) & L4_DEBUG_PBF_Q_MASK)) 86*d14abf15SRobert Mustacchi 87*d14abf15SRobert Mustacchi #define L4_DEBUG_SET_VOQ(_data, voq) \ 88*d14abf15SRobert Mustacchi (_data[L4_DEBUG_BIT_FIELDS] &= (~L4_DEBUG_VOQ_MASK)); \ 89*d14abf15SRobert Mustacchi (_data[L4_DEBUG_BIT_FIELDS] |= ((voq << L4_DEBUG_VOQ_SHIFT) & L4_DEBUG_VOQ_MASK)) 90*d14abf15SRobert Mustacchi 91*d14abf15SRobert Mustacchi #define L4_DEBUG_SET_FLAGS(_data, flags) (_data[L4_DEBUG_FLAGS] |= flags) 92*d14abf15SRobert Mustacchi 93*d14abf15SRobert Mustacchi 94*d14abf15SRobert Mustacchi 95*d14abf15SRobert Mustacchi #endif /* _L4DEBUG_H */ 96*d14abf15SRobert Mustacchi 97