Improve heap manager. Add heap testbed. Add dummy implementation of some...
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
Name Last commit Last update
Dev Improve heap manager. Add heap testbed. Add dummy implementation of some OS_ScreenMode reason codes.
Doc Kernel merged
Docs Merge over some changes from the Cortex branch
NewModes Import from cleaned 360 CD
Resources/UK Added 'UnConv' error (see also HdrSrc).
TestSrc * Converted to building with ObjAsm (but still a single object file using ORG).
h Bring HAL branch of hdr/HALDevice, h/HALDevice in line with Cortex branch
hdr Improve heap manager. Add heap testbed. Add dummy implementation of some OS_ScreenMode reason codes.
o Clean reimport of hdr.RISCOS (real commit date 2008-03-28 by bavison), without any of the 3rd party allocations.
rm Clean reimport of hdr.RISCOS (real commit date 2008-03-28 by bavison), without any of the 3rd party allocations.
s Improve heap manager. Add heap testbed. Add dummy implementation of some OS_ScreenMode reason codes.
.gitattributes Added 'UnConv' error (see also HdrSrc).
BlackLog Initial revision
Changes Import from cleaned 360 CD
HelpStrs 32-bit Kernel.
LICENSE Clean reimport of hdr.RISCOS (real commit date 2008-03-28 by bavison), without any of the 3rd party allocations.
Makefile Conversions rationalisation.
MkClean,fd7 Mostly device stuff.
MkExport,fd7 Import from cleaned 360 CD
MkRom,fd7 partial video changes for kernel/HAL split near-HAL code for VIDC/IOMD in vdu.vduhint briefly tested in Ursula desktop build still some kernel workspace dependency in near-HAL code
MkRomInst,fd7 32-bit Kernel.
Version Reindent Arthur2.
VersionASM Improve heap manager. Add heap testbed. Add dummy implementation of some OS_ScreenMode reason codes.
VersionNum Improve heap manager. Add heap testbed. Add dummy implementation of some OS_ScreenMode reason codes.