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

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

?? global.c

?? s3c6410 官方測(cè)試代碼
?? C
字號(hào):
/*******************************************************************************
*
* FILE         : fimg_global.c
* TITLE        : FIMGSE Register-Level API 
* AUTHOR       : Jaeho Kim
* CREATED      : 1 April 2006
*
* COPYRIGHT    : 2005 by Samsung Electronics Limited.
*                All rights reserved.  No part of this software, either
*                material or conceptual may be copied or distributed,
*                transmitted, transcribed, stored in a retrieval system
*                or translated into any human or computer language in any
*                form by any means, electronic, mechanical, manual or
*                other-wise, or disclosed to third parties without the
*                express written permission of Samsung Electronics. 
*                Semiconductor Business, System LSI Division,  Mobile 
*                Solution Development, Graphics IP Team in AP.
*
* DESCRIPTION  : APIs to control global registers
*
* PLATFORM     : ALL
* HISTORY      : 	 
* $RCSfile: fimg_global.c,v $
* $Revision: 1.5 $
* $Author: cheolkyoo.kim $
* $Date: 2006/05/03 05:31:43 $
* $Locker:  $
* 
* $Source: C:/CVS/CVSrepository/FIMG-3DSE_SW/fimg3dse_fpga/fimg3d/device/fimg_global.c,v $
* $State: Exp $
* $Log: fimg_global.c,v $
* Revision 1.5  2006/05/03 05:31:43  cheolkyoo.kim
* no message
*
* Revision 1.4  2006/04/13 10:56:31  cheolkyoo.kim
* Replace FG_TRUE with FGL_TRUE.
*
* Revision 1.3  2006/04/10 05:18:41  im.jaeho.kim
* comments are added
*
* Revision 1.2  2006/04/06 06:27:37  im.jaeho.kim
* no message
*
*
*******************************************************************************/

#include "fgl.h"
#include "register.h"

/***************************************************************************** 
 * FUNCTIONS: fglGetPipelineStatus
 * SYNOPSIS: This function obtains status of the pipeline
 * PARAMETERS: [OUT] status: the pointer of FGL_PipelineStatus
 * RETURNS: FGL_ERR_NO_ERROR - always.
 * ERRNO:
 *****************************************************************************/

FGL_Error
fglGetPipelineStatus(FGL_PipelineStatus *status)
{
	unsigned int bits = 0;

	//bits = READREG(FGGB_PIPESTATE);
	READREGP(FGGB_PIPESTATE, bits);

	// [0]: host fifo 
	status->isNotEmptyHOSTFIFO = !(bits & FGL_PIPESTATE_HOSTFIFO);
	// [1]: host interface 
	status->isNotEmptyHI = !(bits & FGL_PIPESTATE_HI);
	// [2]: FIFO between host interface and vertex shader
	status->isNotEmptyHI2VS = !(bits & FGL_PIPESTATE_HI2VS);
	// [3]: vertex cache
	status->isNotEmptyVC = !(bits & FGL_PIPESTATE_VC);
	// [4]: vertex shader
	status->isNotEmptyVS = !(bits & FGL_PIPESTATE_VS);
	// [8]: primitive engine
	status->isNotEmptyPE = !(bits & FGL_PIPESTATE_PE);
	// [9]: triangle setup engine
	status->isNotEmptyTSE = !(bits & FGL_PIPESTATE_TSE);
	// [10]: raster engine
	status->isNotEmptyRA = !(bits & FGL_PIPESTATE_RA);
#if 0
	// [12]: pixel shader 0
	status->isNotEmptyPS0 = !(bits & FGL_PIPESTATE_PS0);
	// [13]: pixel shader 1
	status->isNotEmptyPS1 = !(bits & FGL_PIPESTATE_PS1);
	// [16]: per-fragment 0
	status->isNotEmptyPF0 = !(bits & FGL_PIPESTATE_PF0);
	// [17]: per-fragment 1
	status->isNotEmptyPF1 = !(bits & FGL_PIPESTATE_PF1);
#else
	// [12:13]: pixel shader
	status->isNotEmptyPS = !((bits & FGL_PIPESTATE_PS) == FGL_PIPESTATE_PS);
	// [16:17]: per-fragment 0
	status->isNotEmptyPF = !((bits & FGL_PIPESTATE_PF) == FGL_PIPESTATE_PF);
#endif

	return FGL_ERR_NO_ERROR;
}

/***************************************************************************** 
 * FUNCTIONS: fglFlush
 * SYNOPSIS: This function flushes the fimg3d pipeline
 * PARAMETERS: [IN] pipelineFlags: Specified pipeline states are flushed
 * RETURNS: FGL_ERR_NO_ERROR - always.
 * ERRNO:
 *****************************************************************************/

