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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? le1velib.c

?? Zalink50114----TDMoIP芯片驅動源碼
?? C
字號:
/* le1veLib.c - LE1VE (TDMoIP) soure libary file
*
* Copyright     2004-2007 ZTE, Inc.
* author:       ZhengQishan
* date:         2004.02
*
* modification history
*------------------------------
*
*/
#include "zl5011x.h"
#include "le1veLib.h"
#include "le1veApp.h"
#include "zl5011xError.h"
#include "le1veConfig.h"

UINT8  udpPortAndSlotTbl[LE1VE_UDP_MAX_LEN];
SEM_ID drv_ReadRegSemaphore[LE1VE_MAX_NUM] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
CONTEXT_ATTRIB_T  *g_contextAttribTbl[LE1VE_MAX_NUM] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};

extern int diag_prjDrvCtrlRegist();
extern int diag_prjIntfcardParamParse();
extern int drv_le1veDiag();
extern void le1veIntConnect(int slot);
extern STATUS le1veFpgaPciDevSend(UINT32 gPort, char *pBuf, int size, char *pData);
extern STATUS le1veFpgaPciDevInit(int slot);
extern STATUS b_Lce1fLineStatusGet(UINT8 slotNum, UINT32 *lineStatus);
extern void le1veFeiPhyLineStatus(int slot, UINT8 *pStatus);
extern int drv_le1veRegister(int slotNum);


char packetarp[]={0x00, 0x11, 0x5b, 0xbc, 0xf3, 0x99, /*dest mac*/ 
				      0x00, 0xd0, 0xd0, 0xc4, 0xff, 0xe0, /*source mac*/
				      0x08, 0x06, /*arp*/ 
				      0x00, 0x01, /*eth type*/
				      0x08, 0x00, /*protocol type*/
				      0x06,         /*hardware addr length*/
				      0x04,         /*protocol addr length*/
				      0x00, 0x02, /*arp op code*/
				      0x00, 0xd0, 0xd0, 0xc4, 0xff, 0xe0,  /*sender mac*/
				      0x64, 0x00, 0x00, 0x02, /*sender ip*/
				      0x00, 0x11, 0x5b, 0xbc, 0xf3, 0x99,  /*dest mac (current unkown)*/
				      0x64, 0x00, 0x00, 0x01, /*dest ip*/ 
				      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
				      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /*padding*/};
char packeticmp[]={0x00, 0x11, 0x5b, 0xbc, 0xf3, 0x99, /*dest mac*/ 
				     0x00, 0xd0, 0xd0, 0xc4, 0xff, 0xe0, /*source mac*/
				     0x08, 0x00,
				     0x45,/*ver*/
				     0x00,/*tos*/
				     0x00, 0x3c,/*head length*/
				     0x00, 0x01,/*flag*/
				     0x00, 0x00, /*fragment*/
				     0xff,/*time to live*/
				     0x01,/*protocol*/
				     0xf3,0xbc,/*check sum*/
				     0x64, 0x00, 0x00, 0x02,/*source ip*/
				     0x64, 0x00, 0x00, 0x01,/*dest ip*/
				     0x00,/*icmp type echo reply*/
				     0x00,/*icmp code*/
				     0x3f, 0x5c, /*icmp check sum*/
				     0x02, 0x00, /*indentifier*/
				     0x14, 0x00,/*seq num*/
				     0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 
				     0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
				     0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x61, 
				     0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69
				   };
