|   ShareFSShareFS provides a simple mechanism for accessing files on locally networked RISC OS systems. The system uses Freeway to distribute details of the shared discs. This allows any Freeway reachable system (usually those on the local network, but may include any NetI accessible networks), to access the shared files. Although the objects are known as 'shared discs' they may refer to parts of a filing system. Under Select 1 and later the Filer menu offers the option to share sub-directories. In the past the SWI calls for ShareFS have been undocumented. They are presented here to fill in this gap, but may be extended and modified without notice. The flags on the SWIs are inconsistent for legacy reasons. From ShareFS 3.97 onward, the ShareFS Filer can be disabled by setting the ShareFS$Filer variable to 'no'. The filer can be re-enabled by setting it to any other value. SWIsShareFS_CreateShare (&47AC0)On entry   R0 = flags :
         bit 0 = share is protected
         bit 1 = share is read only
         bit 2 = share is hidden
         bit 3 = share is a 'sub directory'
         bit 4 = share is a CD ROM
         bit 5 = share is authenticated (use R3 as key)
   R1 = pointer to share name
   R2 = pointer to directory name
   R3 = authentication key numberOn exit   All registers preserved This SWI is used to share a directory. ShareFS_StopShare (&47AC1)On entry   R0 = flags (reserved, must be 0)
   R1 = pointer to share name or directory name On exit   All registers preserved This SWI is used to stop sharing a directory. ShareFS_EnumerateShares (&47AC2)On entry   R0 = flags to check :
         bit 0 = share is protected
         bit 1 = share is read only
         bit 2 = share is hidden
         bit 3 = share is a 'sub directory'
         bit 4 = share is a CD ROM
         bit 31 = share is authenticated (use R5 as key) R4 = opaque value for enumeration, starting from 0
   R5 = authentication key to findOn exit   R1 = pointer to disc name
   R2 = pointer to path name
   R3 = flags for share
   R4 = new opaque value, or -1 if no more details This SWI is used to enumerate the shared discs. ShareFS_IdentifyShare (&47AC2)On entry   R0 = flags :
         bit 0 = share name given in R1, otherwise directory name in R1
   R1 = pointer to share or directory name
   R2 = pointer to buffer to write to
   R3 = length of bufferOn exit   R0 = flags for share
   R3 = length of data written to buffer, or -ve length if the name would not fit This SWI is used to identify a share given its name or directory name. MessagesMessage_FileShareDir (&408)   +0 = size of message
   +4 = task handle
   +8/+12 = references
   +16 = message number (&408)
   +20 = flags :
         bit 0 = share is protected
         bit 1 = share is read only
         bit 2 = share is hidden
         bit 3 = share is authenticated
         bit 4 = share is a CD ROM
         bit 30 = open window at position given
   +24 = x position (if bit 30 set)
   +28 = y position (if bit 30 set)
   +32... = directory to shareThis message will cause ShareFS to open a dialogue box showing the share details requests, or the live share details if the directory is already shared. ServicesService_Sharing (&801C8)On entry   R0 = pointer to filing system name ('ShareFS' in our case)
   R1 = &801C8 (service call number)
   R2 = 0 if object is unshared, 1 if object is shared
   R3 = pointer to path name being shared
   R4 = pointer to name of shared object
   R5 = private data (filesystem specific)This service is issued when a path is shared by a filing system. |