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

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

?? wmrglobal.c

?? 6410BSP3
?? C
字號:
/*****************************************************************************/
/*                                                                           */
/* COMPONENT   : Rainbow				                                     */
/* MODULE      : Global				                                         */
/* NAME    	   : 							                                 */
/* FILE        : WMRGlobal.c	                                             */
/* PURPOSE 	   : This file contains the exported global variable & function. */
/*                                                                           */
/*---------------------------------------------------------------------------*/
/*                                                                           */
/*          COPYRIGHT 2003-2005 SAMSUNG ELECTRONICS CO., LTD.                */
/*                          ALL RIGHTS RESERVED                              */
/*                                                                           */
/*   Permission is hereby granted to licensees of Samsung Electronics        */
/*   Co., Ltd. products to use or abstract this computer program for the     */
/*   sole purpose of implementing a product based on Samsung                 */
/*   Electronics Co., Ltd. products. No other rights to reproduce, use,      */
/*   or disseminate this computer program, whether in part or in whole,      */
/*   are granted.                                                            */
/*                                                                           */
/*   Samsung Electronics Co., Ltd. makes no representation or warranties     */
/*   with respect to the performance of this computer program, and           */
/*   specifically disclaims any responsibility for any damages,              */
/*   special or consequential, connected with the use of this program.       */
/*                                                                           */
/*---------------------------------------------------------------------------*/
/*                                                                           */
/* REVISION HISTORY                                                          */
/*                                                                           */
/*   11-AUG-2005 [Jaesung Jung] : first writing                              */
/*                                                                           */
/*****************************************************************************/
#include <WMRConfig.h>
#include <WMRTypes.h>
#include <OSLessWMROAM.h>


/*****************************************************************************/
/* Variables definitions                                              		 */
/*****************************************************************************/
WMRDeviceInfo			stDeviceInfo;
WMRConfig				stConfig;
WMRLayout				stLayout;

/*****************************************************************************/
/* Static function prototypes                                                */
/*****************************************************************************/
#if (!WMR_STDLIB_SUPPORT)
PRIVATE UINT32		_CalcShift			(UINT32	 nVal);
#endif

/*****************************************************************************/
/* Code Implementation                                                       */
/*****************************************************************************/
/*****************************************************************************/
/*                                                                           */
/* NAME                                                                      */
/*      _CalcShift	                                                         */
/* DESCRIPTION                                                               */
/*      This function calculate the shift value of global variables.	     */
/* PARAMETERS                                                                */
/*      nVal   [IN] 	global variable										 */
/* RETURN VALUES                                                             */
/*		UINT32																 */
/*				shift value													 */
/* NOTES                                                                     */
/*                                                                           */
/*****************************************************************************/
#if (!WMR_STDLIB_SUPPORT)
PRIVATE UINT32
_CalcShift (UINT32 nVal)
{
	UINT32 nRet = 0;
	UINT32 nTemp = nVal;
	
	do
	{
		if (nTemp & 0x1)
			break;
		nTemp = (nTemp >> 1);
		nRet++;
		
	}while(1);

	return nRet;
}
#endif

