- yaffsfs_Handle *h = NULL;
- yaffs_Object *obj = NULL;
- int pos = 0;
- int nWritten = -1;
- int writeThrough = 0;
-
- yaffsfs_Lock();
- h = yaffsfs_GetHandlePointer(fd);
- obj = yaffsfs_GetHandleObject(fd);
-
- if(!h || !obj)
- // bad handle
- yaffsfs_SetError(-EBADF);
- else if( h && obj && h->readOnly){
- // todo error
- }
- else if( h && obj){
- pos = offset;
-
- nWritten = yaffs_WriteDataToFile(obj,buf,pos,nbyte,writeThrough);
-
- if(nWritten < 0 || ((unsigned int)nWritten) < nbyte)
- yaffsfs_SetError(-ENOSPC);
-
- }
-
- yaffsfs_Unlock();
-
-
- return (nWritten >= 0) ? nWritten : -1;
-
+ return yaffsfs_do_write(fd, buf, nbyte, 1, offset);