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

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

?? uffs_tree.h

?? flash管理算法
?? H
字號:
/*
    Copyright (C) 2005-2008  Ricky Zheng <ricky_gz_zheng@yahoo.co.nz>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public
    License as published by the Free Software Foundation; either
    version 2 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Library General Public License for more details.

    You should have received a copy of the GNU Library General Public
    License along with this library; if not, write to the Free
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

*/
#ifndef _UFFS_TREE_H_
#define _UFFS_TREE_H_

#include "uffs/uffs_types.h"
#include "uffs/ubuffer.h"
#include "uffs/uffs_device.h"
#include "uffs/uffs_core.h"

#ifdef __cplusplus
extern "C"{
#endif


#define UFFS_TYPE_DIR		0
#define UFFS_TYPE_FILE		1
#define UFFS_TYPE_DATA		2
#define UFFS_TYPE_RESV		3
#define UFFS_TYPE_INVALID	0xFF


#define SERIAL_ROOT_DIR		0

struct blocklistSt {	/* 6 bytes */
	struct uffs_treeNodeSt * next;
	struct uffs_treeNodeSt * prev;
	u16 block;
};

struct dirhSt {		/* 8 bytes */
	u16 checkSum;	/* check sum of dir name */
	u16 block;
	u16 father;
	u16 serial;
};


struct filehSt {	/* 12 bytes */
	u16 block;
	u16 checkSum;	/* check sum of file name */
	u16 father;
	u16 serial;
	u32 len;		/* file length total */
};

struct fdataSt {	/* 10 bytes */
	u16 block;
	u16 father;
	u32 len;		/* file data length on this block */
	u16 serial;
};

//UFFS TreeNode (14 or 16 bytes)
typedef struct uffs_treeNodeSt {
	union {
		struct blocklistSt list;
		struct dirhSt dir;
		struct filehSt file;
		struct fdataSt data;
	} u;
	u16 hashNext;		
#ifdef TREE_NODE_USE_DOUBLE_LINK
	u16 hashPrev;			
#endif
} TreeNode;


//TODO: UFFS2 Tree structures
/*
struct fdataSt {
	u32 len;
};

struct filebSt {
	u16 bls;		//how many blocks this file contents ...
	u8 offs;		//the offset of this file header on FILE block
	u8 sum;			//short sum of file name
};

//Extra data structure for storing file length information
struct filehSt {
	u32 len;
};

//UFFS2 TreeNode (12 bytes)
typedef struct uffs_treeNodeSt {
	u16 nextIdx;
	u16 block;
	u16 father;
	u16 serial;
	union {
		struct filehSt h;
		struct filedSt file;
		struct data;
	} u;
} TreeNode;

*/


#define EMPTY_NODE 0xffff		//!< special index num of empty node.

#define ROOT_DIR_ID	0			//!< serial num of root dir


#define MAX_UFFS_SERIAL			0xfffe
#define PARENT_OF_ROOT			0xfffd
#define INVALID_UFFS_SERIAL		0xffff

#define DIR_NODE_HASH_MASK		0x1f
#define DIR_NODE_ENTRY_LEN		(DIR_NODE_HASH_MASK + 1)

#define FILE_NODE_HASH_MASK		0x3f
#define FILE_NODE_ENTRY_LEN		(FILE_NODE_HASH_MASK + 1)

#define DATA_NODE_HASH_MASK		0x1ff
#define DATA_NODE_ENTRY_LEN		(DATA_NODE_HASH_MASK + 1)
#define FROM_IDX(idx, dis)		((TreeNode *)uBufGetBufByIndex(idx, dis))
#define TO_IDX(p, dis)			((u16)uBufGetIndex((void *)p, dis))


#define GET_FILE_HASH(serial)			(serial & FILE_NODE_HASH_MASK)
#define GET_DIR_HASH(serial)			(serial & DIR_NODE_HASH_MASK)
#define GET_DATA_HASH(father, serial)	((father + serial) & DATA_NODE_HASH_MASK)


struct uffs_treeSt {
	TreeNode *erased;					//!< erased block list head
	TreeNode *erased_tail;				//!< erased block list tail
	int erasedCount;					//!< erased block counter
	TreeNode *bad;						//!< bad block list
	int badCount;						//!< bad block count
	u16 dirEntry[DIR_NODE_ENTRY_LEN];
	u16 fileEntry[FILE_NODE_ENTRY_LEN];
	u16 dataEntry[DATA_NODE_ENTRY_LEN];
	struct ubufm dis;
	u16 maxSerialNo;
};


URET uffs_InitTreeBuf(uffs_Device *dev);
URET uffs_ReleaseTreeBuf(uffs_Device *dev);
URET uffs_BuildTree(uffs_Device *dev);
u16 uffs_FindFreeFsnSerial(uffs_Device *dev);
TreeNode * uffs_FindFileNodeFromTree(uffs_Device *dev, u16 serial);
TreeNode * uffs_FindFileNodeFromTreeWithFather(uffs_Device *dev, u16 father);
TreeNode * uffs_FindDirNodeFromTree(uffs_Device *dev, u16 serial);
TreeNode * uffs_FindDirNodeFromTreeWithFather(uffs_Device *dev, u16 father);
TreeNode * uffs_FindFileNodeByName(uffs_Device *dev, const char *name, u32 len, u16 sum, u16 father);
TreeNode * uffs_FindDirNodeByName(uffs_Device *dev, const char *name, u32 len, u16 sum, u16 father);
TreeNode * uffs_FindDataNode(uffs_Device *dev, u16 father, u16 serial);


TreeNode * uffs_FindDirNodeByBlock(uffs_Device *dev, u16 block);
TreeNode * uffs_FindFileNodeByBlock(uffs_Device *dev, u16 block);
TreeNode * uffs_FindDataNodeByBlock(uffs_Device *dev, u16 block);
TreeNode * uffs_FindErasedNodeByBlock(uffs_Device *dev, u16 block);
TreeNode * uffs_FindBadNodeByBlock(uffs_Device *dev, u16 block);

#define SEARCH_REGION_DIR		1
#define SEARCH_REGION_FILE		2
#define SEARCH_REGION_DATA		4
#define SEARCH_REGION_BAD		8
#define SEARCH_REGION_ERASED	16
TreeNode * uffs_FindNodeByBlock(uffs_Device *dev, u16 block, int *region);



UBOOL uffs_CompareFileNameWithTreeNode(uffs_Device *dev, const char *name, u32 len, u16 sum, TreeNode *node, int type);

TreeNode * uffs_GetErased(uffs_Device *dev);

void uffs_InsertNodeToTree(uffs_Device *dev, u8 type, TreeNode *node);
void uffs_InsertToErasedListHead(uffs_Device *dev, TreeNode *node);
void uffs_InsertToErasedListTail(uffs_Device *dev, TreeNode *node);
void uffs_InsertToBadBlockList(uffs_Device *dev, TreeNode *node);

void uffs_BreakFromEntry(uffs_Device *dev, u8 type, TreeNode *node);

void uffs_SetTreeNodeBlock(u8 type, TreeNode *node, u16 block);






#ifdef __cplusplus
}
#endif