STATUS drv_le1ve_init(int slot)
{
    int loop;
    UINT32 baseAddr;
    STATUS result = OK;
    static STATUS firstTime = OK;
    if (OK == firstTime)
    {
        bzero(udpPortAndSlotTbl, LE1VE_UDP_MAX_LEN);
        firstTime = ERROR;
    }
    if (slot > LE1VE_MAX_NUM || slot <= 0)
        return ERROR;
    /*shf added  2006.2.24 . if router is 18 28 38 .the 16m clock should be selected */
    #if INSTALL_ON_PPC8241
	*(UINT8 *)(b_infBaseAddrGet(slot)+ CPLD_HMVIP_CLOCK_SEL_REG) = 0x1;
	#endif

	#if INSTALL_ON_PPC8349
    EPLD_OUT_BYTE(b_infBaseAddrGet(slot)+ CPLD_HMVIP_CLOCK_SEL_REG, 0x1);
	#endif

	#if INSTALL_ON_PPC8347
    EPLD_OUT_BYTE(b_infBaseAddrGet(slot)+ CPLD_HMVIP_CLOCK_SEL_REG, 0x1);
	#endif
	
	#if INSTALL_ON_PPC8541
	EPLD_OUT_BYTE(b_infBaseAddrGet(slot)+ CPLD_HMVIP_CLOCK_SEL_REG, 0x1);
	#endif
    /*end*/
    if (NULL == g_contextAttribTbl[slot - 1])
    {
        drv_ReadRegSemaphore[slot - 1] = semBCreate (SEM_Q_FIFO, SEM_FULL);
		if (drv_ReadRegSemaphore[slot - 1] == NULL)
		    taskSuspend(0);

        if (NULL == (g_contextAttribTbl[slot - 1] = malloc(ZL5011X_MAX_NUMBER_CONTEXTS * sizeof(CONTEXT_ATTRIB_T) + 4)))
        {
            printf("Cannot malloc memory for LE1VE %d\n",slot);
            taskSuspend(0);
        }
        bzero((char *)g_contextAttribTbl[slot - 1], ZL5011X_MAX_NUMBER_CONTEXTS * sizeof(CONTEXT_ATTRIB_T) + 4);
        for (loop = 0; loop < ZL5011X_MAX_NUMBER_CONTEXTS; loop ++)
        {
            g_contextAttribTbl[slot - 1][loop].jiterBufLen = LE1VE_DEFAULT_JITTER_BUFFER;
            g_contextAttribTbl[slot - 1][loop].frameNumPerPkt = LE1VE_DEFAULT_FRAMES_PER_PKT;
            g_contextAttribTbl[slot - 1][loop].adaptiveClock = LE1VE_ADAPTIVE_CLOCK_NOT_USED;
        }
    }

    /*reset LE1VE card*/
    baseAddr = b_infBaseAddrGet(slot);
    *((UINT8*)(baseAddr  + 4 * 0x4)) = 0xff;
    taskDelay(20);
    *((UINT8*)(baseAddr  + 4 * 0x4)) = 0x0;
        
    /*初始化PM4354*/
    lce1f_pm4354_init(slot, 1, lce1f_getFrameMode(slot));

    /*初始化MT89L86
    le1veMt8986Init(slot);*/
#if 1
    /*初始化ZL50114*/
	if (ZL5011X_OK != zl5011xModuleInit(slot))
         return ERROR;
    le1veIntConnect(slot);
#if INSTALL_ON_IXP1200
    if ((slot % 2) != 0)
        le1veFpgaPciDevInit(slot);
#else
    le1veFpgaPciDevInit(slot);
#endif

#if 0
    le1veCreatRxContext(slot);
    le1veCreatTxContext(slot);
#endif
#endif
    /*注冊診斷測試*/
    drv_le1veRegister(slot);
    return result;
}

/*調試時可以關閉此接口的收發包*/
int drv_le1veSndPktFlag = 1;
STATUS drv_le1ve_send(LE1VE_SND_PKT_MSG *pMsg)
{
    int slot;
    UINT32 gPort;

    /*checkout the slot number through the UDP port Number*/
    /*for arp icmp the udpport = slot add by shf to packet forward 2005.7.29 FM 20:36*/
    if(pMsg->udp_port <TDMOIP_UDP_PORT_START)
	  slot =pMsg->udp_port;
    else 
    slot  = udpPortAndSlotTbl[pMsg->udp_port - TDMOIP_UDP_PORT_START];
    if ((slot > 0) && (drv_le1veSndPktFlag != 0))
    {
        gPort = Ros_GlobalPort(slot, 1,1);
        #if INSTALL_ON_IXP1200
        if ((slot % 2) != 0)
        {
            if (OK != le1veFpgaPciDevSend(gPort, pMsg->pbuf, pMsg->size, pMsg->pData))
                endPktFree(pMsg->pData);
        }
        else
            ;
        #else
             if (OK != le1veFpgaPciDevSend(gPort, pMsg->pbuf, pMsg->size, pMsg->pData))
                endPktFree(pMsg->pData);
        #endif
    }
    else
        endPktFree(pMsg->pData);

    return OK;
}