/*****************************************************************************/
/*                                                                           */
/* NAME                                                                      */
/*      CalcGlobal	                                                         */
/* DESCRIPTION                                                               */
/*      This function calculate global variables.						     */
/* PARAMETERS                                                                */
/*      bInternalInterleaving   [IN] 	support internal interleaving or not */
/* RETURN VALUES                                                             */
/*		none																 */
/* NOTES                                                                     */
/*                                                                           */
/*****************************************************************************/
VOID
CalcGlobal(BOOL32 bInternalInterleaving)
{
	WMR_AREA_SIZE = WMR_AREA_DEF_SIZE;
	WMR_MAX_RECLAIM = DEF_WMR_MAX_RECLAIM;

	IS_CHECK_SPARE_ECC = TRUE32;

    IS_SUPPORT_INTERNAL_INTERLEAVING = bInternalInterleaving;

	/****************************/
	/* Basic device information */
	/****************************/
	if ((BANKS_TOTAL > 1) || (IS_SUPPORT_INTERNAL_INTERLEAVING == TRUE32))
	{
		IS_SUPPORT_INTERLEAVING = TRUE32;
	}
	else
	{
		IS_SUPPORT_INTERLEAVING = FALSE32;
	}

	if ((BLOCKS_PER_BANK > 1024) || (TWO_PLANE_PROGRAM == TRUE32))
	{
		DEV_ADDR_CYCLE = 5;
	}
	else
	{
		DEV_ADDR_CYCLE = 4;
	}

	PAGES_PER_BANK = BLOCKS_PER_BANK * PAGES_PER_BLOCK;
	PAGES_TOTAL = PAGES_PER_BANK * BANKS_TOTAL;
	PAGES_PER_SUBLK = PAGES_PER_BLOCK * BANKS_TOTAL;

	BYTES_PER_MAIN_PAGE = BYTES_PER_SECTOR * SECTORS_PER_PAGE;

	if (ECC_8BIT_SPPORT)
	{
		BYTES_PER_SPARE_PAGE = 256;					
	}
	else
	{
		BYTES_PER_SPARE_PAGE = BYTES_PER_SPARE * SECTORS_PER_PAGE;			
	}
	

	SECTORS_PER_SUBLK = PAGES_PER_SUBLK * SECTORS_PER_PAGE;
	SECTORS_PER_SUPAGE = SECTORS_PER_PAGE;

	BYTES_PER_MAIN_SUPAGE = BYTES_PER_MAIN_PAGE;
	BYTES_PER_SPARE_SUPAGE = BYTES_PER_SPARE_PAGE;

	if (TWO_PLANE_PROGRAM == TRUE32)
	{
		SECTORS_PER_SUBLK *= 2;
		SECTORS_PER_SUPAGE *= 2;
		BYTES_PER_MAIN_SUPAGE *=2;
		BYTES_PER_SPARE_SUPAGE *= 2;
	}

	SUBLKS_TOTAL = BLOCKS_PER_BANK;

#if (!WMR_STDLIB_SUPPORT)
	BANKS_TOTAL_SHIFT = _CalcShift(BANKS_TOTAL);
#endif

	NUM_MAPS = SUBLKS_TOTAL / WMR_MAPS_PER_BLOCK;

	/****************************/
	/* Whimory VFL, FTL layout information */
	/****************************/

	/* EACH SECTION SIZE */
	FTL_INFO_SECTION_SIZE = NUM_MAPS + 2;
	SPECIAL_AREA_SIZE = WMR_SPECIAL_AREA_SIZE/BANKS_TOTAL/(SECTORS_PER_SUPAGE/SECTORS_PER_PAGE);
	RESERVED_SECTION_SIZE = (SUBLKS_TOTAL*WMR_RESERVED_SUBLKS_RATIO)/100;
	VFL_AREA_SIZE = VFL_INFO_SECTION_SIZE + RESERVED_SECTION_SIZE;

	USER_SUBLKS_TOTAL = SUBLKS_TOTAL - (WMR_AREA_SIZE + SPECIAL_AREA_SIZE + RESERVED_SECTION_SIZE + VFL_INFO_SECTION_SIZE + FTL_INFO_SECTION_SIZE + FREE_SECTION_SIZE + 10);

#if 0  // it is needless because the method for calculation of USER_SUBLKS_TOTAL is changed
	#if(WMR_MLC_LSB_RECOVERY)
	if(IS_MLC)
	{
		USER_SUBLKS_TOTAL -= LOG_SECTION_SIZE;
	}
	#endif
#endif

	USER_SECTORS_TOTAL = USER_SUBLKS_TOTAL * SECTORS_PER_SUBLK;
	DATA_SECTION_SIZE = USER_SUBLKS_TOTAL;

	/* EACH SECTION START ADDRESS */	
	FTL_INFO_SECTION_START = FTL_AREA_START;
	FREE_SECTION_START = FTL_INFO_SECTION_START + FTL_INFO_SECTION_SIZE;
	DATA_SECTION_START = FREE_SECTION_START + FREE_SECTION_SIZE;

	/* fat area size */
	if (LOG_SECTION_SIZE > 4)
	{
		if (IS_MLC)
		{
			FAT_SIZE = 2;
		}
		else
		{
			FAT_SIZE = 3;
		}
	}
	else
	{
		FAT_SIZE = 0;
	}

	/****************************/
	#if (!WMR_STDLIB_SUPPORT)
	PAGES_PER_SUBLK_SHIFT = _CalcShift(PAGES_PER_SUBLK);
  	NUM_MAPS_SHIFT = _CalcShift(NUM_MAPS);
  	SECTORS_PER_SUBLK_SHIFT = _CalcShift(SECTORS_PER_SUBLK);
  	SECTORS_PER_PAGE_SHIFT = _CalcShift(SECTORS_PER_PAGE);
  	SECTORS_PER_SUPAGE_SHIFT = _CalcShift(SECTORS_PER_SUPAGE);
  	PAGES_PER_SUBLK_SHIFT = _CalcShift(PAGES_PER_SUBLK);
  	PAGES_PER_BLOCK_SHIFT = _CalcShift(PAGES_PER_BLOCK);
  	PAGES_PER_BANK_SHIFT = _CalcShift(PAGES_PER_BANK);
   	BLOCKS_PER_BANK_SHIFT = _CalcShift(BLOCKS_PER_BANK);
  	#endif
	
	return;
	
}

