#include "uffs/uffs_types.h"
#include "uffs/uffs_public.h"
Go to the source code of this file.
Data Structures | |
struct | uffs_FindInfoSt |
struct | uffs_ObjectInfoSt |
struct | uffs_ObjectSt |
Defines | |
#define | _SEEK_CUR 0 |
#define | _SEEK_END 2 |
#define | _SEEK_SET 1 |
#define | ENCODE_MBCS 1 |
#define | ENCODE_UNICODE 2 |
#define | UEACCES 1 |
#define | UEBADF 9 |
#define | UEEXIST 2 |
#define | UEINVAL 3 |
#define | UEMFILE 4 |
#define | UENOENT 5 |
#define | UENOERR 0 |
#define | UENOMEM 10 |
#define | UETIME 6 |
#define | UEUNKNOWN 11 |
#define | UFFS_DEFAULT_ENCODE ENCODE_MBCS |
#define | UO_APPEND 0x0008 |
#define | UO_BINARY 0x0000 |
#define | UO_CREATE 0x0100 |
#define | UO_DIR 0x1000 |
#define | UO_EXCL 0x0400 |
#define | UO_RDONLY 0x0000 |
#define | UO_RDWR 0x0002 |
#define | UO_TRUNC 0x0200 |
#define | UO_WRONLY 0x0001 |
#define | US_IREAD 0x0000400 |
#define | US_IWRITE 0x0000200 |
#define | USEEK_CUR _SEEK_CUR |
#define | USEEK_END _SEEK_END |
#define | USEEK_SET _SEEK_SET |
Typedefs | |
typedef uffs_FindInfoSt | uffs_FindInfo |
typedef uffs_ObjectSt | uffs_Object |
typedef uffs_ObjectInfoSt | uffs_ObjectInfo |
Functions | |
URET | uffs_CloseFindObject (uffs_FindInfo *find_handle) |
URET | uffs_CloseObject (uffs_Object *obj) |
URET | uffs_CreateObject (uffs_Object *obj, const char *fullname, int oflag, int pmode) |
URET | uffs_DeleteObject (const char *name) |
int | uffs_EndOfFile (uffs_Object *obj) |
URET | uffs_FindFirstObject (uffs_ObjectInfo *info, uffs_FindInfo *find_handle) |
URET | uffs_FindNextObject (uffs_ObjectInfo *info, uffs_FindInfo *find_handle) |
int | uffs_GetCurOffset (uffs_Object *obj) |
uffs_Object * | uffs_GetObject (void) |
uffs_Object * | uffs_GetObjectByIndex (int idx) |
int | uffs_GetObjectIndex (uffs_Object *obj) |
URET | uffs_GetObjectInfo (uffs_Object *obj, uffs_ObjectInfo *info) |
URET | uffs_InitObjectBuf (void) |
URET | uffs_OpenFindObject (uffs_FindInfo *find_handle, const char *dir) |
URET | uffs_OpenObject (uffs_Object *obj, const char *fullname, int oflag, int pmode) |
void | uffs_PutObject (uffs_Object *obj) |
int | uffs_ReadObject (uffs_Object *obj, void *data, int len) |
URET | uffs_RenameObject (const char *old_name, const char *new_name) |
long | uffs_SeekObject (uffs_Object *obj, long offset, int origin) |
URET | uffs_TruncateObject (uffs_Object *obj, u32 remain) |
int | uffs_WriteObject (uffs_Object *obj, const void *data, int len) |
Definition in file uffs_fs.h.
#define UEEXIST 2 |
#define UO_APPEND 0x0008 |
#define UO_CREATE 0x0100 |
Definition at line 80 of file uffs_fs.h.
Referenced by cmdCp(), cmdMkdir(), cmdMkf(), cmdTest1(), DoTest(), uffs_CloseObject(), and uffs_CreateObject().
#define UO_DIR 0x1000 |
#define UO_RDONLY 0x0000 |
Definition at line 73 of file uffs_fs.h.
Referenced by cmdCat(), cmdCp(), uffs_OpenFindObject(), uffs_RenameObject(), and uffs_WriteObject().
#define UO_RDWR 0x0002 |
Definition at line 75 of file uffs_fs.h.
Referenced by cmdCp(), cmdMkdir(), cmdMkf(), cmdTest1(), DoTest(), uffs_CloseObject(), uffs_DeleteObject(), and uffs_RenameObject().
#define UO_TRUNC 0x0200 |
#define UO_WRONLY 0x0001 |
#define US_IREAD 0x0000400 |
Definition at line 71 of file uffs_fs.h.
Referenced by cmdCat(), cmdCp(), cmdMkdir(), cmdMkf(), cmdTest1(), DoTest(), uffs_DeleteObject(), uffs_OpenFindObject(), and uffs_RenameObject().
#define US_IWRITE 0x0000200 |
Definition at line 70 of file uffs_fs.h.
Referenced by cmdCp(), cmdMkdir(), cmdMkf(), cmdTest1(), DoTest(), uffs_DeleteObject(), uffs_OpenFindObject(), and uffs_RenameObject().
#define USEEK_CUR _SEEK_CUR |
#define USEEK_END _SEEK_END |
#define USEEK_SET _SEEK_SET |
Definition at line 111 of file uffs_fs.h.
Referenced by cmdTest1(), DoTest(), and uffs_SeekObject().
typedef struct uffs_FindInfoSt uffs_FindInfo |
typedef struct uffs_ObjectSt uffs_Object |
typedef struct uffs_ObjectInfoSt uffs_ObjectInfo |
URET uffs_CloseFindObject | ( | uffs_FindInfo * | find_handle | ) |
Definition at line 1708 of file uffs_fs.c.
References uffs_FindInfoSt::dev, uffs_FindInfoSt::hash, NULL, uffs_FindInfoSt::obj, U_FAIL, U_SUCC, uffs_PutObject(), and uffs_FindInfoSt::work.
Referenced by cmdLs().
URET uffs_CloseObject | ( | uffs_Object * | obj | ) |
Definition at line 567 of file uffs_fs.c.
References uffs_ObjectSt::dev, uffs_fileInfoSt::lastModify, uffs_ObjectSt::node, NULL, uffs_ObjectSt::oflag, uffs_ObjectSt::openSucc, PFX, uffs_ObjectSt::type, U_FAIL, U_SUCC, U_TRUE, uffs_BufFlush(), uffs_BufGetEx(), uffs_BufPut(), uffs_BufRead(), uffs_BufWrite(), UFFS_ERR_SERIOUS, uffs_GetCurDateTime(), uffs_Perror(), UFFS_TYPE_DIR, UFFS_TYPE_FILE, UO_APPEND, UO_CREATE, UO_RDWR, UO_TRUNC, and UO_WRONLY.
Referenced by cmdCat(), cmdCp(), cmdMkdir(), cmdMkf(), cmdTest1(), DoTest(), and uffs_RenameObject().
URET uffs_CreateObject | ( | uffs_Object * | obj, | |
const char * | fullname, | |||
int | oflag, | |||
int | pmode | |||
) |
URET uffs_DeleteObject | ( | const char * | name | ) |
delete uffs object
< make this buffer expired. Dangerous !? TODO: lock buffer ?
< ok, the object is deleted now.
Definition at line 1298 of file uffs_fs.c.
References blocklistSt::block, uffs_ObjectSt::dev, uffs_ObjectSt::father, GET_BLOCK_FROM_NODE, HAVE_BADBLOCK, uffs_treeNodeSt::list, uffs_BufSt::mark, uffs_ObjectSt::node, NULL, PFX, uffs_BufSt::refCount, uffs_ObjectSt::serial, uffs_ObjectSt::type, uffs_treeNodeSt::u, U_FAIL, U_SUCC, uffs_BreakFromEntry(), UFFS_BUF_EMPTY, uffs_BufFind(), uffs_BufFlush(), UFFS_ERR_NORMAL, uffs_FindDirNodeFromTreeWithFather(), uffs_FindFileNodeFromTreeWithFather(), uffs_GetObject(), uffs_InsertToErasedListTail(), uffs_OpenObject(), uffs_Perror(), uffs_RecoverBadBlock(), uffs_TruncateObject(), UFFS_TYPE_DIR, UO_RDWR, US_IREAD, and US_IWRITE.
Referenced by cmdRm().
int uffs_EndOfFile | ( | uffs_Object * | obj | ) |
check whether the file pointer is at the end of file
[in] | obj | uffs object |
Definition at line 1035 of file uffs_fs.c.
References uffs_ObjectSt::dev, uffs_treeNodeSt::file, filehSt::len, uffs_ObjectSt::node, uffs_ObjectSt::openSucc, uffs_ObjectSt::pos, uffs_ObjectSt::type, uffs_treeNodeSt::u, U_TRUE, and UFFS_TYPE_FILE.
URET uffs_FindFirstObject | ( | uffs_ObjectInfo * | info, | |
uffs_FindInfo * | find_handle | |||
) |
Definition at line 1564 of file uffs_fs.c.
References uffs_FindInfoSt::dev, uffs_treeNodeSt::dir, DIR_NODE_ENTRY_LEN, uffs_treeSt::dirEntry, uffs_treeSt::dis, EMPTY_NODE, dirhSt::father, uffs_FindInfoSt::father, filehSt::father, uffs_treeNodeSt::file, FILE_NODE_ENTRY_LEN, uffs_treeSt::fileEntry, FROM_IDX, uffs_FindInfoSt::hash, uffs_treeNodeSt::hashNext, uffs_FindInfoSt::step, uffs_DeviceSt::tree, uffs_treeNodeSt::u, U_FAIL, U_SUCC, uffs_DeviceLock(), uffs_DeviceUnLock(), UFFS_TYPE_DIR, UFFS_TYPE_FILE, and uffs_FindInfoSt::work.
Referenced by cmdLs().
URET uffs_FindNextObject | ( | uffs_ObjectInfo * | info, | |
uffs_FindInfo * | find_handle | |||
) |
Definition at line 1622 of file uffs_fs.c.
References uffs_FindInfoSt::dev, uffs_treeNodeSt::dir, DIR_NODE_ENTRY_LEN, uffs_treeSt::dirEntry, uffs_treeSt::dis, EMPTY_NODE, dirhSt::father, uffs_FindInfoSt::father, FROM_IDX, uffs_FindInfoSt::hash, uffs_treeNodeSt::hashNext, NULL, uffs_FindInfoSt::step, uffs_DeviceSt::tree, uffs_treeNodeSt::u, U_FAIL, U_SUCC, uffs_DeviceLock(), uffs_DeviceUnLock(), UFFS_TYPE_DIR, and uffs_FindInfoSt::work.
Referenced by cmdLs().
int uffs_GetCurOffset | ( | uffs_Object * | obj | ) |
return current file pointer
[in] | obj | uffs object |
Definition at line 1021 of file uffs_fs.c.
References uffs_ObjectSt::dev, uffs_ObjectSt::openSucc, uffs_ObjectSt::pos, and U_TRUE.
uffs_Object* uffs_GetObject | ( | void | ) |
Definition at line 39 of file uffs_fs.c.
References U_FALSE, and uBufGet().
Referenced by cmdCat(), cmdCp(), cmdMkdir(), cmdMkf(), cmdTest1(), DoTest(), uffs_DeleteObject(), uffs_OpenFindObject(), and uffs_RenameObject().
uffs_Object* uffs_GetObjectByIndex | ( | int | idx | ) |
int uffs_GetObjectIndex | ( | uffs_Object * | obj | ) |
URET uffs_GetObjectInfo | ( | uffs_Object * | obj, | |
uffs_ObjectInfo * | info | |||
) |
Definition at line 1502 of file uffs_fs.c.
References uffs_ObjectSt::dev, uffs_ObjectSt::node, uffs_ObjectSt::type, and U_FAIL.
URET uffs_InitObjectBuf | ( | void | ) |
Definition at line 33 of file uffs_fs.c.
References U_FAIL, U_SUCC, and uBufInit().
Referenced by main(), and uffs_initMountTable().
URET uffs_OpenFindObject | ( | uffs_FindInfo * | find_handle, | |
const char * | dir | |||
) |
Definition at line 1518 of file uffs_fs.c.
References uffs_FindInfoSt::dev, uffs_ObjectSt::dev, uffs_FindInfoSt::father, uffs_FindInfoSt::hash, uffs_ObjectSt::nameLen, NULL, uffs_FindInfoSt::obj, PFX, ROOT_DIR_ID, uffs_ObjectSt::serial, uffs_FindInfoSt::step, U_FAIL, U_SUCC, UFFS_ERR_NOISY, UFFS_ERR_SERIOUS, uffs_GetObject(), uffs_Perror(), uffs_PutObject(), UO_RDONLY, US_IREAD, US_IWRITE, and uffs_FindInfoSt::work.
Referenced by cmdLs().
URET uffs_OpenObject | ( | uffs_Object * | obj, | |
const char * | fullname, | |||
int | oflag, | |||
int | pmode | |||
) |
Definition at line 536 of file uffs_fs.c.
References U_FAIL, and U_SUCC.
Referenced by cmdCat(), cmdCp(), cmdTest1(), DoTest(), uffs_DeleteObject(), and uffs_RenameObject().
void uffs_PutObject | ( | uffs_Object * | obj | ) |
Definition at line 50 of file uffs_fs.c.
References uBufPut().
Referenced by cmdCat(), cmdCp(), cmdMkdir(), cmdMkf(), cmdTest1(), DoTest(), uffs_CloseFindObject(), uffs_OpenFindObject(), and uffs_RenameObject().
int uffs_ReadObject | ( | uffs_Object * | obj, | |
void * | data, | |||
int | len | |||
) |
read data from obj
[in] | obj | uffs object |
[out] | data | output data buffer |
[in] | len | required length of data to be read from object->pos |
fdn == 0: this means that the reading range is start from the first block, since the page 0 is for file attr, so we move to the next page ID.
Definition at line 875 of file uffs_fs.c.
References uffs_DeviceSt::com, uffs_BufSt::dataLen, uffs_ObjectSt::dev, uffs_treeNodeSt::file, HAVE_BADBLOCK, filehSt::len, uffs_ObjectSt::node, NULL, uffs_ObjectSt::oflag, uffs_ObjectSt::openSucc, PFX, uffs_commInfoSt::pgDataSize, uffs_ObjectSt::pos, filehSt::serial, uffs_ObjectSt::type, uffs_treeNodeSt::u, U_FALSE, uffs_BufGetEx(), uffs_BufPut(), uffs_BufRead(), UFFS_ERR_NOISY, UFFS_ERR_SERIOUS, uffs_FindDataNode(), uffs_Perror(), uffs_RecoverBadBlock(), UFFS_TYPE_DATA, UFFS_TYPE_DIR, UFFS_TYPE_FILE, and UO_WRONLY.
Referenced by cmdCat(), cmdCp(), cmdTest1(), and DoTest().
URET uffs_RenameObject | ( | const char * | old_name, | |
const char * | new_name | |||
) |
Definition at line 1359 of file uffs_fs.c.
References dirhSt::checkSum, filehSt::checkSum, uffs_BufSt::data, uffs_ObjectSt::dev, uffs_treeNodeSt::dir, dirhSt::father, filehSt::father, uffs_treeNodeSt::file, uffs_fileInfoSt::lastModify, MAX_PATH_LENGTH, uffs_fileInfoSt::name, uffs_fileInfoSt::name_len, uffs_ObjectSt::node, NULL, PFX, ROOT_DIR_ID, uffs_ObjectSt::serial, uffs_ObjectSt::sum, uffs_ObjectSt::type, uffs_treeNodeSt::u, U_FAIL, U_SUCC, uffs_BufFlush(), uffs_BufGetEx(), uffs_BufPut(), uffs_BufWrite(), uffs_CloseObject(), UFFS_ERR_NOISY, UFFS_ERR_SERIOUS, uffs_GetCurDateTime(), uffs_GetObject(), uffs_MakeSum16(), uffs_OpenObject(), uffs_Perror(), uffs_PutObject(), UFFS_TYPE_DIR, UO_RDONLY, UO_RDWR, US_IREAD, and US_IWRITE.
Referenced by cmdRen().
long uffs_SeekObject | ( | uffs_Object * | obj, | |
long | offset, | |||
int | origin | |||
) |
move the file pointer
[in] | obj | uffs object |
[in] | offset | offset from origin |
[in] | origin | the origin position, one of: |
Definition at line 972 of file uffs_fs.c.
References uffs_treeNodeSt::file, filehSt::len, uffs_ObjectSt::node, PFX, uffs_ObjectSt::pos, uffs_ObjectSt::type, uffs_treeNodeSt::u, UFFS_ERR_NOISY, uffs_Perror(), UFFS_TYPE_DIR, USEEK_CUR, USEEK_END, and USEEK_SET.
Referenced by cmdTest1(), and DoTest().
URET uffs_TruncateObject | ( | uffs_Object * | obj, | |
u32 | remain | |||
) |
Definition at line 1216 of file uffs_fs.c.
References uffs_DeviceSt::attr, fdataSt::block, blocklistSt::block, uffs_blockInfoSt::blockNum, uffs_treeNodeSt::data, uffs_ObjectSt::dev, uffs_ObjectSt::err, uffs_treeNodeSt::file, HAVE_BADBLOCK, filehSt::len, uffs_treeNodeSt::list, uffs_ObjectSt::node, NULL, uffs_ObjectSt::openSucc, uffs_storageAttrSt::pages_per_block, PFX, filehSt::serial, uffs_ObjectSt::type, uffs_treeNodeSt::u, U_FAIL, U_FALSE, U_SUCC, UEEXIST, UFFS_ALL_PAGES, uffs_BreakFromEntry(), UFFS_BUF_EMPTY, uffs_BufFind(), uffs_BufFlush(), uffs_BufSetMark(), UFFS_ERR_SERIOUS, uffs_ExpireBlockInfo(), uffs_FindDataNode(), uffs_GetBlockInfo(), uffs_InsertToErasedListTail(), uffs_Perror(), uffs_PutBlockInfo(), uffs_RecoverBadBlock(), UFFS_TYPE_DATA, and UFFS_TYPE_DIR.
Referenced by uffs_DeleteObject().
int uffs_WriteObject | ( | uffs_Object * | obj, | |
const void * | data, | |||
int | len | |||
) |
write data to obj, from obj->pos
[in] | obj | file obj |
[in] | data | data pointer |
[in] | len | length of data to be write |
Definition at line 788 of file uffs_fs.c.
References uffs_ObjectSt::dev, uffs_treeSt::erasedCount, uffs_treeNodeSt::file, HAVE_BADBLOCK, filehSt::len, MINIMUN_ERASED_BLOCK, uffs_ObjectSt::node, NULL, uffs_ObjectSt::oflag, uffs_ObjectSt::openSucc, PFX, uffs_ObjectSt::pos, filehSt::serial, uffs_DeviceSt::tree, uffs_ObjectSt::type, uffs_treeNodeSt::u, U_FALSE, uffs_BufFlush(), UFFS_ERR_NOISY, UFFS_ERR_SERIOUS, uffs_FindDataNode(), uffs_Perror(), uffs_RecoverBadBlock(), UFFS_TYPE_DIR, UO_APPEND, and UO_RDONLY.
Referenced by cmdCp(), cmdTest1(), and DoTest().