STATUS b_Le1veLineStatusGet(UINT8 slotNum, UINT32 *lineStatus)
{
    UINT8 feiLineStatus = 0;

    b_Lce1fLineStatusGet(slotNum, lineStatus);
    le1veFeiPhyLineStatus(slotNum, &feiLineStatus);
    
    *lineStatus |= feiLineStatus;
    return OK;
}
/*-----------------test code------------------*/
STATUS test_replypacket(UINT8 protocol, UINT16 length)/*1 for arp 2 for icmp*/
{
	LE1VE_SND_PKT_MSG packet;
	UINT32 gPort;
	gPort = Ros_GlobalPort(1, 1,1);
	if(protocol == 1)
	{
		packet.pbuf = packetarp;
		packet.size = sizeof(packetarp);
		packet.pData = NULL;
		packet.udp_port = 0;
	}
	if(protocol == 2)
	{
		*((UINT16 *)(packeticmp+40))= length;
		packet.pbuf = packeticmp;
		packet.size = sizeof(packeticmp);
		packet.pData = NULL;
		packet.udp_port = 0;
	}
 	le1veFpgaPciDevSend(gPort, packet.pbuf,packet.size , packet.pData);
	return OK;
}

STATUS test_sendpacket(UINT8 protocol, UINT count, UINT length )
{
	int i=0;
	for(i=0;i<count;i++)
		test_replypacket(protocol,0);
    return OK;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情欧美一区二区| aaa欧美日韩| av一区二区三区黑人| 欧美三级电影一区| 久久女同性恋中文字幕| 亚洲黄网站在线观看| 狠狠色综合播放一区二区| 色综合久久天天综合网| 久久综合久久鬼色中文字| 亚洲国产欧美日韩另类综合| 欧美日韩黄色一区二区| 亚洲国产精品高清| 麻豆精品国产传媒mv男同| 91搞黄在线观看| 亚洲国产电影在线观看| 看电视剧不卡顿的网站| 欧美老人xxxx18| 亚洲精品久久久蜜桃| 成人国产精品免费观看| 国产日韩亚洲欧美综合| 久久成人久久鬼色| 欧美一区二区三区视频免费| 亚洲综合视频网| 色成年激情久久综合| 国产精品二三区| 成人理论电影网| 国产亚洲一区二区三区在线观看| 轻轻草成人在线| 3atv在线一区二区三区| 午夜久久福利影院| 欧美亚洲综合网| 亚洲综合另类小说| 在线观看亚洲成人| 一区二区三区免费看视频| 色综合天天综合网天天看片| 欧美国产视频在线| 不卡视频在线观看| 中文字幕中文乱码欧美一区二区 | 亚洲国产精品一区二区久久 | 精品国产乱码久久| 日本乱人伦一区| 一区二区三区成人| 欧美日韩免费一区二区三区| 亚洲福利一二三区| 在线综合+亚洲+欧美中文字幕| 日韩影院免费视频| 日韩精品在线网站| 国产精品一二三区| 中文字幕一区二区三区不卡在线| 97超碰欧美中文字幕| 一区二区三区丝袜| 欧美日韩午夜在线| 久久成人免费日本黄色| 国产欧美一区二区在线| 91在线小视频| 五月激情丁香一区二区三区| 欧美成人a在线| 大胆亚洲人体视频| 亚洲一区二区三区视频在线| 欧美一区二区三区四区视频| 国产精品影音先锋| 一区二区三区欧美久久| 91精品国产色综合久久ai换脸 | 色综合一区二区| 亚洲成在人线免费| 久久这里只有精品首页| 99久久精品免费看国产免费软件| 亚洲最新在线观看| 欧美哺乳videos| 一本大道久久a久久精二百| 天堂资源在线中文精品| 国产欧美日产一区| 久久久无码精品亚洲日韩按摩| 91丨porny丨首页| 麻豆精品一区二区av白丝在线 | 久久久综合九色合综国产精品| 国产一区二区三区四区五区美女| 亚洲人成小说网站色在线| 91精品国产乱码久久蜜臀| 成人在线综合网| 秋霞午夜av一区二区三区| 中文字幕亚洲区| 亚洲精品一区二区在线观看| 欧美图片一区二区三区| 国产成人av一区二区三区在线观看| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美日韩高清不卡| 97成人超碰视| 国产成人自拍网| 日本最新不卡在线| 综合久久综合久久| 久久精品这里都是精品| 91精品国产aⅴ一区二区| 色综合久久六月婷婷中文字幕| 国产一区二区三区免费| 午夜欧美在线一二页| 亚洲另类中文字| 中文字幕一区三区| 日本一区二区高清| 精品成人私密视频| 91精品国产综合久久香蕉麻豆| 91福利视频在线| 91首页免费视频| gogo大胆日本视频一区| 免费一级片91| 男女激情视频一区| 免费一级片91| 久久99国产精品久久| 精品一区二区三区免费播放| 日韩av高清在线观看| 亚洲综合精品自拍| 一区二区三区精密机械公司| 国产一区视频网站| 免费在线看成人av| 国内精品伊人久久久久av影院| 日韩不卡一区二区| 日韩中文字幕av电影| 亚洲成人午夜影院| 亚洲成人一区二区在线观看| 亚洲高清免费在线| 丝袜美腿亚洲色图| 青娱乐精品在线视频| 麻豆精品一区二区三区| 国产一区二区三区日韩| 国产91丝袜在线播放九色| 国产成人午夜视频| 99综合电影在线视频| 97se狠狠狠综合亚洲狠狠| av午夜一区麻豆| 在线亚洲一区二区| 欧美日韩精品是欧美日韩精品| 91精品国产综合久久婷婷香蕉| 欧美成人一区二区三区| 欧美精品一区二区三区高清aⅴ | 中文字幕av一区二区三区免费看| 欧美国产精品中文字幕| 亚洲免费观看高清完整| 亚洲国产另类av| 精品一区二区av| va亚洲va日韩不卡在线观看| 欧美日韩一本到| 欧美zozo另类异族| 一区在线中文字幕| youjizz久久| 在线观看日韩电影| 欧美成人一级视频| 亚洲人快播电影网| 日韩精品欧美精品| 大胆亚洲人体视频| 欧美色图在线观看| 国产亚洲综合性久久久影院| 亚洲人精品午夜| 激情图片小说一区| 91成人在线免费观看| 337p粉嫩大胆噜噜噜噜噜91av| 日韩一区欧美小说| 免费精品视频在线| 91亚洲精品乱码久久久久久蜜桃| 在线电影院国产精品| 国产精品麻豆久久久| 亚洲地区一二三色| 99麻豆久久久国产精品免费 | 久久91精品久久久久久秒播| www.日本不卡| 精品国产一区二区国模嫣然| 亚洲免费av高清| 国产精品123| 欧美日韩在线综合| 国产精品情趣视频| 奇米777欧美一区二区| 色婷婷国产精品久久包臀| 久久网这里都是精品| 丝瓜av网站精品一区二区| caoporm超碰国产精品| 欧美不卡在线视频| 性做久久久久久久免费看| k8久久久一区二区三区 | 日韩免费观看高清完整版在线观看| 国产精品成人网| 国产精品一区一区| 日韩三级视频在线看| 亚洲一二三专区| 色婷婷国产精品| 亚洲老司机在线| 不卡的av电影在线观看| 欧美精品一区二区三区蜜桃视频| 青青国产91久久久久久| 精品视频一区三区九区| 亚洲精品午夜久久久| www.欧美.com| 亚洲人成人一区二区在线观看 | 一区精品在线播放| 国产精品小仙女| 久久久精品国产免大香伊| 精品在线播放午夜| 精品免费视频.| 久久99热99| 久久婷婷久久一区二区三区| 精品一区二区三区在线观看国产| 91精品国产一区二区三区香蕉|