1. 15 Jul, 2012 1 commit
    • Ben Avison's avatar
      Bugfix to *Copy · 9367a4d8
      Ben Avison authored
      Detail:
        With *Copy A, and the related SWI OS_FSControl 26 with R3 bit 9 clear, if
        a directory was copied over an image file, the contents of the directory
        would be copied (assuming recursive) but then when the attributes were
        copied over, the directory's filetype (usually FFD, Data) and user access
        bits (both 0) were copied to the destination image file, rendering it
        unusable.
      Admin:
        Tested on a Raspberry Pi with the DOS partition in the standard disc image.
      
      Version 2.78. Tagged as 'FileSwitch-2_78'
      9367a4d8
  2. 09 Jul, 2012 1 commit
    • Jeffrey Lee's avatar
      Fix a couple of null/bad pointer dereferences · d9c7abb7
      Jeffrey Lee authored
      Detail:
        s/FSControl - faff_boot_option_startup (OS_FSControl 47/48) was acting as if it was given a path variable in r3, but neither of those calls use path variables, leading to aborts in some situations due to random bits of memory being peeked at.
        s/FSUtils - When CopyWildObject performs a single object copy, it wasn't taking into account the fact that the src/dest leafname pointers could be null, potentially causing a crash if high processor vectors are in use.
      Since I'm not 100% sure what the correct course of action is (in the case I saw it crash, both src and dest leafnames were null), and there aren't any bugs I know of with file copies using the wrong names, the code now uses the dest leafname if the dest leafname is null.
      This sounds wrong, but matches the behaviour of the old code, since byte &00000000 is highly unlikely to contain a '*' character
      Admin:
        Tested on BB-xM with high processor vectors
      
      
      Version 2.77. Tagged as 'FileSwitch-2_77'
      d9c7abb7
  3. 09 Apr, 2012 1 commit
    • Jeffrey Lee's avatar
      Fix TopPath_DoBusinessToPath leaking memory on error · 1f3b4bd6
      Jeffrey Lee authored
      Detail:
        s/TopPath - Code which attempted to free the cleaned up user's path incorrectly assumed that it could find the string via the stacked R0. However stacked regs R0-R6 get updated with the found objects details, so we need to store a copy of the users R0 elsewhere and free the string via that instead.
      Admin:
        Fixes OS_FSControl 37 (and other operations?) filling the system heap if given paths which will generate errors (e.g. if drive empty/missing)
      
      
      Version 2.76. Tagged as 'FileSwitch-2_76'
      1f3b4bd6
  4. 18 Mar, 2012 1 commit
  5. 20 Feb, 2012 2 commits
  6. 27 Nov, 2011 4 commits
  7. 22 Oct, 2011 1 commit
  8. 20 Oct, 2011 1 commit
    • Robert Sprowson's avatar
      Fix for *COPY finishing too early with files > 2G · bd64d61d
      Robert Sprowson authored
      Same drill, V was being set or not preserved when it shouldn't or should be. In light of this all locations that do CMP/SUBS/ADDS involving fileptr/extent/anything ending in size or length have been reviewed and ammended where needed.
      Trim some dead code.
      Discard 'Version' file.
      
      Version 2.70. Tagged as 'FileSwitch-2_70'
      bd64d61d
  9. 16 Oct, 2011 2 commits
    • Robert Sprowson's avatar
      Put back a debug line, deleted in error. · d815ac29
      Robert Sprowson authored
      Retagged as FileSwitch-2_69.
      d815ac29
    • Robert Sprowson's avatar
      Fix OS_Args 1 and OS_GBPB 3/4 for files > 2G. · cce1584b
      Robert Sprowson authored
      In OS_Args 1 a compare was followed by a conditional store, but with files > 2G some circumstances end up with VS so the store wasn't taken.
      In OS_GBPB 3/4 the assessment of how much could be done was based on adding the current fileptr to the request but not respecting the carry out. Reordered the equation to get this calculation right.
      Changed a signed compare of a byte variable to use unsigned so auditing of signed condition codes is clearer.
      Corrected spelling of 'openning'.
      Fix copy_srchandle and copy_dsthandle to not assume handles fit in 1 byte.
      Tested on a variety of contrived file sizes at the boundaries of 2G and 4G.
      
      Version 2.69. Tagged as 'FileSwitch-2_69'
      cce1584b
  10. 04 Aug, 2011 1 commit
    • Jeffrey Lee's avatar
      Update to work with zero page relocation · 0b0a3063
      Jeffrey Lee authored
      Detail:
        s/FileSwBody, s/FileSwHdr - Try getting DomainId pointer via OS_ReadSysInfo 6 before falling back on legacy address. Store result in workspace for speedy lookup.
        s/FSCommon - Use workspace DomainId pointer
        s/CtrlUtils - Update int_ConstructFullPathWithoutFSAndSpecial to not attempt to append the contents of null string pointers.
        s/FSControl - Update AppendStringIfNotNull to ignore null pointers
        s/LowLevel - Update CallFSFile_Given to not try copying from null special field strings
      Admin:
        Tested on rev A2 BB-xM.
        AFAIK the null pointer bugs are all FileSwitch bugs and not bugs in whatever called FileSwitch, although I may be wrong. Not entirely sure how some of the code managed to read strings from null pointers without creating garbage filenames as a result!
      
      
      Version 2.68. Tagged as 'FileSwitch-2_68'
      0b0a3063
  11. 15 Jun, 2009 1 commit
    • Ben Avison's avatar
      Bugfix to OS_File 5 · 389710f2
      Ben Avison authored
      Detail:
        s.LowLevel: STRNE should have been STRNEB. Looks like this meant that
        OS_File 5 was broken if the object name contained a filing system special
        field.
        Added ENTRY directive to permit building of GPA debug listing.
      Admin:
        Built but not tested (should be a safe change).
      
      Version 2.67. Tagged as 'FileSwitch-2_67'
      389710f2
  12. 11 Jun, 2009 1 commit
    • Ben Avison's avatar
      GET file pathnames changed · 5d90bec5
      Ben Avison authored
      Detail:
        Uses suffixed file extensions for compatiblity with both objasm and asasm.
      Admin:
        Supplied by Peter Naulls, tested at ROOL
      
      Version 2.66. Not tagged
      5d90bec5
  13. 01 Jul, 2004 1 commit
  14. 12 Dec, 2002 1 commit
  15. 20 Aug, 2001 1 commit
    • Dan Ellis's avatar
      Fixed bug in memory allocation check code. · 0c40540e
      Dan Ellis authored
      Detail:
        Code has been added to fileswitch to detect whether there is sufficient
      memory for a program to execute, and report a sensible error rather than
      aborting in it's initialistion code.  This implicitly relied on R12 in
      the error routines, which was being corrupted.  R12 register usage has now
      replaced by other safe registers.
      
        This was exacerbated by incorrectly formed AIF headers, such as those
      generated by at least some versions of the Easy C Linker, which don't have
      correct entries for the size of the data areas of the file.
      
      Admin:
        Tested on a RPC.  The system appears to work correctly, and malformed AIF
      headers cause the error to be raised without other harm.
      
      
      Version 2.64. Tagged as 'FileSwitch-2_64'
      0c40540e
  16. 04 Jun, 2001 1 commit
    • Stewart Brodie's avatar
      Third time lucky. · 58496303
      Stewart Brodie authored
      Admin:
        Tested - and it doesn't result in FileCore in use errors any more.
      
      
      Version 2.63. Tagged as 'FileSwitch-2_63'
      58496303
  17. 02 Jun, 2001 1 commit
    • Stewart Brodie's avatar
      The check I added in the previous version didn't work :-( · 701872a3
      Stewart Brodie authored
      Detail:
        R12 cannot be corrupted until FileSwitch is committed to starting the
          new application.  Changed code to not use R12 any more until it is
          100% sure that the application is going to be launched come what may.
      Admin:
        Not built; not tested - but version 2.61 is not useful.  Should work now.
      
      
      Version 2.62. Tagged as 'FileSwitch-2_62'
      701872a3
  18. 30 May, 2001 1 commit
    • Stewart Brodie's avatar
      AIF image header checks improved. · 71bf193a
      Stewart Brodie authored
      Detail:
        AIF headers declare how much space they are going to need in addition
          to the size of the executable on the filesystem.  This information
          is now extracted by FileSwitch to validate that the memory limit
          will not be exceeded.
      Admin:
        Built.  Not tested.
      
      
      Version 2.61. Tagged as 'FileSwitch-2_61'
      71bf193a
  19. 14 May, 2001 1 commit
    • Dan Ellis's avatar
      Closing a file now allows the underlying filing system to object, preventing... · 4b9cb9e9
      Dan Ellis authored
      Closing a file now allows the underlying filing system to object, preventing the file from being closed.
      
      Detail:
        The error return from the underlying filing system wasn't being used to
      prevent the fileswitch record for the open file being removed.  This resulted
      in the underlying filing system not being able to prevent closure of a file
      handle.  This behaviour is relied upon by PipeFS when it returns an error
      from the Sleep No More UpCall.
      
      Admin:
        Tested on RPC.  Note that the 32 bit build doesn't work on the 26 bit
      desktop for no identified reason.
      Version 2.60. Tagged as 'FileSwitch-2_60'
      4b9cb9e9
  20. 10 May, 2001 1 commit
  21. 17 Apr, 2001 2 commits
    • David Cotton's avatar
      Now works. · 081332d6
      David Cotton authored
      Detail:
          The version of Stewart's notes that I was using to convert the component
      to support ObjAsm was out of date, and hence missed out a couple of sections
      on converting Asm headers to C headers and tokenisation. This would only have
      been picked up when building straight out of CVS. A classic case of RTLM
      (read the latest manual). However, doing this work showed up a bit missing
      from Stewart's notes, so it is really a case of RTLMWSHWI, or read the latest
      manual when Stewart has written it). ;-)
          The makefile has been altered to ensure that the correct operations occur.
      
      Admin:
          Not tested in a build. Checked the logs from running export headers,
      libs, resources and rom phases against a pre-objasm build and verified that
      all the same steps are occuring.
      
      Version 2.58. Tagged as 'FileSwitch-2_58'
      081332d6
    • David Cotton's avatar
      Altered to use shared makefiles and ObjAsm. · 8d9ceeb7
      David Cotton authored
      Detail:
          As above. No other changes.
      
      Admin:
          Tested in a Lazarus build.
      
      Version 2.57. Tagged as 'FileSwitch-2_57'
      8d9ceeb7
  22. 04 Apr, 2001 1 commit
    • Dan Ellis's avatar
      Fixed some data aborts on OS_Args calls · dc300ea2
      Dan Ellis authored
      Detail:
        OS_Args 8 and 9 (ImageStampIS and IOCtl) didn't check that the file handle
      passed to them was legitimate and hence would cause data aborts as they tried
      to access non existant structures.
      
      Admin:
        Not tested.  Two lines of assembler copied into each function to test
      whether the file handle is valid from other similar calls.
      
      Version 2.56. Tagged as 'FileSwitch-2_56'
      dc300ea2
  23. 03 Apr, 2001 1 commit
    • Ben Avison's avatar
      Minor bugfix. · 7285fc6d
      Ben Avison authored
      Detail:
        UpCall 3 (ModifyingFile) is no longer issued by OS_File 24 (ReadBlockSize).
      Admin:
        Not tested.
      
      Version 2.55. Tagged as 'FileSwitch-2_55'
      7285fc6d
  24. 19 Mar, 2001 1 commit
    • Stewart Brodie's avatar
      hdr/LowFSI was not objasm-compatible! · f9694709
      Stewart Brodie authored
      Detail:
        It is not legal for lines to end in \ unless the intention is that the
          line be rejoined.  This caused a structure member to be missing in the
          filing system header file which could have caused absolute havoc.
        Assertions are dead useful ...
      Admin:
        Built.
        Required by SystemDevices 1.30 or later (and other components)
      
      Version 2.54. Tagged as 'FileSwitch-2_54'
      f9694709
  25. 01 Mar, 2001 2 commits
    • Simon Forrest's avatar
      Should've removed StripDepnd support from Makefile, since I moved the support... · 0d3e47c5
      Simon Forrest authored
      Should've removed StripDepnd support from Makefile, since I moved the support to MkClean.  Now removed.
      
      Retagged as FileSwitch-2_53.
      0d3e47c5
    • Simon Forrest's avatar
      * Removed dependency on obsolete STB flag. · 999979db
      Simon Forrest authored
      Detail:
      
        * No longer relies on the STB flag; instead utilises "Hdr:UserIF.<UserIF>"
          to provide the Embedded_UI flag.
      
          The only difference between Desktop and Embedded builds is that the
          filing system name is NOT printed on Embedded builds upon Service_Reset.
      
      Admin:
      
        * Built and tested on Lazarus 32-bit build.  Code is binary identical to
          previous versions the relied on the STB flag in both the Desktop and
          Embedded cases.
      
        * Requires HdrSrc 1.17 or later.
      
      Version 2.53. Tagged as 'FileSwitch-2_53'
      999979db
  26. 20 Mar, 2000 3 commits
    • Kevin Bracey's avatar
      32-bit compatible. · a6c7a3b0
      Kevin Bracey authored
      Admin:
        Tested on a 32-bit system; untested on 26-bit, and merge with Ursula branch
        untested.
      
      Version 2.52. Tagged as 'FileSwitch-2_52'
      a6c7a3b0
    • Kevin Bracey's avatar
      RISC OS Ltd changes merged onto trunk. · af0badf9
      Kevin Bracey authored
      Detail:
        (extracted from BuffyLog)
        * Fixed problem with > 67 character filenames in OS_FSControl 26-28.
          buffer now fixed at 256 characters but lengths are now checked.
      
        * Paths may now be of any length without crashing fileswitch. On some
          occasions errors will be returned for long filenames (usually
          buffer overflow), but it will never crash. This does not stop other
          code (usually upcall handlers) from crashing the machine.
      Admin:
        Not tested (TM). Shout at me if it doesn't work.
      
      Version 2.51. Tagged as 'FileSwitch-2_51'
      af0badf9
    • Kevin Bracey's avatar
      Ursula branch merged. · e5079366
      Kevin Bracey authored
      Detail:
        Full merge of Ursula branch. Path length limited to 256 if a compile-time
        check says SVCSTK is still &01C02000.
      
        Fix to bug introduced in RISC OS 3.70 - any errors returned by FSEntry_File
        255 were ignored.
        Some changes from RISC OS Ltd still to come.
      Admin:
        Untested.
      
      Version 2.50. Tagged as 'FileSwitch-2_50'
      e5079366
  27. 01 Mar, 2000 1 commit
    • Stewart Brodie's avatar
      Exports C version of the HighFSI header file. · 0fd45805
      Stewart Brodie authored
      Detail:
        FileSwitch runs Hdr2H on its hdr.HighFSI file to export reason code
          symbols for the filing system SWIs.
      Admin:
        Required by IPConfig 0.27 and later
      
      Version 2.41. Tagged as 'FileSwitch-2_41'
      0fd45805
  28. 15 Nov, 1999 1 commit
    • David Cotton's avatar
      Merged the latest changes on Spinner branch. · 01cd59fe
      David Cotton authored
      Detail:
      	Needed the localres alterations off the Spinner branch that had been
      added since the branch was last merged.
      	Added strdepend to the clean phase.
      
      Admin:
      	Built locally and on a Funai4 build machine.
      
      Version 2.40. Tagged as 'FileSwitch-2_40'
      01cd59fe
  29. 04 Aug, 1999 1 commit
  30. 22 Oct, 1998 2 commits