Commit 5e89ff87 authored by Ben Avison's avatar Ben Avison
Browse files

Change to calling conditions of UnthreadV.

Detail:
  Previously, UnthreadV was only called when the IRQsema chain was empty, the
  link for the just-completed interrupt having just been removed. However,
  the information in the link is necessary to allow OS_Heap to be called from
  UnthreadV context, and patching up IRQsema within the UnthreadV handler
  prevents the implementation of a prioritised threading scheme. As a result,
  we must call UnthreadV every time the interrupt dispatch unthreads, and
  leave it up to the UnthreadV handler to distinguish between return to
  thread context and return from a nested interrupt handler.
Admin:
  Will require some sort of patch to enable heap-safe prioritised threading
  on RISC OS-STB 5.0.0 or RISC OS 5.07, the only two released OSes with the
  previous UnthreadV behaviour.

Version 5.35, 4.79.2.77. Tagged as 'Kernel-5_35-4_79_2_77'
parent 4cfe2716
;
; This file is automatically maintained by srccommit, do not edit manually.
; Last processed by srccommit version: 1.68.
; Last processed by srccommit version: 1.2.
;
GBLS Module_MajorVersion
GBLA Module_Version
......@@ -13,11 +13,11 @@
GBLS Module_ComponentPath
Module_MajorVersion SETS "5.35"
Module_Version SETA 535
Module_MinorVersion SETS "4.79.2.76"
Module_Date SETS "08 Sep 2004"
Module_ApplicationDate SETS "08-Sep-04"
Module_MinorVersion SETS "4.79.2.77"
Module_Date SETS "06 Oct 2004"
Module_ApplicationDate SETS "06-Oct-04"
Module_ComponentName SETS "Kernel"
Module_ComponentPath SETS "RiscOS/Sources/Kernel"
Module_FullVersion SETS "5.35 (4.79.2.76)"
Module_HelpVersion SETS "5.35 (08 Sep 2004) 4.79.2.76"
Module_FullVersion SETS "5.35 (4.79.2.77)"
Module_HelpVersion SETS "5.35 (06 Oct 2004) 4.79.2.77"
END
/* (5.35)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.68.
* Last processed by srccommit version: 1.2.
*
*/
#define Module_MajorVersion_CMHG 5.35
#define Module_MinorVersion_CMHG 4.79.2.76
#define Module_Date_CMHG 08 Sep 2004
#define Module_MinorVersion_CMHG 4.79.2.77
#define Module_Date_CMHG 06 Oct 2004
#define Module_MajorVersion "5.35"
#define Module_Version 535
#define Module_MinorVersion "4.79.2.76"
#define Module_Date "08 Sep 2004"
#define Module_MinorVersion "4.79.2.77"
#define Module_Date "06 Oct 2004"
#define Module_ApplicationDate "08-Sep-04"
#define Module_ApplicationDate "06-Oct-04"
#define Module_ComponentName "Kernel"
#define Module_ComponentPath "RiscOS/Sources/Kernel"
#define Module_FullVersion "5.35 (4.79.2.76)"
#define Module_HelpVersion "5.35 (08 Sep 2004) 4.79.2.76"
#define Module_FullVersion "5.35 (4.79.2.77)"
#define Module_HelpVersion "5.35 (06 Oct 2004) 4.79.2.77"
#define Module_LibraryVersionInfo "5:35"
......@@ -59,17 +59,14 @@ Initial_IRQ_Code ROUT
; BNE somebodysonIRQ1V
; .... fall into default IRQ1V code
MOV r11, #0
Pull r0
STR r0, [r11, #IRQsema]
TEQ r0, #0
BNE %F10
Push "r10"
MOV r10, #UnthreadV
BL CallVector
Pull "r10"
10
MOV r11, #0
Pull r0
STR r0, [r11, #IRQsema]
[ :LNOT:No26bitCode
MRS r0, CPSR
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment