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

Internal Communications Introduction

Programmer's Reference Manuals
» Part 1 - Introduction
» Internal Communications
» Introduction

Overview

RISC OS is no different to other Operating Systems, in the sense that it must pass information from one part of the system to another. RISC OS achieves this critical process of internal communication by using specific SWI Calls.

The SWI calls used can be divided into four discrete 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 on 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
  • SWI X bit
  • Wimp SWIs
Revised on January 29, 2010 20:50:16 by Alan Robertson (52)? (127.0.0.1)
Edit | Back in time (1 revision) | See changes | History | Views: Print | Source | Linked from: Internal Communications

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