FGL_Error
fglFlush(unsigned int pipelineFlags)
{
	unsigned int data;

//	WRITEREG(FGGB_CACHECTL, clearFlags); // start clearing the cache

	do
	{
		//data = READREG(FGGB_PIPESTATE);
		READREGP(FGGB_PIPESTATE, data);
	}
	while(data & pipelineFlags);

	return FGL_ERR_NO_ERROR;
}


/***************************************************************************** 
 * FUNCTIONS: fglClearCache
 * SYNOPSIS: This function clears the caches
 * PARAMETERS: [IN] clearFlags: Specified caches are cleared
 * RETURNS: FGL_ERR_NO_ERROR - always.
 * ERRNO:
 *****************************************************************************/

FGL_Error
fglClearCache(unsigned int clearFlags)
{
	unsigned int data;

	WRITEREG(FGGB_CACHECTL, clearFlags); // start clearing the cache

	do
	{
		//data = READREG(FGGB_CACHECTL);
		READREGP(FGGB_CACHECTL, data);
	}
	while((data & clearFlags) != 0);

	return FGL_ERR_NO_ERROR;
}

/***************************************************************************** 
 * FUNCTIONS: fglSoftReset
 * SYNOPSIS: This function resets FIMG-3DSE, but the SFR values are not affected
 * PARAMETERS:
 * RETURNS: FGL_ERR_NO_ERROR - always.
 * ERRNO:
 *****************************************************************************/

FGL_Error
fglSoftReset(void)
{
	unsigned int i;
	
	WRITEREG(FGGB_RST, FGL_TRUE);
	
	/* delay */
	for(i = 0; i < 50; i++)
		; /* NULL */

	WRITEREG(FGGB_RST, FGL_FALSE);

	return FGL_ERR_NO_ERROR;
}

/***************************************************************************** 
 * FUNCTIONS: fglGetInterrupt
 * SYNOPSIS: This function returns a bool which interrupt is generated or not
 *           In later implementation, programmer can connect this register
 *           to some conditions except pipeline status.
 *           
 * PARAMETERS: [OUT] isGenInterrupt: interrupt bit
 * RETURNS: FGL_ERR_NO_ERROR - always.
 * ERRNO:
 *****************************************************************************/

FGL_Error
fglGetInterrupt(FG_BOOL* isGenInterrupt)
{
	//*isGenInterrupt = READREG(FGGB_INTPENDING);
	READREGP(FGGB_INTPENDING, *isGenInterrupt);
	*isGenInterrupt &= FGL_TRUE; // return first bit only

	return FGL_ERR_NO_ERROR;
}

/***************************************************************************** 
 * FUNCTIONS: fglPendInterrupt
 * SYNOPSIS: This function makes currunt interrupt to pend
 * PARAMETERS:
 * RETURNS: FGL_ERR_NO_ERROR - always.
 * ERRNO:
 *****************************************************************************/

FGL_Error
fglPendInterrupt(void)
{
	WRITEREG(FGGB_INTPENDING, FGL_TRUE);

	return FGL_ERR_NO_ERROR;
}

/***************************************************************************** 
 * FUNCTIONS: fglEnableInterrupt
 * SYNOPSIS: This function enables the FIMG-3DSE interrupt
 * PARAMETERS:
 * RETURNS: FGL_ERR_NO_ERROR - always.
 * ERRNO:
 *****************************************************************************/

FGL_Error
fglEnableInterrupt(void)
{
	WRITEREG(FGGB_INTMASK, FGL_TRUE);
	return FGL_ERR_NO_ERROR;
}
	
/***************************************************************************** 
 * FUNCTIONS: fglDisableInterrupt
 * SYNOPSIS: This function disables the FIMG-3DSE interrupt
 * PARAMETERS:
 * RETURNS: FGL_ERR_NO_ERROR - always.
 * ERRNO:
 *****************************************************************************/

FGL_Error
fglDisableInterrupt(void)
{
	WRITEREG(FGGB_INTMASK, FGL_FALSE);
	return FGL_ERR_NO_ERROR;
}


/***************************************************************************** 
 * FUNCTIONS: fglSetInterruptBlock
 * SYNOPSIS: This function sets pipeline blocks to generate interrupt.
 * PARAMETERS: [IN] pipeMask: Oring PIPESTATE_XXXX block of generating interrupt
 * RETURNS: FGL_ERR_NO_ERROR - always.
 * ERRNO:
 *****************************************************************************/

FGL_Error
fglSetInterruptBlock(unsigned int pipeMask)
{
	WRITEREG(FGGB_PIPEMASK, pipeMask);
	return FGL_ERR_NO_ERROR;
}

/***************************************************************************** 
 * FUNCTIONS: fglSetInterruptState
 * SYNOPSIS: This function sets an interrupt generated state of each block
 * PARAMETERS: [IN] status: each block state for interrupt to occur
 * RETURNS: FGL_ERR_NO_ERROR - always.
 * ERRNO:
 *****************************************************************************/

