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

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

?? cislib.c

?? 用于EQUATOR處理器上的FAT32文件系統(tǒng)(vxWorks5.5)
?? C
?? 第 1 頁 / 共 2 頁
字號:
		    dllInit ((DL_LIST *)&pConfig->node);
		    }

		dllAdd (&pCard->cisConfigList, &pConfig->node);

		pConfig->index = *pChar & 0x3f;
		if (*pChar++ & 0x80)
		    pConfig->interfaceType = *pChar++ & 0x0f;
		featureSelection = *pChar++;

		if (featureSelection & 0x03)	/* power description */
		    {
		    for (ix=1; ix <= (featureSelection & 0x03); ix++)
			{
			if (ix == 1)
			    pv = &pConfig->vcc[0];
			else if (ix == 2)
			    pv = &pConfig->vpp1[0];
			else
			    pv = &pConfig->vpp2[0];
			
			parameterSelection = *pChar++;
			if (parameterSelection & 0x01)
			    {
			    *pv++ = powerMantissa[(*pChar & 0x78) >> 3] *
				    powerExponent[(*pChar & 0x07)];
			    while (*pChar++ & 0x80)
				;
			    }
			if (parameterSelection & 0x02)
			    {
			    *pv++ = powerMantissa[(*pChar & 0x78) >> 3] *
				    powerExponent[(*pChar & 0x07)];
			    while (*pChar++ & 0x80)
				;
			    }
			if (parameterSelection & 0x04)
			    {
			    *pv++ = powerMantissa[(*pChar & 0x78) >> 3] *
				    powerExponent[(*pChar & 0x07)];
			    while (*pChar++ & 0x80)
				;
			    }
			if (parameterSelection & 0x08)
			    {
			    while (*pChar++ & 0x80)
				;
			    }
			if (parameterSelection & 0x10)
			    {
			    while (*pChar++ & 0x80)
				;
			    }
			if (parameterSelection & 0x20)
			    {
			    while (*pChar++ & 0x80)
				;
			    }
			if (parameterSelection & 0x40)
			    {
			    while (*pChar++ & 0x80)
				;
			    }
			}
		    }
		if (featureSelection & 0x04)	/* timing description */
		    {
		    waitScale	  = *pChar & 0x03;
		    busyScale	  = (*pChar & 0x1c) >> 2;
		    reservedScale = (*pChar & 0xe0) >> 5;

		    pChar++;
		    if (waitScale != 0x03)
			while (*pChar++ & 0x80)
			    ;
		    if (busyScale != 0x03)
			while (*pChar++ & 0x80)
			    ;
		    if (reservedScale != 0x03)
			while (*pChar++ & 0x80)
			    ;
		    }
		if (featureSelection & 0x08)	/* IO description */
		    {
		    pConfig->ioAddrlines = *pChar & 0x1f;
		    pConfig->ioBuswidth	 = (*pChar & 0x60) >> 5;
		    pConfig->ioRanges	 = 0;
		    if (*pChar++ & 0x80)
			{
			pConfig->ioRanges = (*pChar & 0x07) + 1;
			addrSize   = (*pChar & 0x30) >> 4;
			lengthSize = (*pChar & 0xc0) >> 6;
			pChar++;
			for (ix = 0; ix < pConfig->ioRanges; ix++)
			    {
			    addr.l = 0;
			    if (addrSize == 1)
				addr.c[0] = *pChar++;
			    else if (addrSize == 2)
				{
				addr.c[0] = *pChar++;
				addr.c[1] = *pChar++;
				}
			    else if (addrSize == 3)
				{
				addr.c[0] = *pChar++;
				addr.c[1] = *pChar++;
				addr.c[2] = *pChar++;
				addr.c[3] = *pChar++;
				}
			    length.l = 0;
			    if (lengthSize == 1)
				length.c[0] = *pChar++;
			    else if (lengthSize == 2)
				{
				length.c[0] = *pChar++;
				length.c[1] = *pChar++;
				}
			    else if (lengthSize == 3)
				{
				length.c[0] = *pChar++;
				length.c[1] = *pChar++;
				length.c[2] = *pChar++;
				length.c[3] = *pChar++;
				}
			    pConfig->io[ix].start = addr.l;
			    pConfig->io[ix].stop  = addr.l + length.l;
			    }
			}
		    }
		if (featureSelection & 0x10)	/* IRQ description */
		    {
		    pConfig->irqMode = (*pChar & 0xe0) >> 5;
		    pConfig->irqMask = (*pChar & 0x10) >> 4;
		    if (pConfig->irqMask == 1)
			{
			pConfig->irqSpecial  = *pChar++ & 0x0f;
			pConfig->irqBit.c[0] = *pChar++;
			pConfig->irqBit.c[1] = *pChar++;
			}
		    else
			{
			pConfig->irqSpecial  = 0;
			pConfig->irqBit.c[0] = 0;
			pConfig->irqBit.c[1] = 0;
			pConfig->irqLevel    = *pChar++ & 0x0f;
			}
		    }
		if (featureSelection & 0x60)	/* memory description */
		    {
		    if ((featureSelection & 0x60) == 0x20)
			{
			length.l = 0;
			length.c[0] = *pChar++;
			length.c[1] = *pChar++;
			pConfig->mem[0].length = length.l;
			pConfig->mem[0].cAddr  = 0;
			pConfig->mem[0].hAddr  = 0;
			}
		    else if ((featureSelection & 0x60) == 0x40)
			{
			length.l    = 0;
			cAddr.l     = 0;
			length.c[0] = *pChar++;
			length.c[1] = *pChar++;
			cAddr.c[0]  = *pChar++;
			cAddr.c[1]  = *pChar++;
			pConfig->mem[0].length = length.l;
			pConfig->mem[0].cAddr  = cAddr.l;
			pConfig->mem[0].hAddr  = 0;
			}
		    else if ((featureSelection & 0x60) == 0x60)
			{
			windows    = (*pChar & 0x07) + 1;
			lengthSize = (*pChar & 0x18) >> 3;
			addrSize   = (*pChar & 0x60) >> 5;
			hostaddr   = *pChar & 0x80;
			for (ix = 0; ix < windows; ix++)
			    {
			    length.l = 0;
			    cAddr.l  = 0;
			    hAddr.l  = 0;
			    if (lengthSize == 1)
				length.c[0] = *pChar++;
			    else if (lengthSize == 2)
				{
				length.c[0] = *pChar++;
				length.c[1] = *pChar++;
				}
			    else if (lengthSize == 3)
				{
				length.c[0] = *pChar++;
				length.c[1] = *pChar++;
				length.c[2] = *pChar++;
				length.c[3] = *pChar++;
				}

			    if (addrSize == 1)
				cAddr.c[0] = *pChar++;
			    else if (addrSize == 2)
				{
				cAddr.c[0] = *pChar++;
				cAddr.c[1] = *pChar++;
				}
			    else if (addrSize == 3)
				{
				cAddr.c[0] = *pChar++;
				cAddr.c[1] = *pChar++;
				cAddr.c[2] = *pChar++;
				cAddr.c[3] = *pChar++;
				}
		    
			    if (hostaddr == 0x80)
				{
			        if (addrSize == 1)
				    cAddr.c[0] = *pChar++;
			        else if (addrSize == 2)
				    {
				    cAddr.c[0] = *pChar++;
				    cAddr.c[1] = *pChar++;
				    }
			        else if (addrSize == 3)
				    {
				    cAddr.c[0] = *pChar++;
				    cAddr.c[1] = *pChar++;
				    cAddr.c[2] = *pChar++;
				    cAddr.c[3] = *pChar++;
				    }
				}
			    pConfig->mem[ix].length = length.l;
			    pConfig->mem[ix].cAddr  = cAddr.l;
			    pConfig->mem[ix].hAddr  = hAddr.l;
			    }
			}
		    }
		if (featureSelection & 0x80)	/* misc info. description */
		    {
		    pConfig->twins    = *pChar & 0x07;
		    pConfig->audio    = (*pChar & 0x08) >> 3;
		    pConfig->readonly = (*pChar & 0x10) >> 4;
		    pConfig->pwrdown  = (*pChar & 0x20) >> 5;
		    }
		break;
	    }
	}

    return (OK);
    }

