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

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

?? i2o1.c

?? AT9260的BOOTLOADER,還有幾個版本的,需要的我再放
?? 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 );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99久久精品| 日本v片在线高清不卡在线观看| 久久蜜桃一区二区| 欧美欧美欧美欧美首页| 欧美精品v国产精品v日韩精品| 色婷婷av一区二区| 色屁屁一区二区| 色综合天天综合在线视频| 99r国产精品| 欧美亚洲自拍偷拍| 久久亚洲一级片| 91蝌蚪porny成人天涯| 99精品视频免费在线观看| 欧美美女直播网站| 亚洲精品一区二区精华| 亚洲精品午夜久久久| 日本大胆欧美人术艺术动态| 国产美女精品在线| 欧美视频一区二区| 欧美国产一区二区| 亚洲欧美日韩久久| 看电影不卡的网站| 成人一区二区三区中文字幕| 欧美体内she精视频| 国产午夜精品久久| 成人激情小说乱人伦| 国产精品一二三四区| 久久精品噜噜噜成人88aⅴ| 蜜臀av性久久久久蜜臀av麻豆 | 国产乱妇无码大片在线观看| 91亚洲精品久久久蜜桃网站| 欧美岛国在线观看| 亚洲亚洲人成综合网络| 一本色道久久综合亚洲精品按摩| 久久久综合视频| 麻豆国产精品官网| 精品国产91洋老外米糕| 日韩在线一区二区三区| 日本欧美韩国一区三区| 91免费视频网| 亚洲天天做日日做天天谢日日欢| 国产精品影视在线| 精品免费视频.| 美女视频网站黄色亚洲| 欧美人妖巨大在线| 亚洲成人中文在线| 91麻豆精品国产91久久久久久| 亚洲人成在线观看一区二区| 国产成人在线视频播放| 国产精品日产欧美久久久久| 成人午夜免费电影| 国产日韩欧美电影| 色婷婷精品久久二区二区蜜臂av| 亚洲精品写真福利| 精品精品国产高清a毛片牛牛 | 色综合久久88色综合天天6| 亚洲精品一二三| 日韩三级视频在线看| 日韩电影在线免费| 26uuu精品一区二区三区四区在线| 久久成人羞羞网站| 亚洲三级在线播放| 在线成人av网站| 国产福利电影一区二区三区| 国产精品久久久久永久免费观看| 91蜜桃网址入口| 欧美在线免费观看视频| 麻豆视频观看网址久久| 国产欧美日韩在线视频| 欧美综合欧美视频| 国产69精品久久久久777| 亚洲一区二区三区在线播放| 久久精品一二三| 在线观看亚洲一区| 99精品视频中文字幕| 免费成人在线视频观看| 亚洲一区二区视频在线观看| 亚洲欧洲精品一区二区三区不卡| 91精品午夜视频| 色综合久久中文综合久久97| 久久99精品久久久久久国产越南 | 七七婷婷婷婷精品国产| 亚洲小说春色综合另类电影| 欧美国产综合一区二区| 中文字幕高清不卡| 亚洲免费av在线| 日本在线不卡视频| 91官网在线观看| 成人h精品动漫一区二区三区| 精品一区二区免费看| 日本美女一区二区三区| 五月激情六月综合| 日韩激情一区二区| 裸体歌舞表演一区二区| 国产一区二区三区在线观看精品 | 欧美精选一区二区| 色综合久久88色综合天天| 色妞www精品视频| 欧美色视频一区| 欧美不卡视频一区| 久久久久久久免费视频了| 中文字幕在线免费不卡| 一区二区三区在线看| 亚洲一区二区三区中文字幕| 男男gaygay亚洲| 国产99精品在线观看| 色狠狠桃花综合| 日韩手机在线导航| 亚洲欧洲制服丝袜| 国产盗摄一区二区| 欧美日韩在线直播| 欧美国产1区2区| 欧美aaaaa成人免费观看视频| 精品一区二区精品| 欧美网站一区二区| 中文字幕av不卡| 久久精品国产99久久6| 色屁屁一区二区| 国产精品久久久久婷婷二区次| 免费成人在线影院| 色婷婷av久久久久久久| 欧美激情中文不卡| 久久国产剧场电影| 91精品啪在线观看国产60岁| 亚洲免费观看高清完整| 成人av午夜电影| 亚洲欧洲国产专区| 91在线免费看| 亚洲精品久久久蜜桃| 国产成人午夜精品影院观看视频 | 免费精品视频最新在线| 欧美日韩一区二区三区免费看| 亚洲图片另类小说| 91免费版在线| 中文字幕日韩一区| www.66久久| 一区二区三区在线看| 在线观看亚洲a| 亚洲电影激情视频网站| 欧美日韩成人综合天天影院| 久久激情综合网| 国产女同互慰高潮91漫画| 99久久精品国产一区| 亚洲在线观看免费视频| 欧美日韩电影在线| 亚洲高清不卡在线| 555www色欧美视频| 国产一区二区三区综合| 国产精品久久久久久久久果冻传媒 | 国产欧美日韩在线看| 色噜噜狠狠一区二区三区果冻| 亚洲小说欧美激情另类| 久久久精品综合| 欧美在线一二三| 国产美女av一区二区三区| 亚洲国产日韩在线一区模特 | 亚洲激情第一区| 精品婷婷伊人一区三区三| 激情文学综合丁香| 有码一区二区三区| 中文字幕欧美激情| 欧美一个色资源| 884aa四虎影成人精品一区| 99久精品国产| 国产福利精品一区二区| 青青草伊人久久| 午夜精品一区在线观看| 亚洲九九爱视频| 国产女同性恋一区二区| 国产午夜精品理论片a级大结局| 欧美日韩中文国产| 欧美自拍丝袜亚洲| 99re66热这里只有精品3直播 | 精品污污网站免费看| 欧美色倩网站大全免费| 99视频精品免费视频| 97超碰欧美中文字幕| 精品一区二区日韩| 日韩专区欧美专区| 蜜桃视频免费观看一区| 日韩经典中文字幕一区| 日本成人在线不卡视频| 三级在线观看一区二区| 午夜精品影院在线观看| 婷婷综合久久一区二区三区| 亚洲一区二区三区四区的| 五月婷婷色综合| 紧缚捆绑精品一区二区| 美腿丝袜亚洲色图| 精油按摩中文字幕久久| 国产一区二区三区免费播放| 国产精品99久久久久久有的能看| 久久久高清一区二区三区| 国产精品白丝jk白祙喷水网站 | 日本视频免费一区| 精品在线视频一区| 精品一区二区三区在线播放| 99精品视频中文字幕| 日韩欧美一二三四区| 久久久久九九视频|