FGL_Error
fglSetInterruptState(FGL_PipelineStatus status)
{
	unsigned int bitPipeState;

	bitPipeState = status.isNotEmptyHOSTFIFO << FGL_PIPESTATE_HOSTFIFO_BIT;
	bitPipeState |= status.isNotEmptyHI << FGL_PIPESTATE_HI_BIT;
	bitPipeState |= status.isNotEmptyHI2VS << FGL_PIPESTATE_HI2VS_BIT;
	bitPipeState |= status.isNotEmptyVS << FGL_PIPESTATE_VS_BIT;
	bitPipeState |= status.isNotEmptyVC << FGL_PIPESTATE_VC_BIT;
	bitPipeState |= status.isNotEmptyPS << FGL_PIPESTATE_PS0_BIT;
	bitPipeState |= status.isNotEmptyPF << FGL_PIPESTATE_PF0_BIT;
	
	bitPipeState |= status.isNotEmptyPS << FGL_PIPESTATE_PS1_BIT;
	bitPipeState |= status.isNotEmptyPF << FGL_PIPESTATE_PF1_BIT;

	WRITEREG(FGGB_PIPETGTSTATE, bitPipeState);

	return FGL_ERR_NO_ERROR;
}

/***************************************************************************** 
 * FUNCTIONS: fglGetInterruptState
 * SYNOPSIS: This function returns the value of pipeline-state when interrupt
 *           is to occur
 * PARAMETERS: [OUT] status: Each block state of pipeline
 * RETURNS: FGL_ERR_NO_ERROR - always.
 * ERRNO:
 *****************************************************************************/

