1. 24 Mar, 2013 1 commit
    • Robert Sprowson's avatar
      Retire single use of DebugROMErrors · 3758c6a1
      Robert Sprowson authored
      hdr/Options: Switch removed
      s/Modhand: Switch removed, now considered equivalent to DebugROMInit. DebugROMInit changed so that the callback ordering is as expected, batched up until "callbacks" is hit after Service_PostInit.
      PMF/osbyte: Redundant RISC OS 2.01 code deleted
      
      Version 5.35, 4.79.2.184. Tagged as 'Kernel-5_35-4_79_2_184'
      3758c6a1
  2. 27 Jan, 2013 1 commit
    • Robert Sprowson's avatar
      Adopt some switches from Hdr:Machine/Machine · e5188347
      Robert Sprowson authored
      SystemName, ROMSizeOffset, HAL32, HAL26 only used here, moved here.
      Remove uses of "M_" booleans, apparently that's bad form.
      Fix SWIDespatch_Size for the non thumb capable case (was ASSERTing).
      Swapped UserMemStart for AppSpaceStart.
      Removed last use of OldComboSupport (pre Medusa!).
      Removed switch 'CDVPoduleIRQs', a correction to the machine definitions mean this can now simply be switched on NumberOfPodules (previously, IOMD couldn't chain podule interrupts).
      Take out disabled sub interrupt support - it's in CVS if you want to try to get it working.
      Moved ConfiguredLang to 11 for everyone, it only matters if !Boot fails, and no harm in making it common for 5.xx onwards.
      
      Version 5.35, 4.79.2.183. Tagged as 'Kernel-5_35-4_79_2_183'
      e5188347
  3. 22 Jan, 2013 1 commit
    • Jeffrey Lee's avatar
      Add new HAL call, HAL_IRQMax, to allow the kernel to determine the number of... · 96e77d80
      Jeffrey Lee authored
      Add new HAL call, HAL_IRQMax, to allow the kernel to determine the number of IRQ lines/devices at runtime
      
      Detail:
        hdr/HALEntries - Reuse the old HAL_MonitorLeadID call number for HAL_IRQMax
        hdr/KernelWS - Rearrange CursorChunkAddress workspace a bit. Removed unused OldOscliBuffs and a couple of pre-HAL allocations, and made DefIRQ1Vspace the same size for all build configs. Add an IRQMax var to zero page workspace to cache the value returned by HAL_IRQMax.
        s/HAL - Initialise IRQMax shortly after HAL initialisation. Revise ClearPhysRAM comment to reflect which vars are preserved in the current version of the code.
        s/NewIRQs - Strip out a fair bit of pre-HAL code to make the file more readable. Update OS_ClaimDeviceVector/OS_ReleaseDeviceVector to check against IRQMax instead of the MaxInterrupts compile-time limit.
      Admin:
        Tested on BB-xM, Iyonix, RiscPC, Pi
        Although the OS will now nominally adapt at runtime to how many IRQ devices there are, it's still using MaxInterrupts as an upper limit as the device claimant table has a fixed memory allocation.
      
      
      Version 5.35, 4.79.2.182. Tagged as 'Kernel-5_35-4_79_2_182'
      96e77d80
  4. 17 Jan, 2013 1 commit
    • Robert Sprowson's avatar
      Extend possible range of OS_Call[After|Every] · 66b9745b
      Robert Sprowson authored
      OS_CallAfter and OS_CallEvery were treating the delay in R0 as a signed number, limiting its possible range. The PRM didn't require this (a -ve delay doesn't make sense, so implicitly times are unsigned), reworked to allow times up to 0xFFFFFBFF.
      Aside:
        OSLib exports these functions as 'int', but it doesn't seem to make a distinction for unsigned versus signed anyway (other unsigned arguments are plain int too)
        The 'callx' library was already prototyped with unsigned times back in 1997
      
      Added comment to hdr/Options about FirstUnpluggableModule - since the keyboard and mouse drivers got moved out of the kernel in 3.50, the original intent (to not allow you to unplug vital modules) has long since been lost, and really the only use of this value is to save 8 bits of CMOS frugal bits.
      
      Version 5.35, 4.79.2.181. Tagged as 'Kernel-5_35-4_79_2_181'
      66b9745b
  5. 10 Jan, 2013 1 commit
    • Robert Sprowson's avatar
      Add OS_NVMemory 6 · b9898460
      Robert Sprowson authored
      Permits applications to query what value would be used in the event of a CMOS reset for a given configure value. Notably, the configure plugins will use this in favour of 'ResetCMOS'.
      hdr/Options: retire the 'Select16BitSound' switch, add comment for ChecksumCMOS switch
      hdr/KernelWS: DuffEntry and Nowhere moved here
      Kernel.s: Unused OSMD removed, retire single use of SPIRQ in favour of r13_irq
      Middle.s: Retire SPIRQ
      NewReset.s: Trim out 300+ lines of CMOS reset defaults, call OS_NVMemory 6 instead
      PMF/i2cutils.s: CMOS reset default code and table moved here with refactoring
      Note, the previous code preserved YearCMOS during the zeroing, only to unconditionally write it later - so have removed it from the zeroing step.
      Note, the locations 80-111 are now considered as system CMOS in the allocations hence are now wiped too (previously they got skipped as user CMOS during R-power-on).
      
      Tested on OMAP3 ROM with delete-power-on and R-power-on variants, and a simple BASIC program to read locations 0-255 via OS_NVMemory.
      
      Version 5.35, 4.79.2.180. Tagged as 'Kernel-5_35-4_79_2_180'
      b9898460
  6. 05 Dec, 2012 1 commit
    • Jeffrey Lee's avatar
      Add support for new extended internal key codes, low level key codes, and key handler format · bcb499b5
      Jeffrey Lee authored
      Detail:
        s/Middle - Added OS_ReadSysInfo 13 to allow the kernel to validate a key handler before the owner attempts to install it
        Resources/UK/Messages - Text for new "Bad key handler" error
        s/GetAll, s/PMF/Def - Get rid of now obsolete s/PMF/Def file. It only contained definitions for pre-HAL hardware, and for the key handler layout (now in Hdr:Keyboard)
        hdr/KeyWS - Increased size of KeysDown array so it can hold 768 keys instead of 160. Trim a couple of obsolete variables, and increase CurrKey/OldKey from 1 byte to 4 bytes.
        s/PMF/key, s/PMF/osbyte - Main bulk of the changes for the new key handling. All the important interfaces are now able to deal with extended (i.e. > 8 bit) internal key numbers, and the kernel is able to cope with key handlers which use 16 bit internal/low level key numbers instead of 8 bit.
      Admin:
        Tested on Pandora & BB-xM
        Requires HdrSrc-2_20
      
      
      Version 5.35, 4.79.2.178. Tagged as 'Kernel-5_35-4_79_2_178'
      bcb499b5
  7. 21 Nov, 2012 1 commit
    • Jeffrey Lee's avatar
      Add new BMU HAL device type & IDs · 80d476ae
      Jeffrey Lee authored
      Detail:
        hdr/HALDevice - Added HALDeviceSysPeri_BMU device type and some device IDs for the BMUs in the Pandora & TouchBook
      Admin:
        Tested in OMAP3 ROM build
      
      
      Version 5.35, 4.79.2.177. Tagged as 'Kernel-5_35-4_79_2_177'
      80d476ae
  8. 28 Oct, 2012 3 commits
  9. 08 Oct, 2012 1 commit
    • Steve Revill's avatar
      Some tweaks ahead of an RPi code freeze. · 276a05dd
      Steve Revill authored
      Default CMOS tweaks now apply for the RPi hardware. Was missed in
      the previous commit.
      
      You can now build the Kernel without the ROM debug output stuff
      that's enabled for odd-numbered builds, by passing FREEZE_DEV_REL=TRUE
      into the makefile. For example, in the Components file, you'd add:
      
        -options FREEZE_DEV_REL=TRUE
      
      onto the Kernel line.
      
      Version 5.35, 4.79.2.171. Tagged as 'Kernel-5_35-4_79_2_171'
      276a05dd
  10. 30 Sep, 2012 1 commit
    • Jeffrey Lee's avatar
      Initialise IIC earlier in the startup sequence. Add ID for Pandora audio HAL device · e36a0e28
      Jeffrey Lee authored
      Detail:
        s/HAL, s/NewReset - Moved IIC initialisation to just after timer initialisation, and crucially, before keyboard scan initialisation. This makes things a lot easier for the HAL if it wants to use IIC during the keyboard scan (previously IIC would be enabled inbetween HAL_KbdScanSetup and the first call to HAL_KbdScan)
        hdr/HALDevice - Added a device ID for the Pandora audio controller
      Admin:
        Tested on Pandora
      
      
      Version 5.35, 4.79.2.168. Tagged as 'Kernel-5_35-4_79_2_168'
      e36a0e28
  11. 21 Sep, 2012 1 commit
    • Jeffrey Lee's avatar
      Add new HID device type & ID for Pandora keyboard · 3ea05a2f
      Jeffrey Lee authored
      Detail:
        hdr/HALDevice - Added new HID device type, Keyboard sub-type, and Pandora keyboard device ID
      Admin:
        Tested on Pandora, rev C2 BB, rev A2 BB-xM, rev C1 TouchBook
      
      
      Version 5.35, 4.79.2.166. Tagged as 'Kernel-5_35-4_79_2_166'
      3ea05a2f
  12. 18 Sep, 2012 1 commit
    • Jeffrey Lee's avatar
      Fix addresses sent to GraphicsV_SetDMAAddress when external framestore in use.... · 5c0a0186
      Jeffrey Lee authored
      Fix addresses sent to GraphicsV_SetDMAAddress when external framestore in use. Add ID for BCM2835 VDU HAL device.
      
      Detail:
        hdr/KernelWS, s/vdu/vdudriver, s/vdu/vduwrch - Fixed wrong addresses being sent to GraphicsV_SetDMAAddress when an external framestore is in use. Previously VideoPhysAddr was being treated as if it was the base of screen memory, but that's only the case if an internal framestore is in use. Since VideoPhysAddr is part of PhysRamTable it's not possible to change it to point to an external framestore, so a new workspace variable, TrueVideoPhysAddr, is used instead.
        hdr/HALDevice - Added device ID for BCM2835 VDU device
        s/PMF/IIC - Corrected an incorrect comment in IICDoOp
      Admin:
        Tested on Raspberry Pi with high processor vectors
      
      
      Version 5.35, 4.79.2.147.2.22. Tagged as 'Kernel-5_35-4_79_2_147_2_22'
      5c0a0186
  13. 08 Sep, 2012 1 commit
  14. 03 Sep, 2012 1 commit
  15. 02 Sep, 2012 1 commit
    • Jeffrey Lee's avatar
      Preperation for working Raspberry Pi video driver · 3981af57
      Jeffrey Lee authored
      Detail:
        hdr/HALEntries - Add new HAL_Video_StartupMode HAL entry to allow the HAL to specify a startup mode
        s/HAL, s/Kernel - Tweaked debug routines
        s/vdu/vdudriver - Make use of HAL_Video_StartupMode in InitialiseMode to decide what initial mode should be. Clean up some hacks & debug. Improve handling of external framestores; if bit 5 of GraphicsV_DisplayFeatures r0 is set, the kernel will now allow the display driver to grow/shrink/move its framestore in response to mode changes.
        s/vdu/vdugrafv - Adjust default GV_FramestoreAddress implementation to only claim vector if HAL returns a framestore
        s/vdu/vduswis - Re-enable FindOKMode
      Admin:
        Tested on Raspberry Pi with high processor vectors
      
      
      Version 5.35, 4.79.2.147.2.18. Tagged as 'Kernel-5_35-4_79_2_147_2_18'
      3981af57
  16. 20 Aug, 2012 1 commit
  17. 14 Aug, 2012 1 commit
    • Jeffrey Lee's avatar
      Fix crash in OS_Hardware 4 when encountering devices which are newer than the... · ea14a968
      Jeffrey Lee authored
      Fix crash in OS_Hardware 4 when encountering devices which are newer than the caller supports. Add new device IDs for Raspberry Pi audio devices.
      
      Detail:
        s/HAL - Fixed crash in OS_Hardware 4 when encountering devices which are newer than the caller supports
        hdr/HALDevice - Added new HAL devices for Raspberry Pi audio devices
      Admin:
        Tested on Raspberry Pi with high processor vectors
      
      
      Version 5.35, 4.79.2.147.2.17. Tagged as 'Kernel-5_35-4_79_2_147_2_17'
      ea14a968
  18. 02 Aug, 2012 1 commit
    • Jeffrey Lee's avatar
      Add new HAL device IDs for Raspberry Pi GPIO interface & VCHIQ · a58268ed
      Jeffrey Lee authored
      Detail:
        hdr/HALDevice - Add new inter-processor communications device type. Add device IDs for Pi/BCM2835 GPIO interface & VCHIQ
        hdr/GPIODevice - Add Raspberry Pi GPIO type & interface revision (currently 'unknown')
      Admin:
        Tested in Raspberry Pi ROM with high processor vectors
        New IDs required for BCM2835-0_17
      
      
      Version 5.35, 4.79.2.147.2.16. Tagged as 'Kernel-5_35-4_79_2_147_2_16'
      a58268ed
  19. 20 Jul, 2012 1 commit
  20. 09 Jul, 2012 1 commit
    • Robert Sprowson's avatar
      Sort out hard ROM size for HALs with no hard ROM · 6e934a16
      Robert Sprowson authored
      Previously HAL_PhysInfo took one of two routes to get the arrangment table of arrangement table size.
      Reorganised to accept a subreason to allow other physical info to be requested.
      
      
      Version 5.35, 4.79.2.161. Tagged as 'Kernel-5_35-4_79_2_161'
      6e934a16
  21. 07 Jul, 2012 1 commit
  22. 06 Jul, 2012 1 commit
    • Ben Avison's avatar
      Added OS_Hardware 5 · 2b88f4fb
      Ben Avison authored
      Detail:
        This functions like OS_Hardware 4, but enumerates devices in the
        chronological order of registration.
      Admin:
        Builds, but untested.
      
      Version 5.35, 4.79.2.160. Tagged as 'Kernel-5_35-4_79_2_160'
      2b88f4fb
  23. 04 Jul, 2012 1 commit
    • Robert Sprowson's avatar
      Make GraphicsV_IICOp more consistent · c671badb
      Robert Sprowson authored
      No accepts  r0 = b31-24 set 0
                       b23-16 fully qualified IIC address
                       b15-0  starting offset
                  r1 = buffer pointer
                  r2 = number of bytes to tranfer
                  r4 = b31-24 display number
                       b23-16 head
                       b15-0  reason code (=14)
      Now returns r0 = result codes as per HAL_IICTransfer()
                  r1 = buffer pointer incremented by number of bytes transferred
                  r2 = number of bytes *not* transferred
                  r4 = 0
      Removed '_' after Video in entry numbers to be consistent with other HAL entry naming, and HAL_VideoFlybackDevice.
      Added IICStatus return numbers to Hdr:HALEntries.
      Stop calling HAL_MonitorLeadID as only IOMD implemented it - just guess VGA until the graphics driver says otherwise.
      
      Version 5.35, 4.79.2.159. Tagged as 'Kernel-5_35-4_79_2_159'
      c671badb
  24. 02 Jul, 2012 1 commit
  25. 01 Jul, 2012 1 commit
    • Robert Sprowson's avatar
      Sort out SetBorder · fe354937
      Robert Sprowson authored
      NewReset.s:
      The one remaining use of SetBorder was to denote the user asked for and got a CMOS reset, which in the HAL case emitted a warning because setting the border is potentially complicated/slow.
      To solve this, the reset is noted and replaces the normal RISC OS banner with a warning message. The behaviour and text for this comes from the BBC Master, though the escape key is used in place of break since a reset isn't actually needed.
      Moved the unused cputable inside its corresponding switch.
      Two occurrences of WriteS_Translated would have executed the message in the V=1 case.
      KernelWS/Resources:
      Flag added to workspace, translation added to messages files.
      Heapman.s:
      Commented out use of SetBorder removed.
      Kernel.s:
      SetBorder macro removed.
      Middle.s:
      Switched out use of SetBorder removed.
      Super1.s:
      Conditional WriteS_Translated would try to execute the message in the opposite condition case.
      
      
      Version 5.35, 4.79.2.157. Tagged as 'Kernel-5_35-4_79_2_157'
      fe354937
  26. 21 Jun, 2012 1 commit
    • Robert Sprowson's avatar
      Fix failure to boot with exactly 16MB of RAM · a790a6c2
      Robert Sprowson authored
      With no VRAM, in Kernerl.s.HAL line 370, the less than 16M case sets aside half the RAM as available for video (more than, it uses no more than 32M) but the exactly equals 16M case set aside none.
      Add some exports to hdr.HALEntries to define the subreasons to OS_Hardware.
      
      Version 5.35, 4.79.2.154. Tagged as 'Kernel-5_35-4_79_2_154'
      a790a6c2
  27. 18 Jun, 2012 1 commit
    • Robert Sprowson's avatar
      Make OS_Memory 8 return more correct values · b6cfcbdf
      Robert Sprowson authored
      The only fake result now is the hard ROM amount, which is hardwired to 4MB and might not be correct.
      Unrelated changes
       hdr.HALDevice: Assign a device for VIDC20.
       hdr.KernelWS: Reorder into ascending order, remove legacy addresses.
       s.ARM600: Move PhysSpaceSize inside :LNOT:HAL switch.
       s.Kernel: Move PhysSpaceSize inside :LNOT:HAL switch.
      
      Version 5.35, 4.79.2.153. Tagged as 'Kernel-5_35-4_79_2_153'
      b6cfcbdf
  28. 04 Jun, 2012 2 commits
    • Jeffrey Lee's avatar
      Bring Hdr/HALEntries in line with HAL branch · 2b1cad9c
      Jeffrey Lee authored
      Detail:
        Hdr/HALEntries - Added HAL_UARTDefault entry, as per HAL branch
      Admin:
        Untested
      
      
      Version 5.35, 4.79.2.147.2.9. Tagged as 'Kernel-5_35-4_79_2_147_2_9'
      2b1cad9c
    • Jeffrey Lee's avatar
      Add new HAL entry, HAL_UARTDefault. Make use of Hdr:SerialOp & OS_SerialOp 10. · 5519f1d8
      Jeffrey Lee authored
      Detail:
        hdr/HALEntries - Brought in line with RPi branch, plus addition of new HAL_UARTDefault HAL entry, to allow DualSerial to determine which (if any) of the HAL UARTs should be the default UART accessed via OS_SerialOp
        s/GetAll - Add GET of Hdr:SerialOp
        s/PMF/osbyte - Use OS_SerialOp 10 when constructing filename to open for OS_Byte 2
      Admin:
        Tested in OMAP3, Tungsten ROMs
      
      
      Version 5.35, 4.79.2.152. Tagged as 'Kernel-5_35-4_79_2_152'
      5519f1d8
  29. 26 May, 2012 1 commit
    • Robert Sprowson's avatar
      Adoption of *CONFIGURE/STATUS CACHE commands · ef95917b
      Robert Sprowson authored
      The kernel already looks after all other aspects of the ARM CPU, so can look after the cache control command too.
       HelpStrs.s:New tokens for help and syntax
       CmdHelp.s:UK help and syntax
       Arthur3.s:Tables updates for *CONFIGURE/STATUS, lined some stuff up, default error text sync'd with Hdr:NewErrors
       MoreComms.s:Parsing and doing of *CACHE
       Utility.s:Hashing table updated for *CACHE
      Other minor changes
       hdr/Options:Bring 'MosVer' into the private header
       hdr/RISCOS:aasm aliases for SP removed, MainVars and MosVer made private, added definition of the start of application space
       HeapMan.s:Use of GRAB changed to Pull
       Offset of TutuCMOS changed for more informative PrintSoundCMOS
       PMF/osbyte.s:Use OsBytes header file in place of MainVars
      
      Version 5.35, 4.79.2.151. Tagged as 'Kernel-5_35-4_79_2_151'
      ef95917b
  30. 23 May, 2012 1 commit
    • Ben Avison's avatar
      Refinement to Timer clear change from a recent commit · 250f852b
      Ben Avison authored
      Detail:
        An undocumented entry condition of TickOne is that r0 contains the device
        number corresponding to Timer0. This must be passed to HAL_IRQClear on
        some platforms.
      Admin:
        Tested only on a Raspberry Pi. Also added enumeration of entry numbers in
        comments in Hdr:HALEntries - a handy reference when debugging from the
        command line!
      
      Version 5.35, 4.79.2.147.2.8. Tagged as 'Kernel-5_35-4_79_2_147_2_8'
      250f852b
  31. 21 May, 2012 1 commit
    • Robert Sprowson's avatar
      Make Mike's macros permanent. · 2c9aad90
      Robert Sprowson authored
      While the HAL and kernel were being split some temporary macros were used for the bits being worked on, after 12 years of use they're probably safe to adopt.
      mjsCallHAL -> CallHAL; mjsAddressHAL -> AddressHAL; mjsHAL -> HAL.
      OS_VIDCDividerSWI code now always does NoSuchSWI (had been switched out previously).
      File vduhint.s no longer assembled (was empty).
      
      
      Version 5.35, 4.79.2.150. Tagged as 'Kernel-5_35-4_79_2_150'
      2c9aad90
  32. 20 May, 2012 1 commit
    • John Ballance's avatar
      Changes to resolve some of the BCM2835 initial hacks · f549c0ff
      John Ballance authored
        1: Added HAL_FramebufferAddress entry.
        2: Minor mod the NoIrqVecSwiDispatch mods recently submitted. Improved coverage
        3: Added compile time switch InverseTextTransparency to toggle sense of text
        (pre-wimp) for use until correct transparency behaviour is introduced in the RPi
        start.elf.
        4: Ensured that if a non aligned frame buffer is reported, ALL of the space
        is actually mapped in.
      Detail:
        (list files and functions that have changed)
      Admin:
        builds and runs .. Still needs service_mode extension work to replace hard
        coded mode definition files
        (highlight level of testing that has taken place)
        (bugfix number if appropriate)
      
      
      Version 5.35, 4.79.2.147.2.5. Tagged as 'Kernel-5_35-4_79_2_147_2_5'
      f549c0ff
  33. 08 Apr, 2012 1 commit
  34. 25 Feb, 2012 1 commit
    • Jeffrey Lee's avatar
      Add compressed ROM support. Make more use of ARMv5+ instructions. Other misc tweaks. · 538f3c24
      Jeffrey Lee authored
      Detail:
        hdr/OSEntries, s/HAL, s/Kernel - Add compressed ROM support.
        With the current scheme, a compressed ROM will have everything except the HAL and kernel compressed.
        During the keyboard scan period the kernel will allocate some temporary decompression workspace and call the decompression stub that was appended to the ROM.
        The decompression stub is expected to perform in-place decompression of the ROM. Once decompression is complete the workspace will be freed and the page tables updated to make the ROM image readonly.
        It's the HAL's responsibility to make sure any compressed ROM is located in an area of physically contiguous RAM large enough to hold the uncompressed image.
        More info here: http://www.riscosopen.org/wiki/documentation/show/Compressed%20ROMs
        Makefile, h/OSEntries - Add C export of hdr/OSEntries
        hdr/HALDevice - Add device ID for Tungsten video device. Convert tabs to spaces for consistency.
        hdr/HALEntries, s/NewReset - Moved KbdFlag_* definitions to hdr/HALEntries so HALs can use them in their keyboard scan code
        s/ArthurSWIs, S/HAL, s/HeapSort, s/Kernel, s/MemInfo, s/Middle, s/NewIRQs, s/TickEvents, s/vdu/vdugrafb - Make use of BLX, BFI and long multiplies if the CPU supports them. Don't support SWI calls from thumb mode if the CPU doesn't support thumb.
        s/HAL - Made the LDMIA in Init_MapInRAM more sensible (register order was backwards). The old code did work, but wasn't doing what the comments described. Removed unused/unfinished HAL_Write0 function. Improve RISCOS_LogToPhys to check L1PT for any section mappings if the logical_to_physical call fails
        s/ModHand - Save one instruction by using ADR instead of MOV+ADD to compute lr
        s/NewReset, s/PMF/key - Pass L1PT to HAL_Reset to allow machines without hardware reset (e.g. IOMD) to perform resets by manually disabling the MMU and restarting the ROM
        s/vdu/vdudriver, s/vdu/vdugrafv - Use GVEntry macro borrowed from NVidia module for setting up the GraphicsV jump table. Make GraphicsV_ReadPaletteEntry call HAL_Video_ReadPaletteEntry if left unclaimed. Fixup GV_Render to only call HAL_Video_Render if the HAL call is implemented.
      Admin:
        Tested with OMAP3, IOMD & Tungsten ROMs/softloads.
      
      
      Version 5.35, 4.79.2.138. Tagged as 'Kernel-5_35-4_79_2_138'
      538f3c24
  35. 05 Jan, 2012 1 commit
  36. 10 Dec, 2011 1 commit
    • Jeffrey Lee's avatar
      Improve heap manager. Add heap testbed. Add dummy implementation of some... · 4a30b643
      Jeffrey Lee authored
      Improve heap manager. Add heap testbed. Add dummy implementation of some OS_ScreenMode reason codes.
      
      Detail:
        s/HeapMan, hdr/KernelWS - Heap manager improvements:
          - Errors generated by interrupted heap operations that are forced to complete by a OS_Heap call from the background are now cached in kernel workspace until the foreground task is resumed. This prevents them from being potentially overwritten by MessageTrans running out of background error buffers.
          - Added new OS_Heap reason code, #7 - Get area aligned. This allows areas of memory to be allocated at specific (power-of-2) alignments, and optionally without crossing a given (power-of-2) boundary. Alignment & boundary calculations are performed using logical addresses.
          - Removed the limitation that all free and allocated blocks must be a multiple of 8 bytes in length. This change was required in order to allow OS_Heap 7 to function correctly. Now the only requirements are that blocks must be multiples of 4 bytes in length, at 4 byte alignment, with a minimum length of 8 bytes. 4 extra padding bytes may still be added to the end of allocations in order to avoid creating 4-byte free blocks.
        s/HeapMan, TestSrc/HeapTest/Makefile, TestSrc/HeapTest/c/testbed, TestSrc/HeapTest/s/asm - Added heap testbed program. Can either use the OS_Heap SWI or directly include a copy of the Kernel's heap manager sources.
        s/vdudecl, s/vduswis - Added dummy implementations of OS_ScreenMode 4, 5 and 6. This prevents the Wimp generating lots of "Unknown OS_ScreenMode reason code" errors when redrawing the screen.
        s/Arthur3, s/Oscli - Moved dotstring closer to where it's used to avoid "ADRL out of range" errors in Tungsten build
      Admin:
        Tested in OMAP3 ROM & Tungsten ROM softload.
        Heap testbed successfully performed over 400 million heap ops, so there shouldn't be any serious bugs in the new code (touch wood)
      
      
      Version 5.35, 4.79.2.128. Tagged as 'Kernel-5_35-4_79_2_128'
      4a30b643
  37. 27 Nov, 2011 1 commit
    • Robert Sprowson's avatar
      Rationalise some old switches. · 189b92c1
      Robert Sprowson authored
      Export less in hdr:RISCOS.
      Delete unused GetDecimalPair routine.
      Move CheckYear with other RTC stuff out of PMF/osword.
      Hide DebugROMInit and DebugROMErrors in release (even numbered) versions.
      
      Version 5.35, 4.79.2.127. Tagged as 'Kernel-5_35-4_79_2_127'
      189b92c1