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

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

?? oslesswmroam.c

?? 6410BSP3
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*****************************************************************************/
/*                                                                           */
/* PROJECT : Rainbow	                                                     */
/* MODULE  : OS Adaptation Module                                            */
/* NAME    : OSLess OAM                                                      */
/* FILE    : WMROAM.c                                                        */
/* PURPOSE : This file contain the OS Adaptation Modules for OSless platform */
/*           such as BootLoader                                              */
/*                                                                           */
/*---------------------------------------------------------------------------*/
/*                                                                           */
/*          COPYRIGHT 2003-2005 SAMSUNG ELECTRONICS CO., LTD.                */
/*                          ALL RIGHTS RESERVED                              */
/*                                                                           */
/*   Permission is hereby granted to licenses of Samsung Electronics         */
/*   Co., Ltd. products to use or abstract this computer program only in     */
/*   accordance with the terms of the NAND FLASH MEMORY SOFTWARE LICENSE     */
/*   AGREEMENT 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                                                          */
/*                                                                           */
/*   18-AUG-2005 [Yangsup Lee]  : first writing                              */
/*                                                                           */
/*****************************************************************************/
#include <windows.h>
#include "WMRConfig.h"
#include "WMRTypes.h"
#include "OSLessWMROAM.h"

//#include <stdarg.h>
//#include <stdio.h>

//#include "S5L8700.h"

/*****************************************************************************/
/* Global variables definitions                                              */
/*****************************************************************************/

/*****************************************************************************/
/* Local #defines                                                            */
/*****************************************************************************/
#define		OSLESS_MALLOC_POOL_SIZE_BY_KB	50
#define		WMR_LOCAL_MEM_SIZE		((OSLESS_MALLOC_POOL_SIZE_BY_KB * 1024) / sizeof(UINT32))

/*****************************************************************************/
/* Local typedefs                                                            */
/*****************************************************************************/

/*****************************************************************************/
/* Local constant definitions                                                */
/*****************************************************************************/

/*****************************************************************************/
/* Static variables definitions                                              */
/*****************************************************************************/
static UINT32  aMemBuf[WMR_LOCAL_MEM_SIZE];
static UINT32  nMallocPtr = 0;

static	BYTE	memAddr[OSLESS_MALLOC_POOL_SIZE_BY_KB];
static	BOOL	firstMemalloc = TRUE;

typedef struct _MEMARRAY {
    DWORD startAddress;     // starting sector number
	DWORD size;   // number of sectors
} MEMARRAY, * PMEMARRAY;

static	MEMARRAY	memarray[OSLESS_MALLOC_POOL_SIZE_BY_KB];

#define USED	1
#define	FREE	0

/* for Blues LLD */
//UINT8 	aTempSBuf[512];
//UINT8 	aMakeSECCBuf[512];
//UINT8 	aTempEccBuf[12];
//BOOL32	aNeedSync[WMR_MAX_DEVICE * 2];

//UINT8 TestMBuf[2];
//UINT8 TestMBuf[2048];
//UINT8 TestSBuf[512];


// for TFS4
#if 0
UINT8 szBuff[512];

t_char sBuff[2];
t_uint8	usBuffer[2];
t_char      *pArg[2];
t_kfat_string       sTmp;
t_kfat_string           strUnicode;
t_kfat_string strChild, strChildShort, strRead;
t_dir_entry             stDE[2];
t_file_table_entry stParent, stChild;
#endif

#if 0
extern UINT8 aChecksumTable[];
#else
/*****************************************************************************/
/* Static variables definitions                                              */
/*****************************************************************************/
PRIVATE const UINT8 aChecksumTable[256]  =
   { 8, 7, 7, 6, 7, 6, 6, 5, 7, 6, 6, 5, 6, 5, 5, 4,
      7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3,
      7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3,
      6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2,
      7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3,
      6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2,
      6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2,
      5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1,
      7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3,
      6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2,
      6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2,
      5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1,
      6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2,
      5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1,
      5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1,
      4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0
    };

#endif

/*****************************************************************************/
/* Code Implementation                                                       */
/*****************************************************************************/
/*****************************************************************************/
/*                                                                           */
/* NAME                                                                      */
/*      WMR_GetChkSum                                                        */
/* DESCRIPTION                                                               */
/*      This function returns the sum of 0 count of pBuf.				     */
/* PARAMETERS                                                                */
/*      pBuf    [IN] 	the pointer of buffer	                             */
/*      nSize	[IN] 	the size of buffer		                             */
/* RETURN VALUES                                                             */
/*		the sum of 0 count													 */
/* NOTES                                                                     */
/*                                                                           */
/*****************************************************************************/
UINT16
WMR_GetChkSum(UINT8 *pBuf, UINT32 nSize)
{
	register UINT32 nIdx;
	register const UINT8 *pD8;
	register const UINT8 *pCheckSum;
	register UINT32 nSum = 0;

	pD8 = pBuf;

	pCheckSum = aChecksumTable;

	if(nSize < 512)
	{
		for (nIdx = 0; nIdx < nSize; nIdx++)
		{
			nSum += *(pCheckSum + *(pD8++));
		}
	}
	else
	{
		for (nIdx = 0; nIdx < nSize / 8; nIdx++)
		{
			nSum += *(pCheckSum + *(pD8++));
			nSum += *(pCheckSum + *(pD8++));
			nSum += *(pCheckSum + *(pD8++));
			nSum += *(pCheckSum + *(pD8++));
			nSum += *(pCheckSum + *(pD8++));
			nSum += *(pCheckSum + *(pD8++));
			nSum += *(pCheckSum + *(pD8++));
			nSum += *(pCheckSum + *(pD8++));
		}
	}

	return (UINT16)nSum;
}


