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

Internal Communications

Programmer's Reference Manuals
» Internal Communications

Like all Operating Systems, RISC OS must pass information from one part of the system to another. Internal communication is achieved using SWIs in five categories:

  • Vectors
  • Service Calls
  • Window Manager
  • CallBacks
  • UpCalls

Vectors

The OS_CallAVector SWI is used to call the routine(s) on a software vector. More information can be found in the Software Vectors section.

Service calls

The OS_ServiceCall SWI is used to pass a service around modules. It is the responsibility of a module if it wishes to provide the service or pass the call on to other modules. More information can be found in the Modules section.

Window Manager

The Window Manager is used to communicate with applications that run within the window environment. The full list of Wimp SWI calls are provided here.

CallBacks

CallBacks are routines that are to be called at a later date via a function pointer (address). There are two types:

  • Transient: These routines are called only once and may be called when RISC OS is threaded, but idle. The OS_AddCallBack SWI is used to set up transient callbacks
  • Non-Transient: The OS_SetCallBack SWI is used to set up non-transient callbacks. They are handled by the CallBack handler, and the default one can be replaced by OS_ChangeEnvironment

UpCalls

Used by the OS to notify applications of particular situations. The OS_UpCall SWI performs many different operations (different reason codes). 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

See also

  • Introduction to SWIs
  • OS_AddCallBack
  • OS_CallAVector
  • OS_SetCallBack
  • OS_ServiceCall
  • OS_UpCall
  • Wimp SWIs
Revised on January 9, 2014 11:04:18 by Chris (121)? (62.30.208.154)
Edit | Back in time (2 revisions) | See changes | History | Views: Print | Source | Linked from: Programmer's Reference Manuals

Search the Wiki

Social

Follow us on and

ROOL Store

Buy RISC OS Open merchandise here, including SD cards for Raspberry Pi and more.

Donate! Why?

Help ROOL make things happen – please consider donating!

RISC OS IPR

RISC OS is an Open Source operating system owned by RISC OS Developments Ltd and licensed primarily under the Apache 2.0 license.

Navigation

  • Home Page
  • All Pages
  • Recently Revised
  • Authors
  • Feeds
Site design © RISC OS Open Limited 2018 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