/*******************************************************************************
*
* cisResourceGet - config the PC card from the configuration table link list
*
* Config the PC card from the configuration table link list.
*
* RETURNS: OK, or ERROR if the enabler couldn't initialize the PC card.
*/

LOCAL STATUS cisResourceGet
    (
    int sock			/* socket no. */
    )

    {
    PCMCIA_CTRL *pCtrl	= &pcmciaCtrl;
    PCMCIA_CARD *pCard	= &pCtrl->card[sock];
    STATUS status	= ERROR;
    PCCARD_ENABLER *pEnabler;
    int ix;

    for (ix = 0; ix < pccardEnablerNumEnt; ix++)
	{
	pEnabler = &pccardEnabler[ix];
	if (pEnabler->enableRtn != NULL)
	    {
	    if ((pCard->initStatus = (* pEnabler->enableRtn) (
					sock, 
					pEnabler->pResource,
					pEnabler->resourceNumEnt,
					pEnabler->showRtn)) == ERROR_FIND)
		{
		continue;
		}
	    else
		{
		break;
		}
	    }
	}

    if (pCard->initStatus == OK)
	status = OK;

    return (status);
    }

/*******************************************************************************
*
* cisFree - free tuples from the linked list
*
* This routine free tuples from the linked list.
*
* RETURNS: N/A
*
* INTERNAL
* This funcion should not do it by itself, it should called an enabler
* supplied destroy function to delete the device (if possible) in device
* dependent manner.
*/