/*****************************************************************************/
/*                                                                           */
/* NAME                                                                      */
/*      OAM_Malloc                                                           */
/* DESCRIPTION                                                               */
/*      This function allocates memory for Whimory                           */
/*                                                                           */
/* PARAMETERS                                                                */
/*      nSize       [IN]                                                     */
/*            Size to be allocated                                           */
/*                                                                           */
/* RETURN VALUES                                                             */
/*      Pointer of allocated memory                                          */
/*                                                                           */
/* NOTES                                                                     */
/*      This function is called by function that wants to use memory         */
/*                                                                           */
/*****************************************************************************/
VOID *
OAM_Malloc(UINT32 nSize)
{
#ifdef NO_MALLOC	// by dodan2 061216
	WMR_RTL_PRINT((TEXT("[FTL:ERR]  OAM_Malloc() : NO_MALLOC defined\r\n")));
	while(1);
#else
	UINT32  nAlignSize;
	UINT32	nAlignArrayStart;
	UINT32	nAlignArrayNumber;
	UINT32	i;
	UINT32	j;

//	RETAILMSG(1, (L"OAM_Malloc : nSize=0x%x \n", nSize));

	if ( firstMemalloc == TRUE )
	{
		for ( i = 0; i < OSLESS_MALLOC_POOL_SIZE_BY_KB; i++ )
		{
			memAddr[i] = FREE;
			memarray[i].startAddress = 0;
			memarray[i].size = 0;
		}
		firstMemalloc = FALSE;
	}

	nAlignArrayNumber = nSize/1024+(nSize%1024==0?0:1);
//	RETAILMSG(1, (L"OAM_Malloc : nAlignArrayNumber=%d \n", nAlignArrayNumber));
	nAlignSize = nAlignArrayNumber*1024;
//	RETAILMSG(1, (L"OAM_Malloc : nAlignSize=%d \n", nAlignSize));

	for ( i = 0; i < OSLESS_MALLOC_POOL_SIZE_BY_KB; i++ )
	{
//		RETAILMSG(1, (L"OAM_Malloc : i=%d, memAddr[%d]=0x%x \n", i, i, memAddr[i]));
		if ( memAddr[i] == USED ) continue;
		for (j = 0; j < nAlignArrayNumber; j++)
		{
//			RETAILMSG(1, (L"OAM_Malloc : i+j=%d, memAddr[%d]=0x%x \n", i+j, i+j, memAddr[i+j]));
			if ( memAddr[i+j] == FREE )
				continue;
			else
				break;
		}
//		RETAILMSG(1, (L"OAM_Malloc : j=%d, nAlignArrayNumber=%d \n", j, nAlignArrayNumber));
		if ( j == nAlignArrayNumber )	// found
		{
			nAlignArrayStart = i;
			nMallocPtr = i*1024/sizeof(UINT32);
			break;
		}
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲最大色网站| 精品国产三级a在线观看| 风间由美性色一区二区三区| 日韩 欧美一区二区三区| 午夜精品一区二区三区免费视频| 亚洲综合色婷婷| 亚洲午夜久久久久| 日韩国产成人精品| 男女性色大片免费观看一区二区 | 亚洲国产精品久久一线不卡| 亚洲黄色免费网站| 性欧美大战久久久久久久久| 天天综合日日夜夜精品| 日韩高清不卡在线| 国内外成人在线| av亚洲精华国产精华精| 色系网站成人免费| 欧美日韩精品一区二区三区 | 免费高清在线一区| 久久av资源网| www.色精品| 欧美日韩三级一区二区| 日韩视频在线你懂得| 久久精品一区二区三区四区| 国产精品灌醉下药二区| 亚洲成人激情综合网| 免费人成网站在线观看欧美高清| 国产盗摄精品一区二区三区在线| av中文一区二区三区| 欧美色男人天堂| 久久中文娱乐网| 亚洲国产综合91精品麻豆 | 亚洲欧美一区二区三区极速播放| 国产精品久久久久久久久免费相片| 亚洲天堂精品在线观看| 美日韩一级片在线观看| 99在线精品免费| 91精品国产日韩91久久久久久| 国产三级精品三级在线专区| 亚洲国产一区二区视频| 国产一区 二区 三区一级| 色综合久久99| 国产视频一区在线观看| 午夜av电影一区| 91啪亚洲精品| 久久亚洲精华国产精华液 | 麻豆91在线观看| 色综合天天做天天爱| 久久久久久久久久久电影| 五月激情六月综合| 91麻豆6部合集magnet| 精品乱人伦小说| 午夜国产不卡在线观看视频| 成人激情文学综合网| 欧美v日韩v国产v| 亚洲国产成人91porn| 99久久er热在这里只有精品15 | av一区二区不卡| 久久久影视传媒| 蜜桃久久精品一区二区| 欧美日韩国产免费| 亚洲丝袜自拍清纯另类| 高清国产一区二区| 日韩精品一区二区三区视频| 日本怡春院一区二区| 欧美亚洲国产bt| 亚洲乱码中文字幕| 99免费精品在线观看| 国产精品久久久久久久久久免费看| 捆绑变态av一区二区三区| 欧美日本韩国一区| 调教+趴+乳夹+国产+精品| 久久先锋影音av鲁色资源网| 蜜乳av一区二区三区| 欧美一区二区网站| 日本vs亚洲vs韩国一区三区| 欧美精品丝袜中出| 午夜久久久久久| 欧美一区二区三区日韩| 丝瓜av网站精品一区二区| 精品视频免费看| 亚洲成人精品一区二区| 91精品国产色综合久久不卡电影 | 日韩精品中文字幕一区二区三区| 亚洲国产一二三| 欧美剧在线免费观看网站| 偷拍一区二区三区| 91精品国产综合久久久久久| 日韩va欧美va亚洲va久久| 日韩女优视频免费观看| 国产一区视频网站| 中文字幕精品一区二区三区精品| 99久久久无码国产精品| 亚洲一区二区在线播放相泽| 欧美人与z0zoxxxx视频| 久久99热99| 中文字幕视频一区二区三区久| 在线观看成人小视频| 老司机精品视频一区二区三区| 久久蜜臀中文字幕| av一区二区三区四区| 亚洲成av人片一区二区| 欧美精品一区二区三区蜜桃视频| 成人精品高清在线| 9久草视频在线视频精品| 亚洲激情图片小说视频| 在线成人小视频| 国产sm精品调教视频网站| 亚洲一区二区三区四区的| 精品国产3级a| 欧美亚洲一区二区在线| 国产在线精品国自产拍免费| 国产精品久久久久久久久搜平片 | 欧美中文字幕亚洲一区二区va在线| 视频在线观看一区二区三区| 国产喂奶挤奶一区二区三区| 欧美性xxxxxxxx| 国产一区二区三区四区五区美女| 亚洲精品视频在线观看网站| 日韩精品一区二区三区老鸭窝| 97久久久精品综合88久久| 日本大胆欧美人术艺术动态| 中文字幕日本不卡| 欧美成人女星排行榜| 欧美视频在线不卡| 处破女av一区二区| 久久av资源站| 亚洲gay无套男同| 亚洲精品欧美在线| 国产精品日产欧美久久久久| 亚洲欧美韩国综合色| 日韩免费在线观看| 欧美年轻男男videosbes| 99热在这里有精品免费| 国产成人自拍网| 全国精品久久少妇| 无吗不卡中文字幕| 亚洲综合激情网| 亚洲人成精品久久久久久| 国产日产欧产精品推荐色| 日韩一区二区精品| 91精品国产综合久久婷婷香蕉 | 久久亚洲免费视频| 欧美电影免费观看高清完整版在线| 欧美中文字幕一二三区视频| 一本到不卡精品视频在线观看| 国产乱码精品一区二区三区av| 日韩电影在线观看一区| 亚洲午夜私人影院| 亚洲aaa精品| 丝袜美腿亚洲色图| 日韩制服丝袜av| 日本vs亚洲vs韩国一区三区 | 国产一区二区福利| 久久精品国产在热久久| 麻豆精品国产91久久久久久| 热久久免费视频| 韩国理伦片一区二区三区在线播放| 蜜臀久久久99精品久久久久久| 日本不卡免费在线视频| 日本在线不卡一区| 韩国女主播成人在线观看| 国产一区 二区| 成人app在线观看| 欧美亚洲一区二区在线观看| 欧美美女一区二区三区| 日韩欧美aaaaaa| 国产亚洲精品bt天堂精选| 国产精品久久久久久福利一牛影视| 中文字幕日韩精品一区| 亚洲最大成人综合| 日本不卡高清视频| 国产电影一区二区三区| 色综合久久久久网| 在线播放日韩导航| 久久久亚洲午夜电影| 亚洲欧洲精品一区二区三区不卡| 一区二区三区不卡视频| 麻豆精品久久精品色综合| 国产成人日日夜夜| 欧美色精品在线视频| 精品国产成人系列| 亚洲精品久久久蜜桃| 美女视频黄免费的久久| 成人免费视频播放| 欧美高清视频不卡网| 久久免费看少妇高潮| 伊人一区二区三区| 国产在线精品不卡| 欧美影视一区二区三区| 久久精品夜夜夜夜久久| 亚洲一本大道在线| 成人性生交大片免费看中文 | 国产精品一区在线观看你懂的| 91丨国产丨九色丨pron| 日韩小视频在线观看专区| 中文字幕一区二区三区不卡在线| 秋霞电影网一区二区| 色久优优欧美色久优优| 2021久久国产精品不只是精品|