Commits (11)
-
Robert Sprowson authored
FSBash shouldn't stop after 65536 goes, it should continue until the drive is full or Escape pressed. Not tagged.
d13f0444 -
Jeffrey Lee authored
Detail: s/FileCore30 - Update FindBuffer so that if it failed to find enough spare memory for the buffer (and the RMA is allowed) it will try and grow the RMA dynamic area (current code just aims to use the spare heap space without expanding the DA). Admin: Tested on Raspberry Pi Fixes "No room for buffer" error being generated in some situations, following the removal of Wimp_ClaimFreeMemory/free pool locking Version 3.67. Tagged as 'FileCore-3_67'
da5cf16c -
Robert Sprowson authored
Don't rely on an STM with either of the bottom 2 bits set to store on a word aligned boundary any more. Fixes abort when an old style error is reported to FileCore on ARMv7. Spotted by Jon Abbott, ref https://www.riscosopen.org/forum/forums/4/topics/3682 Version 3.68. Tagged as 'FileCore-3_68'
e7f8277a -
Jeffrey Lee authored
Detail: s/BigDirCode, s/Identify - Avoid unnecessary remainder calculation in DivRem macro Admin: Tested on Cortex-A15 Version 3.69. Tagged as 'FileCore-3_69'
9b4c1ccf -
Robert Sprowson authored
Module_Title->Module_TitleStr from Kernel-5_54. Version 3.70. Tagged as 'FileCore-3_70'
74902d1e -
Robert Sprowson authored
For new map discs NextFs returns the address of the map zone in R10, which was being used to lookup entries in the disc record. However, for old map discs R10 is a multiple-of-3 offset into the free space map. This was aborting on the 2nd call due to an unaligned LDR at line 3205. Even on platforms that permit unaligned loads the printed results were wrong because the disc address for an old map disc is in bytes but the value printed out was shifted up by Log2SectorSize. A DD floppy disc could have free space fragments starting at 7M - nonsense. Fixed by checking the DiscFlags and only reading from the map zone/sector shifting for new map. Tested with an ADFS-L floppy disc. Version 3.71. Tagged as 'FileCore-3_71'
8f7b5469 -
Robert Sprowson authored
FileCore would allow objects to be added to BigDir extensible directories until eventually failing and leaving an unopenable broken directory behind. In fact, the on disc directory was sound, but after updating the parent in GrowBigDir it would reload the child into the dir cache with FindDir, FindDir called SanityCheckBigDirHeader which was rejecting BigDir's of exactly 4MB that was created moments earlier. Now, during the initial attempt grow, a check is made for exceeding BigDirMaxSize before trying to enlarge the dynamic area (while it would be possible to translate the error from maxing out the dynamic area, there could be situations where there genuinely isn't enough memory to enlarge the area) and a more polite "Dir full" error returned. Tested with an initially empty drive (so the dynamic area must grow) and with one that previously created a maximal directory (dynamic area already large enough). Also tightened up a couple of places loading byte wide variables using LDR, relying on the modulo 31 properties of LSR/LSL, when we can simply load the value as a byte for the same cost. Version 3.72. Tagged as 'FileCore-3_72'
9361961f -
ROOL authored
Detail: FileCore is defined as a case insensitive FS (ie. MyFile can't coexist in the same directory as mYfILE). Prior to a territory being selected the BigDir binary chop sort would (via the Internat_UpperCase macro) abandon a directory search once it mismatched, and so would never find !Territory in order to select the territory in the first place. Have Internat_UpperCase use ASCII uppercase until that time. Admin: Based on a submission from Colin Granville, with modifications. Version 3.73. Tagged as 'FileCore-3_73'
549666f4 -
Robert Sprowson authored
Previous testing with RAMFS was limited by the size of RAM disc, and hence complexity of layout, meaning some cases with BigSectors were missed. FileCore20.s: During mount, when loading the defect list from the boot block at &C00, take care to round down the source sector address to account for it only being aligned up to 1k sectors (but not for 2k and 4k). FileCore25.s: When loading the head of a BigDir (to find out its actual size) and finding it to be > 2k, skip loading the bit from 2k-4k, since that was already loaded when the head was read in, and reading it a second time offset by 2k fails the head/tail check. FileCore31.s: When building a table to decide which zones to compact, use FindBuffer() to get some temporary store if too large to fit into ScratchSpace. Identify.s: Comment updated. BigDirCode.s: (Unrelated) Fix for bad error pointer being passed back, due to R0 being restored on encountering an error during directory rename. FSBashed for 300k cycles on Titanium with an assortment of manufacturer drives, capacities, and sector sizes. Version 3.74. Tagged as 'FileCore-3_74'
5a07a9e0 -
Robert Sprowson authoredbfa71eec
-
Robert Sprowson authored
When 'BigMap' support was added drive sizes were such that (see table and discussion in Doc/BigDisc/BigDiscs) an upper maximum of 19 bits for idlen was appropriate. Now that drives of 2^29 sectors are readily available (the limit of 'BigDisc' support) the idlen limit of 19 has meant the minimum object size has grown too. This change uses the remaining 2 indirect disc address bits to get a factor x4 reduction in minimum object size, at the expense of a 4x larger map. Defns.s: Parameterise idlen for big and small maps. Small's limit remains 15, big's limit raised from 19 to 21. Identify.s: When mounting, use the parameterised idlen upper limits to decide whether it's a valid disc or not. FileCore32.s: Adjust the BIC masks to knock out the extra 2 bits when forming the hash of the object id. Fix long standing bug updating the wrong entry in the hash table (due to LSL #2 giving 5x the entry index, rather than 3x). FileCore15.s: Take care not to shift b20 of idlen into C as a side effect of a flags changing opcode. An audit of FileCore showed this to be the only site where the subsequent condition code(s) depended on C. Tools/basic/DispMap: Updated to support BigMaps at all, previously it only worked with NewMap discs. Tested with an assortment of drives with FSBash for 300k cycles of scrambling for idlen = 17, 19, 20 & 21. Version 3.75. Tagged as 'FileCore-3_75'
45dadad2
Showing
No preview for this file type