/*****************************************************************************/
/*                                                                           */
/* NAME                                                                      */
/*      GetMlcClass	                                                         */
/* DESCRIPTION                                                               */
/*      This function return TYPE of MLC ( Pair of LSB and MSB ).	   	     */
/* PARAMETERS                                                                */
/*      nDID   [IN] 	Device ID											 */
/*      nHID   [IN] 	Hidden ID											 */
/* RETURN VALUES                                                             */
/*		Type of MLC															 */
/* NOTES                                                                     */
/*                                                                           */
/*****************************************************************************/
#if (WMR_MLC_LSB_RECOVERY)
UINT32 
GetMlcClass(UINT8 nDID, UINT8 nHID)
{
#if 0
	struct 
	{
		UINT8	nDevID;
		UINT8	nHidID;
		UINT32	nClass;
	} stMlc[6] = { 
					{0xDC, 0x14, WMR_MLC_LSB_CLASS1 },	/* 4G08 MLC(K9G4G08) Mono */
					{0xD3, 0x55, WMR_MLC_LSB_CLASS1 },	/* 8G08 MLC(K9L8G08) DDP  */
					{0xD3, 0x14, WMR_MLC_LSB_CLASS1 },	/* 8G08 MLC(K9G8G08) Mono */
					{0xD5, 0x55, WMR_MLC_LSB_CLASS1 },	/* 16Gb MLC(K9LAG08) DDP  */
					{0xD5, 0x14, WMR_MLC_LSB_CLASS2 },	/* 16Gb MLC(K9GAG08) Mono */			
					{0xD7, 0x55, WMR_MLC_LSB_CLASS2 }	/* 32Gb MLC(K9LBG08) DDP  */	
		  		};
	UINT32 nIdx;

	for( nIdx=0; nIdx<6; nIdx++)
	{
		if ( stMlc[nIdx].nDevID == nDID && stMlc[nIdx].nHidID == nHID )
		{
			return stMlc[nIdx].nClass;
		}
	}

	/* return (WMR_MLC_NO); */
	return (WMR_MLC_LSB_CLASS1);
#else
    // Every device use Class 2 paired page mapping.
	return (WMR_MLC_LSB_CLASS2);
#endif
}
#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丨九色丨蝌蚪富婆spa| 丝袜美腿亚洲色图| 国产二区国产一区在线观看| 日韩欧美成人一区二区| 日本美女一区二区| 欧美大片顶级少妇| 国产成人综合精品三级| 国产精品久久一卡二卡| 91在线精品一区二区| 亚洲精品久久久蜜桃| 欧美日韩精品免费| 激情综合五月天| 国产精品免费观看视频| 91亚洲午夜精品久久久久久| 亚洲成人第一页| 欧美成人三级在线| 成人动漫一区二区在线| 亚洲综合色丁香婷婷六月图片| 欧美日韩卡一卡二| 久草热8精品视频在线观看| 亚洲国产精品精华液2区45| 91亚洲男人天堂| 日本视频中文字幕一区二区三区| 精品av综合导航| 99精品桃花视频在线观看| 午夜精品福利久久久| 精品成a人在线观看| 91激情在线视频| 蜜桃av一区二区| 国产精品久久毛片a| 欧美日韩激情一区| 岛国av在线一区| 亚洲va天堂va国产va久| 欧美精品一区二| 色8久久人人97超碰香蕉987| 日韩精品高清不卡| 亚洲国产精品99久久久久久久久| 欧美午夜精品电影| 国内精品伊人久久久久av一坑| 亚洲欧洲成人精品av97| 日韩区在线观看| 日本韩国一区二区| 粉嫩13p一区二区三区| 日韩精品一级中文字幕精品视频免费观看 | 亚洲综合精品久久| 久久综合色婷婷| 欧美视频在线一区二区三区 | 蜜桃av一区二区三区电影| 狠狠网亚洲精品| 亚洲精品网站在线观看| 精品免费一区二区三区| 欧美亚洲精品一区| 国产91精品免费| 久久电影网电视剧免费观看| 一区二区高清在线| 国产免费观看久久| 日韩一区二区三区视频在线| 色综合一区二区三区| 国产成人自拍在线| 国精产品一区一区三区mba桃花| 亚洲国产精品欧美一二99| 国产精品青草久久| 久久久久久久网| 日韩女优毛片在线| 欧美一区日韩一区| 欧美群妇大交群的观看方式| 91成人看片片| 一本色道久久综合狠狠躁的推荐| 国产成人精品亚洲日本在线桃色 | 免费在线视频一区| 亚洲成人三级小说| 亚洲不卡av一区二区三区| 亚洲精品写真福利| 一区二区三区在线视频免费观看| 国产精品福利av| 国产精品网站在线| 国产欧美视频在线观看| www欧美成人18+| 久久蜜桃av一区精品变态类天堂 | 青青草国产成人99久久| 天天色 色综合| 亚洲不卡一区二区三区| 午夜av一区二区| 亚洲成人一二三| 视频在线观看一区二区三区| 天堂蜜桃91精品| 日韩avvvv在线播放| 蜜臀久久99精品久久久画质超高清 | 捆绑调教美女网站视频一区| 日本不卡视频在线观看| 美女国产一区二区| 国产在线一区二区| 国产91清纯白嫩初高中在线观看| 丁香五精品蜜臀久久久久99网站| 国产高清精品网站| 成人av在线影院| 在线免费一区三区| 欧美日韩亚洲综合在线 | 97精品国产97久久久久久久久久久久 | 国产精品伊人色| 国产成人精品网址| 97aⅴ精品视频一二三区| 在线观看www91| 91 com成人网| 久久天堂av综合合色蜜桃网 | 欧美国产综合一区二区| 自拍av一区二区三区| 亚洲一区二区三区激情| 久久精品国产秦先生| 欧美一二三区在线观看| 久久精品亚洲国产奇米99| 国产精品私人自拍| 亚洲成人av电影| 狠狠色丁香久久婷婷综| av一区二区三区| 欧美精品 国产精品| 久久久久国产精品麻豆ai换脸| 亚洲视频精选在线| 免费视频最近日韩| 99久久伊人网影院| 91精品国产综合久久精品app| 久久久久久一级片| 亚洲图片自拍偷拍| 国产精品18久久久久久vr| 在线一区二区观看| 久久综合av免费| 亚洲国产日韩一级| 丰满岳乱妇一区二区三区| 欧美日韩精品久久久| 国产精品欧美一区喷水| 免费人成黄页网站在线一区二区| 国产99精品视频| 欧美高清你懂得| 亚洲视频在线一区| 国产精品一区一区| 欧美一级久久久久久久大片| 中文字幕一区二区三区乱码在线| 美国毛片一区二区三区| 色婷婷久久久亚洲一区二区三区| 精品黑人一区二区三区久久 | 国产一二精品视频| 欧美日韩亚洲综合一区二区三区| 中文一区二区在线观看| 日本在线不卡视频一二三区| 一本色道**综合亚洲精品蜜桃冫| 精品国产91久久久久久久妲己 | 色妹子一区二区| 国产欧美一区二区精品性色 | 日韩一区二区在线看| 亚洲精品乱码久久久久久| 成人中文字幕电影| 26uuu成人网一区二区三区| 轻轻草成人在线| 欧美三级乱人伦电影| 亚洲视频免费观看| 成人激情视频网站| 国产女主播视频一区二区| 久久99久久99小草精品免视看| 欧美色综合网站| 一区二区三区在线播| 91女人视频在线观看| 国产精品毛片无遮挡高清| 国产麻豆91精品| 精品国产123| 激情文学综合丁香| 精品国产一二三区| 国产一区二区在线电影| 精品伦理精品一区| 狠狠色丁香九九婷婷综合五月| 欧美一区二区视频在线观看2022 | 欧美日韩国产色站一区二区三区| 亚洲理论在线观看| 91免费观看视频| 亚洲素人一区二区| 在线观看不卡一区| 亚洲成人久久影院| 7777精品伊人久久久大香线蕉| 亚洲永久精品大片| 欧美日本国产视频| 视频一区二区欧美| 日韩欧美亚洲国产另类| 麻豆成人av在线| 国产午夜一区二区三区| 丁香一区二区三区| 亚洲欧洲在线观看av| 91行情网站电视在线观看高清版| 玉足女爽爽91| 欧美精品乱码久久久久久按摩| 三级精品在线观看| 亚洲精品在线观看视频| 国产精品一区二区你懂的| 久久国产精品免费| 久久精品一区八戒影视| 色综合视频一区二区三区高清| 亚洲一区免费观看| 欧美一级夜夜爽| 国产成人午夜视频| 一区二区三区日韩在线观看| 欧美午夜精品电影| 国产一区二区毛片|