WbLG      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHC 6.8 experimentaljeremy.bobbio@etu.upmc.frThis record, given to E., binds each required file system operations. Each field is named against  System.Posix$ names. Matching Linux system calls  are also given as a reference.   implements  (System.Posix.Files.getSymbolicLinkStatus operation (POSIX lstat(2)).   implements  #System.Posix.Files.readSymbolicLink operation (POSIX  readlink(2)).  The returned G( might be truncated depending on caller  buffer size.   implements  %System.Directory.getDirectoryContents (POSIX  readddir(2)).   implements System.Posix.Files.createDevice  (POSIX mknod(2)). @ This function will also be called for regular file creation.   implements &System.Posix.Directory.createDirectory  (POSIX mkdir(2)).   implements System.Posix.Files.removeLink  (POSIX  unlink(2)).   implements &System.Posix.Directory.removeDirectory  (POSIX rmdir(2)).    implements  %System.Posix.Files.createSymbolicLink (POSIX  symlink(2)).    implements System.Posix.Files.rename (POSIX  rename(2)).    implements System.Posix.Files.createLink  (POSIX link(2)).    implements System.Posix.Files.setFileMode  (POSIX chmod(2)).    implements #System.Posix.Files.setOwnerAndGroup  (POSIX chown(2)).   implements System.Posix.Files.setFileSize  (POSIX  truncate(2)).   implements System.Posix.Files.setFileTimes  (POSIX utime(2)).   implements System.Posix.Files.openFd  (POSIX open(2)4), but this does not actually returns a file handle  but H5 if the operation is permitted with the given flags. F No creation, exclusive access or truncating flags will be passed.   implements Unix98 pread(2) . It differs  from System.Posix.Files.fdRead by the explicit I argument.   implements Unix98  pwrite(2) . It differs  from System.Posix.Files.fdWrite by the explicit I argument.   implements  statfs(2).   is called when close(2)" has been called on an open file. M Note: this does not mean that the file is released. This function may be " called more than once for each open(2)!. The return value is passed on  to the close(2) system call.  = is called when an open file has all file descriptors closed 0 and all memory mappings unmapped. For every open call there will be  exactly one release3 call with the same flags. It is possible to have J a file opened more than once, in which case only the last release will ? mean, that no more reads or writes will happen on the file.   implements fsync(2).  Returned by C. Used by . !#Synchronize only the file content. "BSynchronize all in-core parts of a file to disk: file content and  metadata. #Type used by the . %2Optimal transfer block size. FUSE default is 512. &"Total data blocks in file system. 'Free blocks in file system. ()Free blocks available to non-superusers. )!Total file nodes in file system. * Free file nodes in file system. +2Maximum length of filenames. FUSE default is 255. ,Used by ' implementation to specify the type of  a directory entry. 4Unknown entry type 5Used by . B Converts an , into the corresponding POSIX J. C@Returns the context of the program doing the current FUSE call. DEmpty /* default versions of the FUSE operations. EMain function of FUSE. , This is all that has to be called from the main function. On top of  the 6 record with filesystem implementation, you must give 7 an exception handler converting Haskell exceptions to KL. "This function does the following:  parses command line options (-d, -s and -h) ;  passes all options after -- to the fusermount program ; " mounts the filesystem by calling  fusermount ;  installs signal handlers for #System.Posix.Signals.keyboardSignal,  #System.Posix.Signals.lostConnection,  (System.Posix.Signals.softwareTermination and  "System.Posix.Signals.openEndedPipe ; G registers an exit handler to unmount the filesystem on program exit ;  registers the operations ;  calls FUSE event loop. FDefault exception handler. 1 Print the exception on error output and returns M. NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~MHKL  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG DEF56789:;<=>?@A,43210/.-#$%&'()*+ "!CBG   "!!"#$%&'()*+$%&'()*+,43210/.--./012345 6789:;<=>?@A6789:;<=>?@ABCDEF      !"#$%&'(()*+,-./01234567899:;<=>?@ABCDEFGHIJKLMNOOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ HFuse-0.1System.Posix.HFusebase System.IOForeign.C.ErrorSystem.Posix.TypesFuseOperationsfuseGetFileStatfuseReadSymbolicLinkfuseGetDirectoryContentsfuseCreateDevicefuseCreateDirectoryfuseRemoveLinkfuseRemoveDirectoryfuseCreateSymbolicLink fuseRenamefuseCreateLinkfuseSetFileModefuseSetOwnerAndGroupfuseSetFileSizefuseSetFileTimesfuseOpenfuseRead fuseWritefuseGetFileSystemStats fuseFlush fuseReleasefuseSynchronizeFilefuseOpenDirectoryfuseReleaseDirectoryfuseSynchronizeDirectoryfuseInit fuseDestroy FuseContext fuseCtxUserIDfuseCtxGroupIDfuseCtxProcessIDSyncTypeDataSyncFullSyncFileSystemStatsfsStatBlockSizefsStatBlockCountfsStatBlocksFreefsStatBlocksAvailablefsStatFileCountfsStatFilesFreefsStatMaxNameLength EntryTypeSocket SymbolicLink RegularFile BlockSpecial DirectoryCharacterSpecial NamedPipeUnknownFileStat statEntryType statFileMode statLinkCount statFileOwner statFileGroupstatSpecialDeviceID statFileSize statBlocksstatAccessTimestatModificationTimestatStatusChangeTimeentryTypeToFileModegetFuseContextdefaultFuseOpsfuseMaindefaultExceptionHandler GHC.IOBaseFilePatheOK FileOffsetFileModeErrnoeFAULTerrnoToIOErrorthrowErrnoPathIfMinus1_throwErrnoPathIfMinus1throwErrnoPathIfNullthrowErrnoPathIf_throwErrnoPathIfthrowErrnoPaththrowErrnoIfNullRetryMayBlockthrowErrnoIfNullRetrythrowErrnoIfNull throwErrnoIfMinus1RetryMayBlock_throwErrnoIfMinus1RetryMayBlockthrowErrnoIfMinus1Retry_throwErrnoIfMinus1RetrythrowErrnoIfMinus1_throwErrnoIfMinus1throwErrnoIfRetryMayBlock_throwErrnoIfRetry_throwErrnoIfRetryMayBlockthrowErrnoIfRetry throwErrnoIf_ throwErrnoIf throwErrno resetErrnogetErrno isValidErrnoeXDEV eWOULDBLOCKeUSERSeTXTBSY eTOOMANYREFS eTIMEDOUTeTIMEeSTALEeSRMNTeSRCHeSPIPEeSOCKTNOSUPPORT eSHUTDOWNeRREMOTE eRPCMISMATCHeROFSeREMOTEeREMCHGeRANGE ePROTOTYPEePROTONOSUPPORTePROTO ePROGUNAVAIL ePROGMISMATCH ePROCUNAVAILePROCLIMePIPE ePFNOSUPPORTePERM eOPNOTSUPPeNXIOeNOTTYeNOTSOCK eNOTEMPTYeNOTDIReNOTCONNeNOTBLKeNOSYSeNOSTReNOSReNOSPC eNOPROTOOPTeNONETeNOMSGeNOMEMeNOLINKeNOLCKeNOEXECeNOENTeNODEVeNODATAeNOBUFSeNFILE eNETUNREACH eNETRESETeNETDOWN eNAMETOOLONG eMULTIHOPeMSGSIZEeMLINKeMFILEeLOOPeISDIReISCONNeIOeINVALeINTR eINPROGRESSeILSEQeIDRM eHOSTUNREACH eHOSTDOWNeFTYPEeFBIGeEXISTeDQUOTeDOMeDIRTY eDESTADDRREQeDEADLK eCONNRESET eCONNREFUSED eCONNABORTEDeCOMMeCHILDeBUSYeBADRPCeBADMSGeBADFeALREADYeAGAIN eAFNOSUPPORTeADV eADDRNOTAVAIL eADDRINUSEeACCESe2BIG unix-2.3.2.0System.Posix.IOReadOnly WriteOnly ReadWriteOpenModetruncnonBlocknoctty exclusiveappend OpenFileFlagsSystem.Posix.FilesintersectFileModesunionFileModes