#define YAFFSFS_RW_SIZE (1<<YAFFSFS_RW_SHIFT)
/* Some forward references */
- static yaffs_Object *yaffsfs_FindObject(yaffs_Object *relativeDirectory, const YCHAR *path, int symDepth, int getEquiv);
- static void yaffsfs_RemoveObjectCallback(yaffs_Object *obj);
-static yaffs_obj_t *yaffsfs_FindObject(yaffs_obj_t *relativeDirectory, const YCHAR *path, int symDepth);
++static yaffs_obj_t *yaffsfs_FindObject(yaffs_obj_t *relativeDirectory, const YCHAR *path, int symDepth, int getEquiv);
+ static void yaffsfs_RemoveObjectCallback(yaffs_obj_t *obj);
unsigned int yaffs_wr_attempts;
return NULL;
}
- static yaffs_Object *yaffsfs_FollowLink(yaffs_Object *obj,int symDepth)
+ static yaffs_obj_t *yaffsfs_FollowLink(yaffs_obj_t *obj,int symDepth)
{
- obj = yaffs_GetEquivalentObject(obj);
+ if(obj)
- while(obj && obj->variantType == YAFFS_OBJECT_TYPE_SYMLINK){
- YCHAR *alias = obj->variant.symLinkVariant.alias;
++ obj = yaffs_get_equivalent_obj(obj);
+
+ while(obj && obj->variant_type == YAFFS_OBJECT_TYPE_SYMLINK){
+ YCHAR *alias = obj->variant.symlink_variant.alias;
if(yaffsfs_IsPathDivider(*alias))
/* Starts with a /, need to scan from root up */
else if(yaffs_strcmp(str,_Y("..")) == 0)
dir = dir->parent;
else{
- dir = yaffs_FindObjectByName(dir,str);
+ dir = yaffs_find_by_name(dir,str);
- while(dir && dir->variant_type == YAFFS_OBJECT_TYPE_SYMLINK)
- dir = yaffsfs_FollowLink(dir,symDepth);
-
+ dir = yaffsfs_FollowLink(dir,symDepth);
-
- if(dir && dir->variantType != YAFFS_OBJECT_TYPE_DIRECTORY)
+ if(dir && dir->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY)
dir = NULL;
}
}
/*
* yaffsfs_FindObject turns a path for an existing object into the object
*/
- static yaffs_Object *yaffsfs_FindObject(yaffs_Object *relativeDirectory, const YCHAR *path,int symDepth,int getEquiv)
-static yaffs_obj_t *yaffsfs_FindObject(yaffs_obj_t *relativeDirectory, const YCHAR *path,int symDepth)
++static yaffs_obj_t *yaffsfs_FindObject(yaffs_obj_t *relativeDirectory, const YCHAR *path,int symDepth, int getEquiv)
{
- yaffs_Object *dir;
- yaffs_Object *obj;
+ yaffs_obj_t *dir;
++ yaffs_obj_t *obj;
YCHAR *name;
dir = yaffsfs_FindDirectory(relativeDirectory,path,&name,symDepth);
if(dir && *name)
- obj = yaffs_FindObjectByName(dir,name);
- return yaffs_find_by_name(dir,name);
++ obj = yaffs_find_by_name(dir,name);
+ else
+ obj = dir;
+
- return dir;
+ if(getEquiv)
- obj = yaffs_GetEquivalentObject(obj);
++ obj = yaffs_get_equivalent_obj(obj);
+
+ return obj;
}
int yaffs_open_sharing(const YCHAR *path, int oflag, int mode, int sharing)
{
- yaffs_Object *obj = NULL;
- yaffs_Object *dir = NULL;
+ yaffs_obj_t *obj = NULL;
+ yaffs_obj_t *dir = NULL;
YCHAR *name;
int handle = -1;
- yaffsfs_Handle *h = NULL;
+ yaffsfs_Handle *yh = NULL;
int openDenied = 0;
int symDepth = 0;
int errorReported = 0;
if(handle >= 0){
- h = yaffsfs_GetHandlePointer(handle);
+ yh = yaffsfs_GetHandlePointer(handle);
/* try to find the exisiting object */
- obj = yaffsfs_FindObject(NULL,path,0);
-
- if(obj && obj->variant_type == YAFFS_OBJECT_TYPE_SYMLINK)
- obj = yaffsfs_FollowLink(obj,symDepth++);
+ obj = yaffsfs_FindObject(NULL,path,0,1);
- if(obj)
- obj = yaffs_get_equivalent_obj(obj);
+ obj = yaffsfs_FollowLink(obj,symDepth++);
if(obj &&
- obj->variantType != YAFFS_OBJECT_TYPE_FILE &&
- obj->variantType != YAFFS_OBJECT_TYPE_DIRECTORY)
+ obj->variant_type != YAFFS_OBJECT_TYPE_FILE &&
+ obj->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY)
obj = NULL;
if(obj){
*/
}
- h->inodeId = inodeId;
- h->reading = (oflag & (O_RDONLY | O_RDWR)) ? 1 : 0;
- h->writing = (oflag & (O_WRONLY | O_RDWR)) ? 1 : 0;
- h->append = (oflag & O_APPEND) ? 1 : 0;
- h->position = 0;
- h->shareRead = shareRead;
- h->shareWrite = shareWrite;
+ yh->inodeId = inodeId;
+ yh->reading = (oflag & (O_RDONLY | O_RDWR)) ? 1 : 0;
+ yh->writing = (oflag & (O_WRONLY | O_RDWR)) ? 1 : 0;
+ yh->append = (oflag & O_APPEND) ? 1 : 0;
+ yh->position = 0;
+ yh->shareRead = shareRead;
+ yh->shareWrite = shareWrite;
/* Hook inode to object */
- obj->myInode = (void*) &yaffsfs_inode[inodeId];
+ obj->my_inode = (void*) &yaffsfs_inode[inodeId];
- if((oflag & O_TRUNC) && h->writing)
+ if((oflag & O_TRUNC) && yh->writing)
- yaffs_ResizeFile(obj,0);
+ yaffs_resize_file(obj,0);
} else {
yaffsfs_PutHandle(handle);
if(!errorReported) {
{
int retVal = -1;
- obj = yaffs_GetEquivalentObject(obj);
- if(obj)
- obj = yaffs_get_equivalent_obj(obj);
++ obj = yaffs_get_equivalent_obj(obj);
if(obj && buf){
- buf->st_dev = (int)obj->myDev->osContext;
- buf->st_ino = obj->objectId;
+ buf->st_dev = (int)obj->my_dev->os_context;
+ buf->st_ino = obj->obj_id;
buf->st_mode = obj->yst_mode & ~S_IFMT; /* clear out file type bits */
- if(obj->variantType == YAFFS_OBJECT_TYPE_DIRECTORY)
+ if(obj->variant_type == YAFFS_OBJECT_TYPE_DIRECTORY)
buf->st_mode |= S_IFDIR;
- else if(obj->variantType == YAFFS_OBJECT_TYPE_SYMLINK)
+ else if(obj->variant_type == YAFFS_OBJECT_TYPE_SYMLINK)
buf->st_mode |= S_IFLNK;
- else if(obj->variantType == YAFFS_OBJECT_TYPE_FILE)
+ else if(obj->variant_type == YAFFS_OBJECT_TYPE_FILE)
buf->st_mode |= S_IFREG;
- buf->st_nlink = yaffs_GetObjectLinkCount(obj);
+ buf->st_nlink = yaffs_get_obj_link_count(obj);
buf->st_uid = 0;
buf->st_gid = 0;;
buf->st_rdev = obj->yst_rdev;
yaffsfs_Lock();
- obj = yaffsfs_FindObject(NULL,dirname,0);
+ obj = yaffsfs_FindObject(NULL,dirname,0,1);
- if(obj && obj->variantType == YAFFS_OBJECT_TYPE_DIRECTORY){
+ if(obj && obj->variant_type == YAFFS_OBJECT_TYPE_DIRECTORY){
dsc = YMALLOC(sizeof(yaffsfs_DirectorySearchContext));
dir = (yaffs_DIR *)dsc;
*/
int yaffs_n_handles(const YCHAR *path)
{
- yaffs_Object *obj;
+ yaffs_obj_t *obj;
- obj = yaffsfs_FindObject(NULL,path,0);
- if(obj)
- obj = yaffs_get_equivalent_obj(obj);
+ obj = yaffsfs_FindObject(NULL,path,0,1);
return yaffsfs_CountHandles(obj);
}