Showing changes from revision #0 to #1:
Added | Removed | Changed
Entry | |
---|---|
R0 | 5 (Dynamic Area handler reason) |
R1 | AbortTrap reason code + flags |
R2 | Pointer to buffer to use as data source (AbortTrap reason 0) or destination (AbortTrap reason 1). Invalid for memmap requests (AbortTrap reason 2). |
R3 | Base address of memory being accessed |
R4 | Length of memory being accessed (bytes) |
R5 | Current end address of allocated portion of dynamic area (invalid for sparse or PMP areas) |
R12 | Workspace pointer passed to OS_DynamicArea 0 or base of area |
Exit | |
---|---|
R4 | Amount of data processed (= entry R4 if all processed) |
- | All other registers preserved |
The purpose of this call is to allow dynamic areas to respond to AbortTrap requests. R1-R4 are equivalent to the AbortTrap handler R0-R3, and the Dynamic Area handler is expected to fulfil the request in the same way as an AbortTrap handler would.
If the handler returns an error, it will be passed back to the OS as the result of the AbortTrap handler call. This means that handlers can raise serious errors in the same way as normal AbortTrap handlers.
If the handler returns the “default error” (V set and R0=0), behaviour will be as if a non-serious error had been returned.
If the handler doesn’t return an error, but R4 indicates that the request wasn’t fully handled, then a non-serious error will be returned to the AbortTrap system.