#endif


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品福利一区二区三区| 最新国产の精品合集bt伙计| 欧洲av在线精品| 色婷婷av一区二区三区大白胸| 国产成人av在线影院| 国产精品亚洲第一| 国产成人在线视频免费播放| 国产91在线看| 91浏览器入口在线观看| 欧美日韩在线播放三区| 在线不卡免费欧美| 久久综合狠狠综合| 国产精品亲子伦对白| 国产精品电影一区二区| 亚洲精品视频观看| 丝袜美腿成人在线| 国产经典欧美精品| 色综合久久88色综合天天6| 在线免费精品视频| 日韩免费电影一区| 久久久久久久久久久久久久久99 | 一区二区欧美精品| 日韩电影在线看| 国产麻豆欧美日韩一区| 成人的网站免费观看| 欧美在线观看你懂的| 欧美一区二区人人喊爽| 国产校园另类小说区| 一区二区三区四区视频精品免费 | 国产日本欧洲亚洲| 亚洲欧美另类久久久精品 | 亚洲综合在线视频| 紧缚奴在线一区二区三区| 成人午夜免费av| 欧美乱妇20p| 国产亚洲综合av| 一个色综合av| 国产麻豆视频精品| 欧美日韩国产在线观看| 国产欧美一二三区| 日日摸夜夜添夜夜添国产精品| 国产激情一区二区三区桃花岛亚洲| 91麻豆免费在线观看| 久久久噜噜噜久久人人看 | 欧美电视剧免费全集观看| 中文字幕 久热精品 视频在线| 午夜伦欧美伦电影理论片| 成人免费视频一区| 久久久精品免费免费| 日本sm残虐另类| 欧美色视频一区| 综合色天天鬼久久鬼色| 国产又黄又大久久| 91精品视频网| 亚洲一区二区在线观看视频| 成人av网站大全| 久久精品欧美日韩| 麻豆精品久久精品色综合| 欧美日韩一卡二卡三卡| 亚洲综合色自拍一区| fc2成人免费人成在线观看播放| 欧美成人精品二区三区99精品| 亚洲午夜激情网页| 欧美主播一区二区三区| 亚洲欧美偷拍三级| 92国产精品观看| 欧美精品一区二区在线观看| 日本成人在线电影网| 欧美日韩一区二区不卡| 婷婷亚洲久悠悠色悠在线播放| 91理论电影在线观看| 亚洲美腿欧美偷拍| 91蜜桃婷婷狠狠久久综合9色| 国产精品国产a级| 成人av动漫在线| 亚洲欧美电影院| 色综合中文字幕国产| 日本一区二区三级电影在线观看| 精品亚洲国产成人av制服丝袜 | 成人高清在线视频| 国产精品久线在线观看| 粉嫩av一区二区三区| 亚洲图片欧美激情| 欧美在线免费观看亚洲| 亚洲国产成人tv| 91精品免费在线| 韩国理伦片一区二区三区在线播放 | 欧美系列在线观看| 亚洲一区二区欧美| 欧美一级午夜免费电影| 精品一区二区三区在线视频| 久久免费精品国产久精品久久久久| 国产精品99久久不卡二区| 中文字幕一区二区三中文字幕| 91捆绑美女网站| 视频一区视频二区在线观看| 欧美成人aa大片| 成人免费观看视频| 亚洲成人免费在线观看| 久久综合久久综合亚洲| 成人高清av在线| 亚洲成人免费看| 欧美成人一区二区三区片免费| 激情综合网天天干| 亚洲乱码国产乱码精品精98午夜| 色哟哟一区二区在线观看| 日本不卡视频在线观看| 欧美国产成人在线| 欧美美女一区二区三区| 国产超碰在线一区| 免费观看在线色综合| 亚洲天堂网中文字| 欧美r级电影在线观看| 日本精品一区二区三区四区的功能| 日本大胆欧美人术艺术动态| 最新热久久免费视频| 精品国产一区二区三区久久影院| 北条麻妃国产九九精品视频| 看国产成人h片视频| 亚洲乱码国产乱码精品精可以看 | 欧美日韩一区三区| 国产精品1区2区| 日韩国产在线一| 亚洲欧美成aⅴ人在线观看| xnxx国产精品| 欧美一级淫片007| 欧美性一二三区| 99国产精品久久| 成人精品小蝌蚪| 久久91精品国产91久久小草| 亚洲国产日韩一级| 亚洲男人的天堂网| 欧美激情在线一区二区三区| 精品国产免费久久| 欧美一二三区在线| 欧美高清精品3d| 在线观看视频一区| 91麻豆免费视频| 色综合网站在线| 大桥未久av一区二区三区中文| 精品一区二区成人精品| 奇米四色…亚洲| 麻豆精品视频在线| 精品一区二区三区视频在线观看| 午夜久久久久久久久久一区二区| 亚洲精品伦理在线| 国产精品久久午夜| 中文字幕 久热精品 视频在线 | 蜜臀av性久久久久蜜臀aⅴ四虎| 一区二区三区在线观看视频| 综合久久久久久| 亚洲欧美一区二区三区久本道91| 国产精品日韩成人| 综合av第一页| 亚洲人成亚洲人成在线观看图片| 亚洲婷婷在线视频| 亚洲综合成人在线视频| 午夜婷婷国产麻豆精品| 日日摸夜夜添夜夜添国产精品 | 国产精品欧美久久久久一区二区 | 91黄色免费看| 欧美高清激情brazzers| 日韩欧美中文一区二区| 久久这里只有精品6| 欧美激情中文不卡| 一区二区三区在线高清| 亚洲成人资源网| 美女网站色91| 成人污视频在线观看| 91麻豆精品视频| 777久久久精品| 久久久久久久久99精品| 国产精品动漫网站| 午夜久久久久久| 国产精品一区三区| 91久久精品一区二区三区| 日韩一区二区三区av| 国产女人aaa级久久久级| 亚洲男人电影天堂| 精品一区二区三区免费播放| 成人综合激情网| 欧美日韩久久久久久| 国产网红主播福利一区二区| 成人免费在线视频观看| 视频一区二区不卡| 懂色av噜噜一区二区三区av| 在线中文字幕一区二区| 久久精品一区八戒影视| 亚洲国产精品一区二区尤物区| 久草中文综合在线| 在线观看免费一区| 国产亚洲精品中文字幕| 视频一区欧美精品| 成人免费av网站| 日韩精品专区在线影院观看| 亚洲视频狠狠干| 国产jizzjizz一区二区| 欧美一级xxx| 五月天亚洲婷婷| 91美女片黄在线观看|