void cisFree
    (
    int sock			/* socket no. */
    )

    {
    PCMCIA_CTRL *pCtrl	= &pcmciaCtrl;
    PCMCIA_CHIP *pChip	= &pCtrl->chip;
    PCMCIA_CARD *pCard	= &pCtrl->card[sock];
    PCMCIA_IOWIN iowin;
    PCMCIA_MEMWIN memwin;
    DL_NODE *pNode;
    DL_NODE *pTemp;
    int ix;


    semTake (&cisMuteSem, WAIT_FOREVER);	/* mutual exclusion begin */
    (void) (* pChip->cscOff) (sock, pChip->intLevel);

    pCard->type		= 0;
    pCard->sock		= 0;
    pCard->ctrl		= 0;
    pCard->detected	= FALSE;
    pCard->installed	= FALSE;
    pCard->changed	= TRUE;
    pCard->regBase	= 0;
    pCard->regMask	= 0;
    pCard->initStatus	= 0;
    pCard->cscIntr	= NULL;
    pCard->showRtn	= NULL;
    pCard->pResource	= NULL;

    if (pCard->pBlkDev != NULL)
        pCard->pBlkDev->bd_readyChanged = TRUE ;

    if (pCard->pNetIf != NULL)
        free ((char *)pCard->pNetIf);  /* XXX - lrn */
    pCard->pNetIf	= NULL;

    if (pCard->pDos != NULL)
	{
#if FALSE	/* DosFs 2.0 - can not remove dos device */
	iosDevDelete (&pCard->pDos->dosvd_devHdr);
	free ((char *)pCard->pDos);
#endif /*FALSE*/
	}
    pCard->pDos = NULL;

    for (pNode = DLL_FIRST(&pCard->cisTupleList); pNode != NULL; pNode = pTemp)
	{
	pTemp = DLL_NEXT(pNode);
	free (pNode);
	}
    dllInit (&pCard->cisTupleList);

    for (pNode = DLL_FIRST(&pCard->cisConfigList); pNode != NULL; pNode = pTemp)
	{
	pTemp = DLL_NEXT(pNode);
	free (pNode);
	}
    dllInit (&pCard->cisConfigList);

    (void) (* pChip->irqSet) (sock, 0);

    (void) (* pChip->flagSet) (sock, PC_PWR_AUTO);

    memwin.window	= 0;
    memwin.flags	= 0;
    memwin.extraws	= 0;
    memwin.start	= 0;
    memwin.stop		= 0;
    memwin.cardstart	= 0;
    for (ix = 0; ix < pChip->memWindows; ix++)
	{
        memwin.window	= ix;
        (void) (* pChip->memwinSet) (sock, &memwin);
	}

    iowin.window	= 0;
    iowin.flags		= 0;
    iowin.extraws	= 0;
    iowin.start		= 0;
    iowin.stop		= 0;
    for (ix = 0; ix < pChip->ioWindows; ix++)
	{
        iowin.window	= ix;
        (void) (* pChip->iowinSet) (sock, &iowin);
	}

    (void) (* pChip->cscPoll) (sock);

    (void) (* pChip->cscOn) (sock, pChip->intLevel);
    semGive (&cisMuteSem);			/* mutual exclusion end */
    }

