RISC OS Open
A fast and easily customised operating system for ARM devices
ROOL
Home | News | Software | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account

OS_UpCall

Programmer's Reference Manuals
» Part 15 – SWI Calls
» OS
» OS_UpCall

OS_UpCall

(SWI &33)
Entry
R0 Reason code
All other registers dependent on reason code
Exit
R0 Preserved
All other registers dependent on reason code

Use

The purpose of this call is to call the vector UpCallV, to warn of particular conditions.

Notes

The action performed depends on the reason code value in R0.

This SWI calls the vector UpCallV. To use UpCalls, you must either claim the vector and install a routine on it, or install an UpCall handler.

They are called UpCalls because they are calls that RISC OS makes up to an application makes down to RISC OS. They generally occur in the foreground, and are hence different to Events, which occur in the background.

Routines that handle UpCalls must only call the error-returning SWI calls. That is SWI calls that have their X bit set. i.e. either add the value &20000 to the SWI number, or add the letter ‘X’ in front of the SWI name

If a routine installed on the vector deals with the situation it should intercept the call to the vector, as there is no longer any point informing any other routines or the UpCall handler of the situation. If it can’t deal with the situation it must pass the call on, as another one may be able to do so.

Reason Codes

# Hex # Action
1 &01 Media not present
2 &02 Media not known
3 &03 Miscellaneous file changed information
4 &04 Media search end
6 &06 Taskwindow sleep
7 &07 PipeFS sleep no more
8 &08 Buffer filling
9 &09 Buffer emptying
10 &0A DeviceFS stream created
11 &0B DeviceFS stream closed
12 &0C Freeway
15 &0F Device receive data present
16 &10 Device threshold above
17 &11 Device threshold below
19 &13 Media search end with message
20 &14 Keyboard status change
23 &17 PDumper action
256 &100 New application
257 &101 Move memory request

See also

  • Software Vector Numbers
  • UpCallV
Revised on January 29, 2010 20:55:59 by Alan Robertson (52)? (127.0.0.1)
Edit | Back in time (2 revisions) | See changes | History | Views: Print | Source | Linked from: TaskManager Shutdown Types, *ChangeDynamicArea, OS SWI Calls, Software Vector Numbers, OS_UpCall 1, OS_UpCall 2, OS_UpCall 3, OS_UpCall 4, OS_UpCall 6, OS_UpCall 7, OS_UpCall 8, OS_UpCall 9, OS_UpCall 10, OS_UpCall 11, OS_UpCall 15, OS_UpCall 16, OS_UpCall 17, OS_UpCall 19, OS_UpCall 256, OS_UpCall 257, Internal Communications Introduction

Search the Wiki

Commercial use

For commercial enquiries, please contact the owners of RISC OS, Castle Technology Ltd.

ROOL Store

The official C/C++ Development kit and more here.

Donate! Why?

Help ROOL make things happen – please consider donating!

Navigation

  • Home Page
  • All Pages
  • Recently Revised
  • Authors
  • Feeds
Site design © RISC OS Open Limited 2011 except where indicated
The RISC OS Open Instiki theme is based on Insitki's default layout

Valid XHTML 1.0  |  Valid CSS

Instiki 0.19.1(MML+)
This site runs on Rails

Hosted by Arachsys