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

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

?? i2o1.c

?? gumstiz u-boot loader in linux
?? C
?? 第 1 頁 / 共 2 頁
字號:
	/* QBA must be aligned at 1Mbyte boundary */	return I2OQUEINVALID;    }    store_runtime_reg( eumbbar, I2O_QBAR, qba );    store_runtime_reg( eumbbar, I2O_MUCR, (unsigned int)sz );    store_runtime_reg( eumbbar, I2O_IFHPR, qba );    store_runtime_reg( eumbbar, I2O_IFTPR, qba );    store_runtime_reg( eumbbar, I2O_IPHPR, qba + 1 * ( sz << 11 ));    store_runtime_reg( eumbbar, I2O_IPTPR, qba + 1 * ( sz << 11 ));    store_runtime_reg( eumbbar, I2O_OFHPR, qba + 2 * ( sz << 11 ));    store_runtime_reg( eumbbar, I2O_OFTPR, qba + 2 * ( sz << 11 ));    store_runtime_reg( eumbbar, I2O_OPHPR, qba + 3 * ( sz << 11 ));    store_runtime_reg( eumbbar, I2O_OPTPR, qba + 3 * ( sz << 11 ));    fifo_stat.qsz = sz;    fifo_stat.qba = qba;    return I2OSUCCESS;}/************************************************** * function: I2OFIFOEnable * * description: Enable the circular queue *              return I2OSUCCESS if no error. *              Otherwise I2OQUEINVALID is returned. * * note: *************************************************/I2OSTATUS I2OFIFOEnable( unsigned int eumbbar ){    unsigned int val;    if ( fifo_stat.qba == 0xfffffff )    {	return I2OQUEINVALID;    }    val = load_runtime_reg( eumbbar, I2O_MUCR );    store_runtime_reg( eumbbar, I2O_MUCR, val | 0x1 );    return I2OSUCCESS;}/************************************************** * function: I2OFIFODisable * * description: Disable the circular queue * * note: *************************************************/void I2OFIFODisable( unsigned int eumbbar ){    if ( fifo_stat.qba == 0xffffffff )    {	/* not enabled */	return;    }    unsigned int val = load_runtime_reg( eumbbar, I2O_MUCR );    store_runtime_reg( eumbbar, I2O_MUCR, val & 0xfffffffe );}/**************************************************** * function: I2OFIFOAlloc * * description: Allocate a free MFA from free FIFO. *              return I2OSUCCESS if no error. *              return I2OQUEEMPTY if no more free MFA. *              return I2OINVALID on other errors. * *              A free MFA must be allocated before a *              message can be posted. * * note: * PCI Master allocates a free MFA from inbound queue of device * (pcsrbar is the base,) through the inbound queue port of device * while local processor allocates a free MFA from its outbound * queue (eumbbar is the base.) * ****************************************************/I2OSTATUS I2OFIFOAlloc( LOCATION loc,			unsigned int base,			void         **pMsg ){    I2OSTATUS stat = I2OSUCCESS;    void *pHdr, *pTil;    if ( pMsg == 0 || *pMsg == 0 || fifo_stat.qba == 0xffffffff )    {	/* not configured */	return I2OQUEINVALID;    }    if ( loc == REMOTE )    {	/* pcsrbar is the base and read the inbound free tail ptr */	pTil = (void *)load_runtime_reg( base, I2O_IFQPR );	if ( ( (unsigned int)pTil & 0xFFFFFFF ) == 0xFFFFFFFF )	{	    stat = I2OQUEEMPTY;	}	else	{	    *pMsg = pTil;	}    }    else    {	/* eumbbar is the base and read the outbound free tail ptr */	pHdr = (void *)load_runtime_reg( base, I2O_OFHPR ); /* queue head */	pTil = (void *)load_runtime_reg( base, I2O_OFTPR ); /* queue tail */	/* check underflow */	if ( pHdr == pTil )	{	    /* hdr and til point to the same fifo item, no free MFA */	    stat = I2OQUEEMPTY;	}	else	{	  /* update OFTPR */	  *pMsg = (void *)(*(unsigned char *)pTil);	  pTil = (void *)((unsigned int)pTil + 4);	  if ( (unsigned int)pTil == fifo_stat.qba + ( 4 * ( fifo_stat.qsz << 11 ) ) )	  {		/* reach the upper limit */		pTil = (void *)(fifo_stat.qba + ( 3 * (fifo_stat.qsz << 11) ));	  }	  store_runtime_reg( base, I2O_OFTPR, (unsigned int)pTil );	}    }    return stat;}/****************************************************** * function: I2OFIFOFree * * description: Free a used MFA back to free queue after *              use. *              return I2OSUCCESS if no error. *              return I2OQUEFULL if inbound free queue *              overflow * * note: PCI Master frees a MFA into device's outbound queue *       (OFQPR) while local processor frees a MFA into its *       inbound queue (IFHPR). *****************************************************/I2OSTATUS I2OFIFOFree( LOCATION loc,		  unsigned int base,		  void *pMsg ){    void **pHdr, **pTil;    I2OSTATUS stat = I2OSUCCESS;    if ( fifo_stat.qba == 0xffffffff || pMsg == 0 )    {	    return I2OQUEINVALID;    }    if ( loc == REMOTE )    {	/* pcsrbar is the base */	store_runtime_reg( base, I2O_OFQPR, (unsigned int)pMsg );    }    else    {	/* eumbbar is the base */	pHdr = (void **)load_runtime_reg( base, I2O_IFHPR );	pTil = (void **)load_runtime_reg( base, I2O_IFTPR );	/* store MFA */	*pHdr = pMsg;	/* update IFHPR */	pHdr += 4;	if ( (unsigned int)pHdr == fifo_stat.qba + ( fifo_stat.qsz << 11 ) )	{	  /* reach the upper limit */	  pHdr = (void **)fifo_stat.qba;	}	/* check inbound free queue overflow */	if ( pHdr != pTil )	{	   store_runtime_reg( base, I2O_OPHPR, (unsigned int)pHdr);	}	else	{	    stat = I2OQUEFULL;	}    }    return stat;}/********************************************* * function: I2OFIFOPost * * description: Post a msg into FIFO post queue *              the value of msg must be the one *              returned by I2OFIFOAlloc * * note: PCI Master posts a msg into device's inbound queue *       (IFQPR) while local processor post a msg into device's *       outbound queue (OPHPR) *********************************************/I2OSTATUS I2OFIFOPost( LOCATION loc,		       unsigned int base,		       void *pMsg ){    void **pHdr, **pTil;    I2OSTATUS stat = I2OSUCCESS;    if ( fifo_stat.qba == 0xffffffff || pMsg == 0 )    {	return I2OQUEINVALID;    }    if ( loc == REMOTE )    {	/* pcsrbar is the base */	store_runtime_reg( base, I2O_IFQPR, (unsigned int)pMsg );    }    else    {	/* eumbbar is the base */	pHdr = (void **)load_runtime_reg( base, I2O_OPHPR );	pTil = (void **)load_runtime_reg( base, I2O_OPTPR );	/* store MFA */	*pHdr = pMsg;	/* update IFHPR */	pHdr += 4;	if ( (unsigned int)pHdr == fifo_stat.qba + 3 * ( fifo_stat.qsz << 11 ) )	{	  /* reach the upper limit */	  pHdr = (void **)(fifo_stat.qba + 2 * ( fifo_stat.qsz << 11 ) );	}	/* check post queue overflow */	if ( pHdr != pTil )	{	   store_runtime_reg( base, I2O_OPHPR, (unsigned int)pHdr);	}	else	{	    stat = I2OQUEFULL;	}    }    return stat;}/************************************************ * function: I2OFIFOGet * * description:  Read a msg from FIFO *               This function should be called *               only when there is a corresponding *               msg interrupt. * * note: PCI Master reads a msg from device's outbound queue *       (OFQPR) while local processor reads a msg from device's *       inbound queue (IPTPR) ************************************************/I2OSTATUS I2OFIFOGet( LOCATION loc,		       unsigned int base,		       void **pMsg ){    I2OSTATUS stat = I2OSUCCESS;    void *pHdr, *pTil;    if ( pMsg == 0 || *pMsg == 0 || fifo_stat.qba == 0xffffffff )    {	/* not configured */	return I2OQUEINVALID;    }    if ( loc == REMOTE )    {	/* pcsrbar is the base */	pTil = (void *)load_runtime_reg( base, I2O_OFQPR );	if ( ( (unsigned int)pTil & 0xFFFFFFF ) == 0xFFFFFFFF )	{	    stat = I2OQUEEMPTY;	}	else	{	    *pMsg = pTil;	}    }    else    {	/* eumbbar is the base and read the outbound free tail ptr */	pHdr = (void *)load_runtime_reg( base, I2O_IPHPR ); /* queue head */	pTil = (void *)load_runtime_reg( base, I2O_IPTPR ); /* queue tail */	/* check underflow */	if ( pHdr == pTil )	{	    /* no free MFA */	    stat = I2OQUEEMPTY;	}	else	{	  /* update OFTPR */	  *pMsg = (void *)(*(unsigned char *)pTil);	  pTil = (void *)((unsigned int)pTil + 4);	  if ( (unsigned int)pTil == fifo_stat.qba + 2 * ( fifo_stat.qsz << 11 ) )	  {		/* reach the upper limit */		pTil = (void *)(fifo_stat.qba + 1 * (fifo_stat.qsz << 11) );	  }	  store_runtime_reg( base, I2O_IPTPR, (unsigned int)pTil );	}    }    return stat;}/******************************************************** * function: I2OIOP * * description: Get the I2O PCI configuration identification *              register. * * note: PCI master should pass pcsrbar while local processor *       should pass eumbbar. *********************************************************/I2OSTATUS I2OPCIConfigGet( LOCATION loc,			unsigned int base,			I2OIOP * val){    unsigned int tmp;    if ( val == 0 )    {	    return I2OINVALID;    }    tmp = load_runtime_reg( base, PCI_CFG_CLA );    val->base_class = ( tmp & 0xFF) << 16;    tmp = load_runtime_reg( base, PCI_CFG_SCL );    val->sub_class= ( (tmp & 0xFF) << 8 );    tmp = load_runtime_reg( base, PCI_CFG_PIC );    val->prg_code = (tmp & 0xFF);    return I2OSUCCESS;}/********************************************************* * function: I2OFIFOIntEnable * * description: Enable the circular post queue interrupt * * note: * PCI master enables outbound FIFO interrupt of device * pscrbar is the base * Device enables its inbound FIFO interrupt * eumbbar is the base *******************************************************/void I2OFIFOIntEnable( LOCATION loc, unsigned int base  ){    unsigned int reg, val;    /* LOCATION - REMOTE : enable outbound message of device, pcsrbar as base     *            LOCAL  : enable local inbound message, eumbbar as base     */    reg = ( loc == REMOTE ? I2O_OMIMR : I2O_IMIMR );    val = load_runtime_reg( base, reg );    val &= 0xffffffdf; /* clear the msg interrupt bits */    store_runtime_reg( base, reg, val );}/**************************************************** * function: I2OFIFOIntDisable * * description: Disable the circular post queue interrupt * * note: * PCI master disables outbound FIFO interrupt of device * (pscrbar is the base) * Device disables its inbound FIFO interrupt * (eumbbar is the base) *****************************************************/void I2OFIFOIntDisable( LOCATION loc, unsigned int base ){    /* LOCATION - REMOTE : disable outbound message interrupt of device, pcsrbar as base     *            LOCAL  : disable local inbound message interrupt, eumbbar as base     */    unsigned int reg = ( loc == REMOTE ? I2O_OMIMR : I2O_IMIMR );    unsigned int val = load_runtime_reg( base, reg );    val |= 0x00000020; /* masked out the msg interrupt bits */    store_runtime_reg( base, reg, val );}/********************************************************* * function: I2OFIFOOverflowIntEnable * * description: Enable the circular queue overflow interrupt * * note: * Device enables its inbound FIFO post overflow interrupt * and outbound free overflow interrupt. * eumbbar is the base *******************************************************/void I2OFIFOOverflowIntEnable( unsigned int eumbbar  ){    unsigned int val = load_runtime_reg( eumbbar, I2O_IMIMR );    val &= 0xfffffe7f; /* clear the two overflow interrupt bits */    store_runtime_reg( eumbbar, I2O_IMIMR, val );}/**************************************************** * function: I2OFIFOOverflowIntDisable * * description: Disable the circular queue overflow interrupt * * note: * Device disables its inbound post FIFO overflow interrupt * and outbound free FIFO overflow interrupt * (eumbbar is the base) *****************************************************/void I2OFIFOOverflowIntDisable( unsigned int eumbbar ){    unsigned int val = load_runtime_reg( eumbbar, I2O_IMIMR );    val |= 0x00000180; /* masked out the msg overflow interrupt bits */    store_runtime_reg( eumbbar, I2O_IMIMR, val );}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区在线观看视频| 亚洲精品高清在线| 99久久免费视频.com| 亚洲成av人综合在线观看| 久久久精品人体av艺术| 欧美在线看片a免费观看| 激情六月婷婷久久| 午夜精彩视频在线观看不卡| 国产午夜精品久久久久久免费视 | 在线免费观看不卡av| 麻豆91在线观看| 亚洲综合小说图片| 国产精品美女一区二区| 精品少妇一区二区| 91精品国产综合久久国产大片| 北条麻妃一区二区三区| 国产综合一区二区| 日产精品久久久久久久性色 | 日韩主播视频在线| 亚洲色图欧美偷拍| 国产日韩精品久久久| 日韩免费观看高清完整版在线观看| 91国偷自产一区二区三区观看| 国产99久久久国产精品潘金| 日本成人在线一区| 日一区二区三区| 亚洲一区二区精品3399| 一区二区欧美精品| 亚洲日本一区二区| 综合久久久久久| 国产精品成人免费在线| 国产欧美一区二区精品仙草咪| 精品动漫一区二区三区在线观看| 88在线观看91蜜桃国自产| 欧美三级蜜桃2在线观看| 欧美亚洲愉拍一区二区| 欧洲亚洲国产日韩| 欧美三级日韩三级| 欧美剧情片在线观看| 欧美日韩综合在线| 欧美麻豆精品久久久久久| 欧美日韩精品一区二区天天拍小说| 97久久精品人人做人人爽50路| 丁香桃色午夜亚洲一区二区三区| ...xxx性欧美| 国产肉丝袜一区二区| 精品国免费一区二区三区| 欧美日本国产一区| 欧美三级日本三级少妇99| 一本大道av伊人久久综合| 成人精品鲁一区一区二区| 久久99国内精品| 免费人成精品欧美精品| 日产国产欧美视频一区精品| 亚欧色一区w666天堂| 亚洲国产精品视频| 亚洲激情成人在线| 一区二区三区在线视频免费观看| 久久久午夜精品理论片中文字幕| 日韩一区二区精品葵司在线| 欧美精三区欧美精三区| 欧美三区免费完整视频在线观看| 欧美亚洲动漫制服丝袜| 在线这里只有精品| 欧美中文字幕亚洲一区二区va在线| 99久久久免费精品国产一区二区| 成人av第一页| 欧美亚洲高清一区二区三区不卡| 欧美亚洲愉拍一区二区| 精品视频资源站| xfplay精品久久| 日本一区二区三区久久久久久久久不 | 26uuu久久天堂性欧美| 精品久久一区二区三区| 久久综合九色综合97婷婷| 国产视频一区在线观看| 国产精品久久久久桃色tv| 亚洲视频在线观看三级| 亚洲国产精品自拍| 久久99久久精品| 国产一区二区三区蝌蚪| 成人中文字幕电影| 色哟哟精品一区| 欧美精品丝袜中出| 欧美mv和日韩mv国产网站| 中文字幕国产精品一区二区| 亚洲日本一区二区三区| 天天射综合影视| 国产乱子伦一区二区三区国色天香| 国产精品香蕉一区二区三区| 色偷偷成人一区二区三区91| 88在线观看91蜜桃国自产| 国产欧美一区二区三区在线看蜜臀| 亚洲欧美影音先锋| 丝袜国产日韩另类美女| 久久99久久精品欧美| 欧美午夜精品电影| 久久日韩精品一区二区五区| 亚洲免费观看在线视频| 日本欧美一区二区在线观看| 国产乱人伦偷精品视频不卡| 欧美在线影院一区二区| 久久你懂得1024| 亚洲小少妇裸体bbw| 国产精品自拍三区| 成人app下载| 日韩欧美高清在线| 亚洲男人的天堂av| 久久精品国产一区二区三| 9久草视频在线视频精品| 91麻豆精品国产91久久久资源速度 | 中文幕一区二区三区久久蜜桃| 亚洲国产一区二区视频| 国产乱对白刺激视频不卡| 精品视频1区2区3区| 精品美女一区二区| 亚洲成av人影院| av亚洲产国偷v产偷v自拍| 精品国产乱码久久久久久夜甘婷婷 | 国产精品嫩草影院com| 天堂午夜影视日韩欧美一区二区| 成人永久aaa| 26uuu精品一区二区在线观看| 亚洲成人手机在线| 99久久国产综合精品女不卡| 精品理论电影在线观看| 亚洲成国产人片在线观看| 欧美亚一区二区| 国产精品精品国产色婷婷| 国内精品久久久久影院薰衣草| 欧美日韩黄色影视| 亚洲精品久久7777| 成人av资源网站| 国产亚洲欧美日韩日本| 免费精品99久久国产综合精品| 国产成人免费在线观看不卡| 国产亚洲精品7777| 韩国三级中文字幕hd久久精品| 欧美日韩在线播放三区四区| 亚洲欧洲韩国日本视频| 成人h动漫精品一区二区| 国产日产精品一区| 国产乱码精品一区二区三区忘忧草| 日韩一级二级三级| 亚洲欧美色图小说| 欧美特级限制片免费在线观看| 亚洲欧洲日产国码二区| 不卡的电影网站| 中文字幕一区二区三区不卡| 成人激情电影免费在线观看| 欧美国产日韩精品免费观看| 国产精品一区二区不卡| 久久久久久免费网| zzijzzij亚洲日本少妇熟睡| 亚洲国产高清aⅴ视频| 国产乱码精品一区二区三| 国产日韩欧美一区二区三区乱码 | 日韩一区二区三区电影在线观看 | 亚洲精品v日韩精品| 色婷婷激情综合| 亚洲综合一二三区| 欧美情侣在线播放| 日韩二区三区在线观看| 91精品欧美久久久久久动漫| 亚洲第一av色| 久久久久国产精品麻豆ai换脸| 国产精品资源网站| 国产欧美精品在线观看| www.色精品| 一区二区三区中文字幕| 欧美日韩在线观看一区二区| 日韩在线播放一区二区| 日韩一区和二区| 国产91精品入口| 一区二区三区欧美视频| 欧美男生操女生| 久久99国产精品麻豆| 国产欧美综合在线观看第十页| 成年人网站91| 亚洲国产精品一区二区久久| 欧美日韩免费在线视频| 懂色av噜噜一区二区三区av| 国产精品欧美综合在线| 欧洲在线/亚洲| 国模冰冰炮一区二区| 中文字幕中文字幕在线一区| 色婷婷av一区| 麻豆91精品91久久久的内涵| 国产精品色哟哟| 欧美偷拍一区二区| 国产一区三区三区| 亚洲精品视频在线观看网站| 欧美一级高清大全免费观看| 国产成人综合在线播放| 亚洲精品成a人| 精品电影一区二区| 欧美日韩不卡一区二区| 久久精品99国产国产精| 亚洲视频免费看| 精品久久99ma|