uffs_fs.h File Reference

uffs basic file operations More...

#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_Objectuffs_GetObject (void)
uffs_Objectuffs_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)


Detailed Description

uffs basic file operations

Author:
Ricky Zheng

Definition in file uffs_fs.h.


Define Documentation

#define _SEEK_CUR   0

Definition at line 106 of file uffs_fs.h.

#define _SEEK_END   2

Definition at line 108 of file uffs_fs.h.

#define _SEEK_SET   1

Definition at line 107 of file uffs_fs.h.

#define ENCODE_MBCS   1

Definition at line 18 of file uffs_fs.h.

#define ENCODE_UNICODE   2

Definition at line 19 of file uffs_fs.h.

#define UEACCES   1

Definition at line 89 of file uffs_fs.h.

#define UEBADF   9

Definition at line 100 of file uffs_fs.h.

#define UEEXIST   2

Definition at line 93 of file uffs_fs.h.

Referenced by uffs_TruncateObject().

#define UEINVAL   3

Definition at line 95 of file uffs_fs.h.

#define UEMFILE   4

Definition at line 96 of file uffs_fs.h.

#define UENOENT   5

Definition at line 98 of file uffs_fs.h.

#define UENOERR   0

Definition at line 88 of file uffs_fs.h.

#define UENOMEM   10

Definition at line 101 of file uffs_fs.h.

#define UETIME   6

Definition at line 99 of file uffs_fs.h.

#define UEUNKNOWN   11

Definition at line 102 of file uffs_fs.h.

#define UFFS_DEFAULT_ENCODE   ENCODE_MBCS

Definition at line 20 of file uffs_fs.h.

#define UO_APPEND   0x0008

Definition at line 76 of file uffs_fs.h.

Referenced by uffs_CloseObject(), and uffs_WriteObject().

#define UO_BINARY   0x0000

Definition at line 78 of file uffs_fs.h.

#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

Definition at line 84 of file uffs_fs.h.

Referenced by cmdMkdir(), and DoTest().

#define UO_EXCL   0x0400

Definition at line 82 of file uffs_fs.h.

#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

Definition at line 81 of file uffs_fs.h.

Referenced by cmdCp(), and uffs_CloseObject().

#define UO_WRONLY   0x0001

Definition at line 74 of file uffs_fs.h.

Referenced by uffs_CloseObject(), and uffs_ReadObject().

#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

Definition at line 110 of file uffs_fs.h.

Referenced by uffs_SeekObject().

#define USEEK_END   _SEEK_END

Definition at line 112 of file uffs_fs.h.

Referenced by uffs_SeekObject().

#define USEEK_SET   _SEEK_SET

Definition at line 111 of file uffs_fs.h.

Referenced by cmdTest1(), DoTest(), and uffs_SeekObject().


Typedef Documentation

typedef struct uffs_FindInfoSt uffs_FindInfo

typedef struct uffs_ObjectSt uffs_Object

Definition at line 67 of file uffs_fs.h.

typedef struct uffs_ObjectInfoSt uffs_ObjectInfo


Function Documentation

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 
)

Definition at line 128 of file uffs_fs.c.

References U_FAIL, U_SUCC, and UO_CREATE.

Referenced by cmdMkdir(), and cmdMkf().

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

Parameters:
[in] obj uffs object
Returns:
return 1 if file pointer is at the end of file, return -1 if error occur, else return 0.

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.

Referenced by cmdCat(), and cmdCp().

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

Parameters:
[in] obj uffs object
Returns:
return the file pointer position if the obj is valid, return -1 if obj is invalid.

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  ) 

Definition at line 60 of file uffs_fs.c.

References uBufGetBufByIndex().

int uffs_GetObjectIndex ( uffs_Object obj  ) 

Definition at line 55 of file uffs_fs.c.

References uBufGetIndex().

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

Parameters:
[in] obj uffs object
[out] data output data buffer
[in] len required length of data to be read from object->pos
Returns:
return bytes of data have been read

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

Parameters:
[in] obj uffs object
[in] offset offset from origin
[in] origin the origin position, one of:
Returns:
return the new file pointer position

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

Parameters:
[in] obj file obj
[in] data data pointer
[in] len length of data to be write
Returns:
bytes wrote to obj

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().


Generated on Sat Mar 17 15:45:45 2007 for uffs-doc by  doxygen 1.5.0