亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? qdinit.c

?? Mavell AP32 無線模塊驅(qū)動。VxWorks BSP BootRom源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
    //dev->devEnabled = 1;    //dev->devNum = cfg->devNum;    DBG_INFO("OK.\n");    return GT_OK;}/******************************************************************************** gvlnSetPortVid** DESCRIPTION:*       This routine Set the port default vlan id.** INPUTS:*       port - logical port number to set.*       vid  - the port vlan id.** OUTPUTS:*       None.** RETURNS:*       GT_OK               - on success*       GT_FAIL             - on error*       GT_BAD_PARAM        - on bad parameters** COMMENTS:** GalTis:********************************************************************************/GT_STATUS gvlnSetPortVid(    IN GT_QD_DEV    *dev,    IN GT_LPORT     port,    IN GT_U16       vid){    GT_STATUS       retVal;         /* Functions return value.      */    GT_U8           phyPort;        /* Physical port.               */    DBG_INFO("gvlnSetPortVid Called.\n");    phyPort = GT_LPORT_2_PORT(port);    retVal = hwSetPortRegField(dev,phyPort,QD_REG_PVID,0,12, vid);    if(retVal != GT_OK)    {        DBG_INFO("Failed.\n");        return retVal;    }    DBG_INFO("OK.\n");    return GT_OK;}/******************************************************************************** gvlnSetPortVlanPorts** DESCRIPTION:*       This routine sets the port VLAN group port membership list.** INPUTS:*       port        - logical port number to set.*       memPorts    - array of logical ports.*       memPortsLen - number of members in memPorts array** OUTPUTS:*       None.** RETURNS:*       GT_OK               - on success*       GT_FAIL             - on error*       GT_BAD_PARAM        - on bad parameters** COMMENTS:** GalTis:********************************************************************************/GT_STATUS gvlnSetPortVlanPorts(    IN GT_QD_DEV *dev,    IN GT_LPORT  port,    IN GT_LPORT  memPorts[],    IN GT_U8     memPortsLen){    GT_STATUS       retVal;         /* Functions return value.      */    GT_U16          data;           /* Data to be set into the      */                                    /* register.                    */    GT_U8           phyPort;        /* Physical port.               */    GT_U8           i;    DBG_INFO("gvlnSetPortVlanPorts Called.\n");    if(memPorts == NULL)    {        DBG_INFO("Failed.\n");        return GT_BAD_PARAM;    }    phyPort = GT_LPORT_2_PORT(port);    data = 0;	if(memPortsLen > dev->numOfPorts)    {        DBG_INFO("Failed (PortsLen Too Big).\n");        return GT_BAD_PARAM;    }    for(i = 0; i < memPortsLen; i++)        data |= (1 << GT_LPORT_2_PORT(memPorts[i]));    /* memPortsLen = 3 for fullsail, =7 for others */    retVal = hwSetPortRegField(dev,phyPort,QD_REG_PORT_VLAN_MAP,0,dev->numOfPorts,data);    if(retVal != GT_OK)    {        DBG_INFO("Failed.\n");        return retVal;    }    DBG_INFO("OK.\n");    return GT_OK;}/******************************************************************************** hwReadGlobalReg** DESCRIPTION:*       This function reads a switch's global register.** INPUTS:*       regAddr - The register's address.** OUTPUTS:*       data    - The read register's data.** RETURNS:*       GT_OK on success, or*       GT_FAIL otherwise.** COMMENTS:*       None.********************************************************************************/GT_STATUS hwReadGlobalReg(    IN GT_QD_DEV *dev,    IN  GT_U8    regAddr,    OUT GT_U16   *pData){    GT_U8       phyAddr;    GT_STATUS   retVal;    phyAddr = CALC_SMI_DEV_ADDR(dev->baseRegAddr,                                GLOBAL_REGS_START_ADDR);    //retVal = evFFReadMii(dev,phyAddr,regAddr,(GT_U32*)pData);    retVal = evFFReadMii(dev,(unsigned int)(0xF - 0x8),(unsigned int)regAddr,(unsigned int*)pData);	DBG_INFO("read from global register: phyAddr 0x%x, regAddr 0x%x, ",              phyAddr,regAddr);    DBG_INFO("data 0x%x.\n",*pData);    return retVal;}/******************************************************************************** hwGetGlobalRegField** DESCRIPTION:*       This function reads a specified field from a switch's global register.** INPUTS:*       regAddr     - The register's address.*       fieldOffset - The field start bit index. (0 - 15)*       fieldLength - Number of bits to read.** OUTPUTS:*       data        - The read register field.** RETURNS:*       GT_OK on success, or*       GT_FAIL otherwise.** COMMENTS:*       1.  The sum of fieldOffset & fieldLength parameters must be smaller-*           equal to 16.********************************************************************************/GT_STATUS hwGetGlobalRegField(    IN GT_QD_DEV *dev,    IN  GT_U8    regAddr,    IN  GT_U8    fieldOffset,    IN  GT_U8    fieldLength,    OUT GT_U16   *data){    GT_U16 mask;            /* Bits mask to be read */    GT_U16 tmpData;    if(hwReadGlobalReg(dev,regAddr,&tmpData) != GT_OK)        return GT_FAIL;    CALC_MASK(fieldOffset,fieldLength,mask);    tmpData = (tmpData & mask) >> fieldOffset;    *data = tmpData;    DBG_INFO("Read from global register: regAddr 0x%x, ",              regAddr);    DBG_INFO("fOff %d, fLen %d, data 0x%x.\n",fieldOffset,fieldLength,*data);    return GT_OK;}/******************************************************************************** hwWriteGlobalReg** DESCRIPTION:*       This function writes to a switch's global register.** INPUTS:*       regAddr - The register's address.*       data    - The data to be written.** OUTPUTS:*       None.** RETURNS:*       GT_OK on success, or*       GT_FAIL otherwise.** COMMENTS:*       None.********************************************************************************/GT_STATUS hwWriteGlobalReg(    IN GT_QD_DEV *dev,    IN  GT_U8    regAddr,    IN  GT_U16   data){    GT_U8   phyAddr;    phyAddr = CALC_SMI_DEV_ADDR(dev->baseRegAddr,                                GLOBAL_REGS_START_ADDR);    DBG_INFO("Write to global register: phyAddr 0x%x, regAddr 0x%x, ",              phyAddr,regAddr);    DBG_INFO("data 0x%x.\n",data);    return evFFWriteMii(dev,phyAddr,regAddr,data);}/******************************************************************************** hwSetGlobalRegField** DESCRIPTION:*       This function writes to specified field in a switch's global register.** INPUTS:*       regAddr     - The register's address.*       fieldOffset - The field start bit index. (0 - 15)*       fieldLength - Number of bits to write.*       data        - Data to be written.** OUTPUTS:*       None.** RETURNS:*       GT_OK on success, or*       GT_FAIL otherwise.** COMMENTS:*       1.  The sum of fieldOffset & fieldLength parameters must be smaller-*           equal to 16.********************************************************************************/GT_STATUS hwSetGlobalRegField(    IN GT_QD_DEV *dev,    IN  GT_U8    regAddr,    IN  GT_U8    fieldOffset,    IN  GT_U8    fieldLength,    IN  GT_U16   data){    GT_U16 mask;    GT_U16 tmpData;    if(hwReadGlobalReg(dev,regAddr,&tmpData) != GT_OK)        return GT_FAIL;    CALC_MASK(fieldOffset,fieldLength,mask);    /* Set the desired bits to 0.                       */    tmpData &= ~mask;    /* Set the given data into the above reset bits.    */    tmpData |= ((data << fieldOffset) & mask);    DBG_INFO("Write to global register: regAddr 0x%x, ",              regAddr);    DBG_INFO("fieldOff %d, fieldLen %d, data 0x%x.\n",fieldOffset,              fieldLength,data);    return hwWriteGlobalReg(dev,regAddr,tmpData);}/******************************************************************************** gprtClearAllCtr** DESCRIPTION:*       This routine clears all port rx/tx counters.** INPUTS:*       None.** OUTPUTS:*       None.** RETURNS:*       GT_OK   - on success*       GT_FAIL - on error** COMMENTS:*** GalTis:********************************************************************************/GT_STATUS gprtClearAllCtr(    IN GT_QD_DEV    *dev){    IN GT_STATUS     retVal;         /* Functions return value.      */    IN GT_U16        mode;           /* hold counters current mode   */    DBG_INFO("gprtClearAllCtr Called.\n");    /* get counter current mode  */    if(hwGetGlobalRegField(dev,QD_REG_GLOBAL_CONTROL,8,1,&mode) != GT_OK)    {        DBG_INFO("Failed (Get field).\n");        return GT_FAIL;    }    /* write opposite value to reset counter */    if(hwSetGlobalRegField(dev,QD_REG_GLOBAL_CONTROL,8,1,(GT_U16)(1 - mode)) != GT_OK)    {        DBG_INFO("Failed (Get field).\n");        return GT_FAIL;    }    /* restore counters mode */    retVal = hwSetGlobalRegField(dev,QD_REG_GLOBAL_CONTROL,8,1,mode);    DBG_INFO("OK.\n");    return retVal;}/**  Initialize the QuarterDeck. This should be done in BSP driver init routine.*	Since BSP is not combined with QuarterDeck driver, we are doing here.*/GT_STATUS qdStart(void) /* devId is used for simulator only */{	GT_STATUS status;	//int portListIdx = 0;	//GT_LPORT portList[MAX_SWITCH_PORTS] = {0};	//evFFInit(qd_dev);	//cfg.initPorts = GT_FALSE;		//cfg.cpuPortNum = CPU_PORT_NUM;	    qd_dev->cpuPortNum = CPU_PORT_NUM;				if((status = qdLoadDriver(NULL, qd_dev)) != GT_OK)	{				DBG_INFO("qdLoadDriver failed\n");		return status;	}	/*	*  start the QuarterDeck	*/	if (qd_dev->deviceId == GT_88E6063)	{		phyPatch(qd_dev);	}		/* to which VID should we set the CPU_PORT? (1 is temporary)*/	if((status = gvlnSetPortVid(qd_dev, CPU_PORT_NUM, 1)) != GT_OK)	{		DBG_INFO("gprtSetPortVid returned fail.\n");		return status;	}	return GT_OK;    }/* * All ports are connected to all ports!! * port #6 is out of the game  */GT_STATUS starVlan(GT_QD_DEV *dev, unsigned int numOfPorts){	GT_STATUS status = GT_OK;	GT_LPORT port;	GT_LPORT portList[MAX_SWITCH_PORTS];	do {		/* 		*  set Port VLAN Mapping.		*	port 0 <--> 5 VLAN #1.		*	port 1 <--> 5 VLAN #2.		*	port 2 <--> 5 VLAN #3.		*	port 3 <--> 5 VLAN #4.		*	port 4 <--> 5 VLAN #5.		*/		portList[0] = 5;		for (port = 0; port < 5; port++) 		{			/* port #port : set VLAN ID (i+1) */			if((status = gvlnSetPortVid(dev, port, (port+1) )) != GT_OK)				break;			/* port #port : set port 5 */			if((status = gvlnSetPortVlanPorts(dev, port, portList,1)) != GT_OK)				return status;		}	/* assign the VID of the CPU port to 1 ??? */	if((status = gvlnSetPortVid(dev, 5, 1)) != GT_OK)		break;	/* port 5 : set port 0,1,2,3,4 */	portList[0] = 0;	portList[1] = 1;	portList[2] = 2;	portList[3] = 3;	portList[4] = 4;		if((status = gvlnSetPortVlanPorts(dev, 5,portList,5)) != GT_OK)		break;		}while(0);		return GT_OK;}/******************************************************************************** gqosSetPortDefaultTc** DESCRIPTION:*       Sets the default traffic class for a specific port.** INPUTS:*       port      - logical port number*       trafClass - default traffic class of a port.** OUTPUTS:*       None.** RETURNS:*       GT_OK   - on success*       GT_FAIL - on error** COMMENTS:*       None.** GalTis:********************************************************************************/GT_STATUS gcosSetPortDefaultTc(    IN  GT_QD_DEV *dev,    IN GT_LPORT   port,    IN GT_U8      trafClass){    GT_STATUS       retVal;         /* Functions return value.      */    GT_U8           hwPort;         /* the physical port number     */    DBG_INFO("gcosSetPortDefaultTc Called.\n");    /* translate LPORT to hardware port */    hwPort = GT_LPORT_2_PORT(port);    /* check if device supports this feature */    if((retVal = IS_VALID_API_CALL(dev,hwPort, DEV_QoS)) != GT_OK )       return retVal;	    /* Set the default port pri.  */    retVal = hwSetPortRegField(dev,hwPort,QD_REG_PVID,14,2,trafClass);    if(retVal != GT_OK)        DBG_INFO("Failed.\n");    else        DBG_INFO("OK.\n");    return retVal;}GT_STATUS qdInit(void){	GT_STATUS	 status = GT_OK;		unsigned int i;	status = qdStart();	if (GT_OK != status)	{		DBG_INFO("qdStart failed !!!\n");				return status;	}	status = gstpSetPortState(qd_dev, 6, GT_PORT_DISABLE);		if((status = gprtClearAllCtr(qd_dev)) != GT_OK)	{				DBG_INFO("Error in QD init 2\n");		return status;	}  	/*	for (i= 0; i < 5; i++)	{		gprtSetMcRateLimit(qd_dev, i, GT_MC_100_PERCENT_RL);	}	*/		/* Setting port default priority to zero */	/* and disabling IP TOS Priority and and 802.3a TAG */	for (i= 0; i <= 6; i++)	{	  gcosSetPortDefaultTc(qd_dev,i,0);	  //gqosIpPrioMapEn(qd_dev, i, GT_FALSE);	  //gqosUserPrioMapEn(qd_dev, i, GT_FALSE);	  //gprtSetForceFc(qd_dev, i, GT_TRUE);	}	status = starVlan(qd_dev, 6); 	if( status == GT_OK)		DBG_INFO("Successfult QD init!\n");	else		DBG_INFO("Error in QD init!\n");	return status;    }void swdelay(void){	int i;	for (i=0x20000; i; i--);}int setclock(void){unsigned short ControlReg;#define W81_REGS8(x)     (*(volatile unsigned char *)(x))#define W81_REGS16(x)    (*(volatile unsigned short *)(x))#define W81_REGS32(x)    (*(volatile unsigned long *)(x))#define W81_READ_REGS8(reg,val)      ((val) = W81_REGS8(reg))#define W81_WRITE_REGS8(reg,val)     (W81_REGS8(reg) = val)#define W81_WRITE_HWORD(reg,val)     (W81_REGS16(reg) = val)#define W81_READ_HWORD(reg,val)      ((val) = W81_REGS16(reg))#define W81_WRITE_WORD(reg,val)      (W81_REGS32(reg) = val)#define W81_READ_WORD(reg,val)       ((val) = W81_REGS32(reg)) #define CLK_MASK   0x000E#define CLK_132MHZ  0x4#define CLK_88MHZ   0x2#define CLK_44MHZ   0x1#define LBU_CLOCK_SELECT_132MHZ 0x00#define LBU_CLOCK_SELECT_88MHZ  0x01#define LBU_CLOCK_SELECT_44MHZ  0x02#define LBU_CLOCK_SELECT_22MHZ  0x03		/* Set the CPU clock speed and corresponding LBU clock select. */	W81_READ_HWORD(0x80002002,ControlReg);#ifdef ENABLE_88MHZ_CLK	W81_WRITE_HWORD(0x80002002,((ControlReg & ~CLK_MASK) | CLK_88MHZ << 1));	W81_WRITE_REGS8(0x8000c008, LBU_CLOCK_SELECT_88MHZ); #elif ENABLE_132MHZ_CLK	W81_WRITE_HWORD(0x80002002,((ControlReg &  ~CLK_MASK) | CLK_132MHZ << 1));	W81_WRITE_REGS8(0x8000c008, LBU_CLOCK_SELECT_132MHZ);#endif	/* Set PLL or low speed peripheral clock will not be 8MHz. */    W81_WRITE_WORD(0x8000a444, 0x1);	return 1;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美伦理影视网| 欧美一级高清片| 天天综合网 天天综合色| 久久综合精品国产一区二区三区| 91丨九色丨国产丨porny| 久久精品国产99国产| 亚洲视频一区二区在线观看| 精品成人在线观看| 欧美人与性动xxxx| 99在线热播精品免费| 麻豆91在线播放免费| 亚洲欧美另类综合偷拍| 久久久久久久久岛国免费| 欧美另类一区二区三区| eeuss鲁片一区二区三区在线观看| 日本va欧美va欧美va精品| 亚洲美女屁股眼交3| 国产精品午夜春色av| 精品久久久久久久一区二区蜜臀| 欧美体内she精视频| 99视频精品在线| 国产成人精品综合在线观看| 另类小说图片综合网| 天堂精品中文字幕在线| 亚洲一区二区精品久久av| 亚洲欧洲精品一区二区三区不卡| 精品成人佐山爱一区二区| 91麻豆精品国产91久久久久| 欧美视频在线观看一区| 91美女在线看| www.成人在线| 懂色中文一区二区在线播放| 国产麻豆精品在线| 狠狠色丁香久久婷婷综合_中| 日韩二区三区四区| 日韩精品一二三区| 亚洲成人tv网| 日本亚洲免费观看| 日韩中文字幕不卡| 91精品国产欧美一区二区成人| 中文字幕一区av| 欧美激情综合网| 久久久久九九视频| 久久久久97国产精华液好用吗| 日韩欧美国产一二三区| 欧美大胆一级视频| 精品国产免费人成电影在线观看四季 | 亚洲激情自拍偷拍| 玉足女爽爽91| 成人免费高清视频在线观看| 国产成人综合网站| 成人av在线播放网站| va亚洲va日韩不卡在线观看| 91视频91自| 欧美性猛片aaaaaaa做受| 欧美色图免费看| 在线播放中文字幕一区| 日韩三级视频中文字幕| 精品国产一区二区三区av性色 | 色婷婷综合久久久中文一区二区| 不卡一区二区中文字幕| 91在线观看一区二区| 在线观看三级视频欧美| 在线不卡的av| 久久精品人人做人人综合| 国产精品网站一区| 一区二区三区国产精品| 日韩高清不卡一区| 国产精品1区2区3区| 91女人视频在线观看| 欧美日韩免费在线视频| 欧美一级理论片| 国产三区在线成人av| 亚洲精品乱码久久久久久久久| 五月婷婷色综合| 国内久久精品视频| 99九九99九九九视频精品| 欧美日韩成人在线一区| 久久久99精品久久| 一区二区三区四区蜜桃| 麻豆freexxxx性91精品| 99久久er热在这里只有精品15| 欧美日韩和欧美的一区二区| 久久亚洲春色中文字幕久久久| 日韩美女精品在线| 美女一区二区三区| 亚洲色图欧美在线| 午夜亚洲国产au精品一区二区| 日韩国产欧美在线播放| 国产精品99久久久久久似苏梦涵 | 亚洲毛片av在线| 奇米精品一区二区三区在线观看| 成人性生交大片免费看中文 | 91视频精品在这里| 日韩精品中文字幕在线一区| 最新中文字幕一区二区三区| 蜜臀久久久99精品久久久久久| 成人国产精品免费观看| 欧美一卡二卡在线| 亚洲免费av观看| 国产在线一区二区综合免费视频| 在线一区二区三区四区五区| 久久久精品黄色| eeuss鲁片一区二区三区在线观看| 欧美日韩国产成人在线91| 中文字幕精品综合| 免费成人美女在线观看| 婷婷中文字幕综合| 国产一区二区按摩在线观看| 在线观看中文字幕不卡| 国产欧美日韩三级| 蜜桃视频一区二区三区在线观看| 欧美在线综合视频| 最好看的中文字幕久久| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 午夜成人在线视频| 成人av午夜影院| 国产偷国产偷精品高清尤物| 免费成人av在线| 欧美日韩国产精品成人| 亚洲永久精品国产| 91亚洲精品久久久蜜桃网站| 国产欧美日韩综合| 国产乱国产乱300精品| 日韩免费观看高清完整版在线观看| 亚洲午夜免费福利视频| 91豆麻精品91久久久久久| 中文在线一区二区| 国产成人亚洲精品青草天美| 欧美成人国产一区二区| 日本午夜一本久久久综合| 在线播放欧美女士性生活| 亚洲亚洲人成综合网络| fc2成人免费人成在线观看播放| 欧美国产欧美综合| 豆国产96在线|亚洲| 国产精品免费久久| 成人的网站免费观看| 国产精品美女久久久久久久久 | 国产精品国产三级国产普通话99 | 综合电影一区二区三区| 国产激情视频一区二区三区欧美 | 亚洲成av人在线观看| 欧美又粗又大又爽| 亚洲一区二区三区四区不卡| 欧美在线制服丝袜| 午夜精品123| 日韩午夜电影在线观看| 久久电影国产免费久久电影| 日韩欧美电影一区| 国产精品1区2区| 中文字幕亚洲欧美在线不卡| 国产亚洲精久久久久久| 成人免费高清在线观看| 日韩毛片在线免费观看| 欧美三级韩国三级日本一级| 日本不卡123| 久久综合九色综合97婷婷| 国产91富婆露脸刺激对白| 1区2区3区精品视频| 欧美性色aⅴ视频一区日韩精品| 亚洲bdsm女犯bdsm网站| 欧美在线不卡一区| 亚洲123区在线观看| 日韩免费观看高清完整版 | 色先锋资源久久综合| 亚洲国产日韩一区二区| 日韩欧美亚洲国产精品字幕久久久| 国产米奇在线777精品观看| 亚洲欧洲av在线| 欧美伦理电影网| 国产999精品久久久久久绿帽| 亚洲柠檬福利资源导航| 日韩亚洲欧美中文三级| 岛国精品在线观看| 午夜伦欧美伦电影理论片| 2021中文字幕一区亚洲| 91天堂素人约啪| 蜜桃精品视频在线| 自拍偷拍亚洲激情| 日韩视频在线永久播放| caoporn国产精品| 日本强好片久久久久久aaa| 国产精品美女久久福利网站 | 337p亚洲精品色噜噜| 国产黑丝在线一区二区三区| 亚洲韩国一区二区三区| 久久久精品国产99久久精品芒果 | 欧美另类一区二区三区| 国产成人免费高清| 午夜视黄欧洲亚洲| 日本一二三不卡| 91精品国产福利在线观看| 豆国产96在线|亚洲| 日本免费在线视频不卡一不卡二| 国产精品高潮呻吟久久| 欧美成人vps| 欧美日韩一区二区在线观看| 成人综合在线视频| 捆绑变态av一区二区三区|