⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uffs_buf.h

📁 一个NAND FLASH文件系统
💻 H
字号:
/**  * \file uffs_buf.h * \brief page buffers * \author Ricky Zheng */#ifndef UFFS_BUF_H#define UFFS_BUF_H#include "uffs/uffs_types.h"#include "uffs/uffs_device.h"#include "uffs/uffs_tree.h"#ifdef __cplusplusextern "C"{#endif	#define CLONE_BUF_MARK		0xffff#define UFFS_BUF_EMPTY		0#define UFFS_BUF_VALID		1#define UFFS_BUF_DIRTY		2/** uffs page buffer */struct uffs_BufSt{	struct uffs_BufSt *next;	//!< link to next buffer	struct uffs_BufSt *prev;	//!< link to previous buffer	struct uffs_BufSt *nextDirty;	struct uffs_BufSt *prevDirty;	u8 type;					//!< file, dir, or data	u16 father;					//!< father serial	u16 serial;					//!< serial 	u16 pageID;					//!< page id 	u16 mark;					//!< #UFFS_BUF_EMPTY, #UFFS_BUF_VALID, or #UFFS_BUF_DIRTY ?	u16 refCount;				//!< reference counter	u16 dataLen;				//!< length of data	u8 * data;					//!< data buffer	u8 * ecc;					//!< ecc buffer};URET uffs_BufInit(struct uffs_DeviceSt *dev, int maxBuf, int maxDirtyBuf);URET uffs_BufReleaseAll(struct uffs_DeviceSt *dev);uffs_Buf * uffs_BufGet(struct uffs_DeviceSt *dev, u16 father, u16 serial, u16 pageID);uffs_Buf *uffs_BufNew(struct uffs_DeviceSt *dev, u8 type, u16 father, u16 serial, u16 pageID);uffs_Buf *uffs_BufGetEx(struct uffs_DeviceSt *dev, u8 type, TreeNode *node, u16 pageID);uffs_Buf * uffs_BufFind(uffs_Device *dev, u16 father, u16 serial, u16 pageID);URET uffs_BufPut(uffs_Device *dev, uffs_Buf *buf);void uffs_BufIncRef(uffs_Buf *buf);void uffs_BufDecRef(uffs_Buf *buf);URET uffs_BufWrite(struct uffs_DeviceSt *dev, uffs_Buf *buf, void *data, u32 ofs, u32 len);URET uffs_BufRead(struct uffs_DeviceSt *dev, uffs_Buf *buf, void *data, u32 ofs, u32 len);void uffs_BufSetMark(uffs_Buf *buf, int mark);URET uffs_BufFlush(struct uffs_DeviceSt *dev);UBOOL uffs_BufIsAllFree(struct uffs_DeviceSt *dev);UBOOL uffs_BufIsAllEmpty(struct uffs_DeviceSt *dev);URET uffs_BufSetAllEmpty(struct uffs_DeviceSt *dev);uffs_Buf * uffs_BufClone(struct uffs_DeviceSt *dev, uffs_Buf *buf);void uffs_BufFreeClone(uffs_Device *dev, uffs_Buf *buf);URET uffs_LoadPhiDataToBuf(uffs_Device *dev, uffs_Buf *buf, u32 block, u32 page);URET uffs_LoadPhiDataToBufEccUnCare(uffs_Device *dev, uffs_Buf *buf, u32 block, u32 page);
#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -