Revision: 3470 Author: eliot Date: 2015-10-04 09:50:28 -0700 (Sun, 04 Oct 2015) Log Message: ----------- Integrate Monty's support for the fsync primitive.
Modified Paths: -------------- trunk/platforms/Cross/plugins/FilePlugin/FilePlugin.h trunk/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c
Property Changed: ---------------- trunk/platforms/Cross/plugins/sqPluginsSCCSVersion.h
Modified: trunk/platforms/Cross/plugins/FilePlugin/FilePlugin.h =================================================================== --- trunk/platforms/Cross/plugins/FilePlugin/FilePlugin.h 2015-10-02 19:29:46 UTC (rev 3469) +++ trunk/platforms/Cross/plugins/FilePlugin/FilePlugin.h 2015-10-04 16:50:28 UTC (rev 3470) @@ -52,6 +52,7 @@ sqInt sqFileValid(SQFile *f); size_t sqFileWriteFromAt(SQFile *f, size_t count, char* byteArrayIndex, size_t startIndex); sqInt sqFileFlush(SQFile *f); +sqInt sqFileSync(SQFile *f); sqInt sqFileTruncate(SQFile *f,squeakFileOffsetType offset); sqInt sqFileThisSession(void); sqInt sqFileStdioHandlesInto(SQFile files[3]); @@ -61,10 +62,25 @@ sqInt dir_Create(char *pathString, sqInt pathStringLength); sqInt dir_Delete(char *pathString, sqInt pathStringLength); sqInt dir_Delimitor(void); +#if PharoVM sqInt dir_Lookup(char *pathString, sqInt pathStringLength, sqInt index, /* outputs: */ char *name, sqInt *nameLength, sqInt *creationDate, sqInt *modificationDate, + sqInt *isDirectory, squeakFileOffsetType *sizeIfFile, sqInt *posixPermissions, sqInt *isSymlink); +sqInt dir_EntryLookup(char *pathString, sqInt pathStringLength, char* nameString, sqInt nameStringLength, + /* outputs: */ + char *name, sqInt *nameLength, sqInt *creationDate, sqInt *modificationDate, + sqInt *isDirectory, squeakFileOffsetType *sizeIfFile, sqInt *posixPermissions, sqInt *isSymlink); +#else +sqInt dir_Lookup(char *pathString, sqInt pathStringLength, sqInt index, + /* outputs: */ + char *name, sqInt *nameLength, sqInt *creationDate, sqInt *modificationDate, sqInt *isDirectory, squeakFileOffsetType *sizeIfFile); +sqInt dir_EntryLookup(char *pathString, sqInt pathStringLength, char* nameString, sqInt nameStringLength, + /* outputs: */ + char *name, sqInt *nameLength, sqInt *creationDate, sqInt *modificationDate, + sqInt *isDirectory, squeakFileOffsetType *sizeIfFile); +#endif sqInt dir_PathToWorkingDir(char *pathName, sqInt pathNameMax); sqInt dir_SetMacFileTypeAndCreator(char *filename, sqInt filenameSize, char *fType, char *fCreator); sqInt dir_GetMacFileTypeAndCreator(char *filename, sqInt filenameSize, char *fType, char *fCreator);
Modified: trunk/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c =================================================================== --- trunk/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c 2015-10-02 19:29:46 UTC (rev 3469) +++ trunk/platforms/Cross/plugins/FilePlugin/sqFilePluginBasicPrims.c 2015-10-04 16:50:28 UTC (rev 3470) @@ -487,6 +487,17 @@ }
sqInt +sqFileSync(SQFile *f) { + + if (!sqFileValid(f)) + return interpreterProxy->success(false); + pentry(sqFileSync); + if (fsync(fileno(getFile(f))) != 0) + return interpreterProxy->success(false); + return 1; +} + +sqInt sqFileTruncate(SQFile *f,squeakFileOffsetType offset) {
if (!sqFileValid(f))
Property changes on: trunk/platforms/Cross/plugins/sqPluginsSCCSVersion.h ___________________________________________________________________ Modified: checkindate - Wed Sep 23 11:09:06 PDT 2015 + Sun Oct 4 09:50:05 PDT 2015
vm-dev@lists.squeakfoundation.org