/*******************************************************************************
*
* cisConfigregGet - get the PCMCIA configuration register
*
* This routine gets that PCMCIA configuration register.
*
* RETURNS: OK, or ERROR if it cannot set a value on the PCMCIA chip.
*/

STATUS cisConfigregGet
    (
    int sock,			/* socket no. */
    int reg,			/* configuration register no. */
    int *pValue			/* content of the register */
    )

    {
    PCMCIA_CTRL *pCtrl	= &pcmciaCtrl;
    PCMCIA_CHIP *pChip	= &pCtrl->chip;
    PCMCIA_CARD *pCard	= &pCtrl->card[sock];
    PCMCIA_MEMWIN memWin;
    char *pReg;

    if ((pCard->regBase == 0) || ((pCard->regMask & (1 << reg)) == 0) ||
        (pChip->installed != TRUE))
	return (ERROR);
    
    memWin.window	= PCMCIA_CIS_WINDOW;
    memWin.flags	= MAP_ACTIVE | MAP_16BIT | MAP_ATTRIB;
    memWin.extraws	= 2;
    memWin.start	= pcmciaMemwin[CIS_MEM_CONFIG].start;
    memWin.stop		= pcmciaMemwin[CIS_MEM_CONFIG].stop;
    memWin.cardstart	= pCard->regBase;
    if ((* pChip->memwinSet)(sock, &memWin) != OK)
	return (ERROR);

    pReg = (char *)memWin.start + (pCard->regBase & 0xfff) + (reg * 2) +
	   pCtrl->memBase;
    *pValue = *pReg;

    memWin.window	= 0;
    memWin.flags	= 0;
    memWin.extraws	= 0;
    memWin.start	= 0;
    memWin.stop		= 0;
    memWin.cardstart	= 0;
    if ((* pChip->memwinSet)(sock, &memWin) != OK)
	return (ERROR);
    
    return (OK);
    }

/*******************************************************************************
*
* cisConfigregSet - set the PCMCIA configuration register
*
* This routine sets the PCMCIA configuration register.
*
* RETURNS: OK, or ERROR if it cannot set a value on the PCMCIA chip.
*/

