Options 3.6 KB
Newer Older
Neil Turton's avatar
Neil Turton committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
; Copyright 1996 Acorn Computers Ltd
;
; Licensed under the Apache License, Version 2.0 (the "License");
; you may not use this file except in compliance with the License.
; You may obtain a copy of the License at
;
;     http://www.apache.org/licenses/LICENSE-2.0
;
; Unless required by applicable law or agreed to in writing, software
; distributed under the License is distributed on an "AS IS" BASIS,
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; See the License for the specific language governing permissions and
; limitations under the License.
;

16 17
; > s.Options

Neil Turton's avatar
Neil Turton committed
18 19 20
AMBMagicNodeID     * &4E424D41        ;"AMBN"

AMBInitialMaxNodes * 256
21
AMBGrowMaxNodes    * 64               ;not used now AMBControl is in kernel
Neil Turton's avatar
Neil Turton committed
22 23 24 25 26 27 28 29 30 31 32 33 34 35


;Bin pages by physical address, for quick mapping from page number to
;physical address. Bin entry holds physical address of first page in bin.
;Bin size must be no bigger than minimum physical RAM fragment to be found
;in machine. eg. 512k size gives 128 pages in a bin, so shift of 7 and
;mask of &7F. Max practical bin size is 1M (mask must be immediate constant).
;
AMBPhysBinShift    * 7
AMBPhysBinMask     * &7F


ApplicationStart  * (32*1024)

36
AbsMaxAppSize     * AplWorkMaxSize                   ;application space limit for RISC OS
37
AbsMaxAppPages    * (AbsMaxAppSize:SHR:Log2PageSize) ;and same limit expressed in Pages
Neil Turton's avatar
Neil Turton committed
38

39 40 41 42 43
  [ ChocolateAMB
AMBMIRegWords      * (AbsMaxAppPages+31) :SHR: 5     ;no. of words for AMBMappedInRegister
                                                     ;convenient to set this at fixed max size
                                                     ;(only 896 bytes for 28Mb AppSpace)
  ]
Neil Turton's avatar
Neil Turton committed
44

45 46 47
;whether to check handles given to AMBControl - not very useful when in kernel
;
                    GBLL    ValidateAMBHandles
Neil Turton's avatar
Neil Turton committed
48 49 50
ValidateAMBHandles  SETL    {FALSE}


51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
;performance enhancements originally introduced for Ursula OS
;
; ChocolateAMB       - if {FALSE}, disables all AMBControl crazy chocolate flavour enhancements
;
; AMB_LazyMapIn      - if {TRUE}, individual pages of a swapped-in task are only mapped in when
;                      necessary (happens via abort mechanism). This typically makes the swapping
;                      cost much lower and much less sensitive to large slot size. The worst case
;                      swapping cost is still good (abort mechanism cost is very small).
;                      Probably only worth supporting this on ARMs with simple instruction restart
;                      after abort (originally StrongARM revT or later for Ursula)
;
; AMB_LimpidFreePool - if {TRUE}, the cache(s) can be assumed to be clear with respect to the FreePool
;                      when AMBControl fetches pages from it. This allows AMBControl to avoid any
;                      cache clean/flush for moving pages out of the FreePool. This assumption is
;                      valid if either: FreePool pages are uncacheable; or FreePool pages are
;                      never used in situ; or FreePool pages are flushed after use in situ.
;
; AMB_ChocTrace      - if {TRUE}, keep trace info for some enhanced code calls and data (probably development only)

                    GBLL    AMB_LazyMapIn
                    GBLL    AMB_LimpidFreePool
                    GBLL    AMB_ChocTrace

AMB_LazyMapIn       SETL    {TRUE}  :LAND: ChocolateAMB
AMB_LimpidFreePool  SETL    {TRUE}  :LAND: ChocolateAMB   ;allowed because FreePool is currently marked uncacheable
                                                          ;current implementation assumes uncacheability as criterion

AMB_ChocTrace       SETL    {FALSE} :LAND: ChocolateAMB   ;development only

Neil Turton's avatar
Neil Turton committed
80
       END