FGL_Error
fglGetInterruptState(FGL_PipelineStatus* status)
{
	unsigned int bitPipeState;

	 //bitPipeState = READREG(FGGB_PIPEINTSTATE);
	 READREGP(FGGB_PIPEINTSTATE, bitPipeState);

	status->isNotEmptyHOSTFIFO = bitPipeState & FGL_PIPESTATE_HOSTFIFO;
	status->isNotEmptyHI = bitPipeState & FGL_PIPESTATE_HI;
	status->isNotEmptyHI2VS = bitPipeState & FGL_PIPESTATE_HI2VS;
	status->isNotEmptyVS = bitPipeState & FGL_PIPESTATE_VS;
	status->isNotEmptyVC = bitPipeState & FGL_PIPESTATE_VC;
	status->isNotEmptyPS = bitPipeState & FGL_PIPESTATE_PS0;
	status->isNotEmptyPF = bitPipeState & FGL_PIPESTATE_PF0;
	
	status->isNotEmptyPS |= (bitPipeState & FGL_PIPESTATE_PS1);
	status->isNotEmptyPF |= (bitPipeState & FGL_PIPESTATE_PF1);

	return FGL_ERR_NO_ERROR;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www久久精品| 成人美女视频在线观看18| 日本一区二区免费在线| 欧美老人xxxx18| 555www色欧美视频| 欧美一区二区三区在线| 欧美一区二区大片| 欧美一区二区三区视频免费播放| 欧美色老头old∨ideo| 欧美性生活久久| 欧美喷潮久久久xxxxx| 在线综合亚洲欧美在线视频| 欧美日韩高清在线播放| 欧美一区二区免费| 欧美mv日韩mv国产| 国产亚洲欧美色| 国产精品久久久久久久久免费丝袜| 欧美国产综合色视频| 中文字幕一区av| 一区二区欧美视频| 亚洲成年人网站在线观看| 日产国产欧美视频一区精品| 美女一区二区视频| 粉嫩欧美一区二区三区高清影视| 成年人午夜久久久| 欧美喷潮久久久xxxxx| 久久影院午夜论| 亚洲乱码国产乱码精品精98午夜| 亚洲成在人线在线播放| 韩国理伦片一区二区三区在线播放| 国产乱码精品一品二品| 91欧美激情一区二区三区成人| 欧美视频在线播放| 久久久久久久久97黄色工厂| 亚洲色图20p| 国产自产高清不卡| 99久久伊人网影院| 91精品国产欧美日韩| 久久精品人人做人人爽97| 有码一区二区三区| 国产精品一区二区免费不卡| 欧美在线视频日韩| 国产亚洲一区字幕| 午夜精品福利在线| 99麻豆久久久国产精品免费优播| 制服.丝袜.亚洲.另类.中文| 国产亚洲综合色| 免费久久99精品国产| 在线观看一区日韩| 中文字幕乱码亚洲精品一区| 日本成人超碰在线观看| 91麻豆自制传媒国产之光| 日韩欧美在线影院| 亚洲一区二区三区在线| 国产成人丝袜美腿| 日韩一区二区免费在线观看| 亚洲影院在线观看| 成人蜜臀av电影| 久久久久久久国产精品影院| 免费看欧美美女黄的网站| 欧美日韩一区中文字幕| 综合分类小说区另类春色亚洲小说欧美 | 亚洲成人三级小说| 99re免费视频精品全部| 2020日本不卡一区二区视频| 一区二区三区在线视频观看58| 国产福利一区二区三区视频 | 色偷偷久久一区二区三区| 国产亚洲制服色| 韩国精品久久久| 日韩午夜激情视频| 美女一区二区在线观看| 91精品国产91久久久久久一区二区 | 欧美三级日本三级少妇99| 亚洲国产精品高清| 成人动漫在线一区| 日本一区二区在线不卡| 成人网页在线观看| 国产精品久久久久久久久免费相片| 国产91富婆露脸刺激对白| 国产日韩精品一区二区浪潮av| 国产精品资源在线看| 久久久久久亚洲综合影院红桃 | 91成人免费网站| 亚洲第四色夜色| 日韩午夜在线影院| 国产精品影音先锋| 亚洲欧美影音先锋| 91福利国产精品| 日本女优在线视频一区二区| 日韩你懂的在线播放| 久久av资源网| 国产精品美女www爽爽爽| 97精品电影院| 视频在线在亚洲| 日韩一级免费一区| 国产一区二区三区| 中文文精品字幕一区二区| 成人高清在线视频| 亚洲精品免费在线| 在线不卡中文字幕| 国内精品伊人久久久久av影院 | 欧美影院精品一区| 亚洲高清免费一级二级三级| 日韩欧美的一区二区| 顶级嫩模精品视频在线看| 亚洲欧美日韩一区| 欧美一级日韩免费不卡| 国产麻豆欧美日韩一区| 亚洲精品一卡二卡| 精品免费视频一区二区| 91视频观看视频| 精品在线视频一区| 一区二区三区在线播| 欧美成人一区二区三区| 99这里都是精品| 喷白浆一区二区| 亚洲欧洲成人av每日更新| 欧美疯狂性受xxxxx喷水图片| 国产一区二区三区免费在线观看| 国产精品热久久久久夜色精品三区 | 蜜桃av一区二区三区| 国产精品久久久久一区| 日韩精品最新网址| 日本韩国精品一区二区在线观看| 久久99精品视频| 亚洲电影中文字幕在线观看| 日本一区二区三区高清不卡 | 成人免费视频免费观看| 三级成人在线视频| 亚洲天堂精品在线观看| 26uuu亚洲综合色| 欧亚一区二区三区| av电影在线观看完整版一区二区| 免费欧美高清视频| 亚洲电影你懂得| 亚洲欧洲日产国产综合网| 国产亚洲精品aa| 精品免费99久久| 91精品国产入口在线| 欧美日韩免费观看一区二区三区| 本田岬高潮一区二区三区| 韩国欧美国产1区| 麻豆成人av在线| 日本成人在线网站| 日韩经典一区二区| 午夜免费欧美电影| 一级特黄大欧美久久久| 亚洲欧美国产三级| 亚洲欧洲日韩一区二区三区| 日本一二三四高清不卡| 欧美激情一区二区三区| 久久精品视频网| 日本一区二区在线不卡| 国产婷婷色一区二区三区在线| 精品日产卡一卡二卡麻豆| 91精品国产一区二区| 欧美三级韩国三级日本一级| 欧美乱熟臀69xxxxxx| 制服丝袜中文字幕一区| 日韩视频一区二区| 亚洲精品一区二区三区四区高清| 欧美sm美女调教| 久久久.com| 国产欧美日韩精品a在线观看| 久久久久久久久久美女| 日本一区二区视频在线观看| 国产精品乱码久久久久久| 中文字幕亚洲成人| 一区二区在线观看免费| 一区二区三区四区在线播放 | 日韩精品一区二区三区中文精品| 91麻豆精品国产91久久久久久| 51精品秘密在线观看| 久久色在线观看| 中文字幕亚洲精品在线观看| 亚洲一区精品在线| 人妖欧美一区二区| 国产一区二区三区观看| 99re这里都是精品| 欧美精品亚洲一区二区在线播放| 欧美一区二区三区四区高清| www国产成人免费观看视频 深夜成人网| 久久影院午夜片一区| 国产精品毛片高清在线完整版| 一区二区三区免费| 日本一不卡视频| 国产成人av网站| 在线观看网站黄不卡| 日韩欧美中文字幕一区| 亚洲日本中文字幕区| 美女国产一区二区| 99国产精品久| 精品国产一区二区三区忘忧草| 国产精品国产三级国产三级人妇| 亚洲成av人影院在线观看网| 国产福利精品一区| 91精品国产综合久久久久久久久久| 国产喂奶挤奶一区二区三区| 午夜私人影院久久久久|