#endif
-const char *yaffsfs_c_version="$Id: yaffsfs.c,v 1.23 2008-10-13 03:47:26 charles Exp $";
+const char *yaffsfs_c_version="$Id: yaffsfs.c,v 1.27 2009-10-08 01:57:59 charles Exp $";
// configurationList is the list of devices that are supported
static yaffsfs_DeviceConfiguration *yaffsfs_configurationList;
return handle;
}
-int yaffs_flush(int fd)
+int yaffs_Dofsync(int fd,int datasync)
{
yaffsfs_Handle *h = NULL;
int retVal = 0;
if(h && h->inUse)
{
// flush the file
- yaffs_FlushFile(h->obj,1);
+ yaffs_FlushFile(h->obj,1,datasync);
}
else
{
return retVal;
}
+int yaffs_fsync(int fd)
+{
+ return yaffs_Dofsync(fd,0);
+}
+
+int yaffs_flush(int fd)
+{
+ return yaffs_fsync(fd);
+}
+
+int yaffs_fdatasync(int fd)
+{
+ return yaffs_Dofsync(fd,1);
+}
int yaffs_close(int fd)
{
if(h && h->inUse)
{
// clean up
- yaffs_FlushFile(h->obj,1);
+ yaffs_FlushFile(h->obj,1,0);
h->obj->inUse--;
if(h->obj->inUse <= 0 && h->obj->unlinked)
{
- yaffs_DeleteFile(h->obj);
+ yaffs_DeleteObject(h->obj);
}
yaffsfs_PutHandle(fd);
retVal = 0;
}
obj->dirty = 1;
- result = yaffs_FlushFile(obj,0);
+ result = yaffs_FlushFile(obj,0,0);
retVal = 0;
}
else
static int yaffsfs_DoChMod(yaffs_Object *obj,mode_t mode)
{
- int result;
+ int result = -1;
if(obj)
{
{
obj->yst_mode = mode;
obj->dirty = 1;
- result = yaffs_FlushFile(obj,0);
+ result = yaffs_FlushFile(obj,0,0);
}
return result == YAFFS_OK ? 0 : -1;
yaffsfs_Lock();
parent = yaffsfs_FindDirectory(NULL,newpath,&name,0);
- obj = yaffs_MknodSymLink(parent,name,mode,0,0,oldpath);
- if(obj)
- {
- retVal = 0;
- }
- else
- {
- yaffsfs_SetError(-ENOSPC); // just assume no space for now
+ if(parent){
+ obj = yaffs_MknodSymLink(parent,name,mode,0,0,oldpath);
+ if(obj)
+ {
+ retVal = 0;
+ }
+ else
+ {
+ yaffsfs_SetError(-ENOSPC); // just assume no space for now
+ retVal = -1;
+ }
+ } else {
+ yaffsfs_SetError(-EINVAL);
retVal = -1;
}
return retVal;
}
-int yaffs_mknod(const YCHAR *pathname, mode_t mode, dev_t dev);
+int yaffs_mknod(const YCHAR *pathname, mode_t mode, dev_t dev)
+{
+ return -1;
+}
int yaffs_DumpDevStruct(const YCHAR *path)
{