STATUS cisConfigregSet
    (
    int sock,			/* socket no. */
    int reg,			/* register no. */
    int value			/* content of the register */
    )

    {
    PCMCIA_CTRL *pCtrl	= &pcmciaCtrl;
    PCMCIA_CHIP *pChip	= &pCtrl->chip;
    PCMCIA_CARD *pCard	= &pCtrl->card[sock];
    PCMCIA_MEMWIN memWin;
    char *pReg;

    if ((pCard->regBase == 0) || ((pCard->regMask & (1 << reg)) == 0) ||
        (pChip->installed != TRUE))
	return (ERROR);
    
    memWin.window	= PCMCIA_CIS_WINDOW;
    memWin.flags	= MAP_ACTIVE | MAP_16BIT | MAP_ATTRIB;
    memWin.extraws	= 2;
    memWin.start	= pcmciaMemwin[CIS_MEM_CONFIG].start;
    memWin.stop		= pcmciaMemwin[CIS_MEM_CONFIG].stop;
    memWin.cardstart	= pCard->regBase;
    if ((* pChip->memwinSet)(sock, &memWin) != OK)
	return (ERROR);

    pReg = (char *)memWin.start + (pCard->regBase & 0xfff) + (reg * 2) +
	   pCtrl->memBase;
    *pReg = value;

    memWin.window	= 0;
    memWin.flags	= 0;
    memWin.extraws	= 0;
    memWin.start	= 0;
    memWin.stop		= 0;
    memWin.cardstart	= 0;
    if ((* pChip->memwinSet)(sock, &memWin) != OK)
	return (ERROR);
    
    return (OK);
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人女星排行榜| 欧美性猛交一区二区三区精品| 1区2区3区精品视频| 日韩精品中文字幕在线不卡尤物 | 亚洲国产成人精品视频| 国产精品丝袜一区| 亚洲国产激情av| 久久一区二区三区四区| 精品国产乱码久久久久久1区2区 | 8x福利精品第一导航| 欧美日韩国产高清一区| 欧美天堂一区二区三区| 精品视频色一区| 欧美日韩中文国产| 日韩一区二区三区视频在线观看| 91精品国产日韩91久久久久久| 欧美猛男男办公室激情| 日韩女优视频免费观看| 久久影院视频免费| 欧美国产欧美综合| 亚洲免费三区一区二区| 亚洲男人都懂的| 亚洲国产日产av| 男男视频亚洲欧美| 国产精品一区二区久久精品爱涩| 国产成人综合网站| 色综合视频在线观看| 欧美日韩激情一区二区三区| 精品三级在线观看| 国产精品久久777777| 亚洲午夜久久久久久久久久久| 天天做天天摸天天爽国产一区| 久久精工是国产品牌吗| 成av人片一区二区| 欧美一级午夜免费电影| 国产欧美一区二区精品忘忧草| 国产精品久久久久久久久动漫 | 亚洲一区二区三区免费视频| 日韩精品一级中文字幕精品视频免费观看| 男女男精品视频网| 99久久婷婷国产综合精品| 欧美无人高清视频在线观看| 久久久精品免费免费| 亚洲一区二区偷拍精品| 韩日精品视频一区| 在线观看不卡一区| 久久综合色8888| 亚洲欧美日韩国产中文在线| 美洲天堂一区二卡三卡四卡视频| av在线综合网| 国产精品久久久久久久久快鸭 | 欧美午夜宅男影院| 精品91自产拍在线观看一区| 自拍偷拍亚洲激情| 韩国女主播一区二区三区| 在线看国产一区二区| 日本一区二区三区dvd视频在线| 亚洲成人激情av| 成人黄色网址在线观看| 欧美一区二区三区四区久久| 伊人夜夜躁av伊人久久| 国产大陆a不卡| 精品久久国产字幕高潮| 午夜电影网一区| 91精品福利视频| 国产欧美一二三区| 久久精品国产久精国产爱| 欧美无乱码久久久免费午夜一区| 亚洲欧洲精品一区二区三区 | 韩国视频一区二区| 欧美日韩夫妻久久| 亚洲国产精品一区二区www在线| av不卡免费在线观看| 国产精品视频第一区| 国产精品18久久久久久久久久久久| 欧美一区二区久久| 丝袜美腿成人在线| 制服丝袜国产精品| 午夜精品一区二区三区免费视频| 色婷婷av一区二区三区软件| 亚洲美女免费视频| 色悠久久久久综合欧美99| 亚洲欧洲日产国码二区| 色综合久久中文字幕综合网| 国产精品久久久久久久午夜片| 丁香一区二区三区| 综合久久给合久久狠狠狠97色| www.欧美.com| 亚洲精品国产无天堂网2021| 在线中文字幕一区二区| 性做久久久久久| 欧美嫩在线观看| 美国毛片一区二区| 欧美精品一区二区三区四区| 国产专区欧美精品| 欧美激情一区二区三区蜜桃视频| 懂色av中文字幕一区二区三区| 中文字幕亚洲在| 91福利在线导航| 日本欧美一区二区三区| 26uuu国产电影一区二区| 国产91高潮流白浆在线麻豆 | 一本久道久久综合中文字幕| 亚洲精品国久久99热| 欧美精品tushy高清| 久久国产精品72免费观看| 国产午夜亚洲精品不卡| jizzjizzjizz欧美| 婷婷夜色潮精品综合在线| 精品国产一区二区精华| 波多野结衣中文字幕一区 | 在线视频观看一区| 婷婷丁香激情综合| 欧美国产视频在线| 欧美日韩三级一区二区| 国产一区在线精品| 玉米视频成人免费看| 日韩欧美久久一区| 色婷婷亚洲综合| 激情偷乱视频一区二区三区| 最新国产成人在线观看| 日韩精品一区二区三区视频在线观看| 国产黄色成人av| 亚洲午夜久久久久久久久电影网| 久久影院视频免费| 欧美三级电影在线看| 国产成人av网站| 日韩精品一二区| 亚洲欧美日韩国产手机在线| 欧美大片在线观看| 91高清视频免费看| 国产**成人网毛片九色 | 国产婷婷一区二区| 欧美电影在哪看比较好| 成年人午夜久久久| 国产麻豆日韩欧美久久| 亚洲一区二区三区免费视频| 国产偷国产偷亚洲高清人白洁| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产综合色产在线精品| 日本怡春院一区二区| 亚洲综合色噜噜狠狠| 亚洲欧洲日产国码二区| 中文字幕第一区综合| 久久综合九色综合欧美98| 欧美一区二区三区爱爱| 欧美日韩一区二区在线观看视频| 成人黄页毛片网站| 成人亚洲精品久久久久软件| 亚州成人在线电影| 一区二区三区四区av| 亚洲免费在线播放| 中文字幕一区不卡| 成人免费一区二区三区视频| 中文字幕av一区二区三区高 | 国产精品久久久久aaaa| 久久久青草青青国产亚洲免观| 日韩一区二区视频| 日韩一区二区麻豆国产| 7777精品伊人久久久大香线蕉经典版下载| 一本到高清视频免费精品| 色综合久久精品| 成人福利视频网站| 97久久精品人人做人人爽50路| 丁香桃色午夜亚洲一区二区三区| 国产成人精品在线看| 成人美女视频在线观看18| 不卡的av中国片| 一本色道综合亚洲| 欧美日韩免费不卡视频一区二区三区| 欧美午夜精品久久久久久孕妇| 欧美日本一区二区三区四区| 777色狠狠一区二区三区| 日韩欧美视频在线| 2023国产精品视频| 国产精品久久久久久妇女6080| 亚洲人成网站色在线观看| 亚洲综合激情小说| 91欧美一区二区| 色综合色综合色综合| 欧美人与性动xxxx| 久久综合久久鬼色| 成人欧美一区二区三区小说| 亚洲夂夂婷婷色拍ww47 | 欧美成人乱码一区二区三区| 国产色一区二区| 一区二区三区在线视频免费观看| 天天综合网天天综合色| 激情久久五月天| aaa欧美日韩| 91超碰这里只有精品国产| 久久影音资源网| 一区二区三区电影在线播| 麻豆精品视频在线| 成人精品一区二区三区四区| 欧美三日本三级三级在线播放| 日韩一区二区精品在线观看| 亚洲日本欧美天堂| 麻豆成人在线观看| 一本大道久久a久久精品综合|