PsiFS: SWI Calls

PsiFS_Register

PsiFS_Register
(SWI &520C0)
Register a client to be informed of changes

On entry:R0 =pointer to control-character terminated name of the client
R1 =mask specifying changes of interest

On exit:R0 =pointer to the pollword for this client

Interrupts:Interrupt status is undefined
Fast interrupts are enabled

Processor mode:Processor is in SVC mode

Re-entrancy:SWI is not re-entrant

Use: This call registers a client to be informed of changes in the status of the PsiFS module or filing system.

The changes of interest are specified by setting bits in the mask passed in R1:
BitChanges reported when set
0mode of operation
1serial block driver configuration
2 ~ 3must be 0
4number of bytes or frames transmitted or received
5 ~ 7must be 0
8remote link configuration
9remote link connection status
10remote drive details
11must be 0
12asynchronous operation completed
13asynchronous operation status
14 ~ 15must be 0
16printer mirror configuration
17 ~ 19must be 0
20file transfer intercept status
21 ~ 31must be 0

The returned pollword is suitable for passing to Wimp_Poll. It should also be passed to PsiFS_Unregister to unregister the client. PsiFS will set the pollword to a non-zero value whenever there is any relevant change in status. It is the responsibility of the client task to clear the pollword back to zero and to discover what has changed.

The recommended sequence of events is:

  1. Wait for the pollword to become non-zero, e.g. by calling Wimp_Poll.
  2. Clear the pollword back to zero.
  3. Check for changes to any options of interest by calling PsiFS_Get and PsiFS_InterceptPoll.

Related SWIs:PsiFS_Unregister, PsiFS_Get, PsiFS_InterceptClaim, PsiFS_InterceptPoll, Wimp_Poll

Related vectors:None

[Contents] [Up] Copyright © Alexander Thoukydides, 1998, 1999, 2000