Filter manager SWIs:
Filter_RegisterPreFilter
Add a new pre filter to the list of pre filters.
Entry:
R0 - Pointer to 0 terminated filter name.
R1 - Addresss of filter.
R2 - Value to be passed in R12.
R3 - Task handle of task to which filter is applied.
or 0 for all tasks.
Exit:
Registers preserved.
The address pointed to by R1 will be called whenever the task who's
handle is passed in R3 calls Wimp_Poll with R12 equal to the value of R2
when this SWI is called.
The routine pointed to by R1 will be called with:
R0 = Event mask as passed to Wimp_Poll
R1 -> Event block as passed to Wimp_Poll
R2 = Task handle of task that called Wimp_Poll.
On Exit:
It may clear bits in r0 to provide a new event mask.
It must preserve all other registers.
Filter_RegisterPostFilter
Add a new post filter to the list of post filters.
Entry:
R0 - Pointer to 0 terminated filter name.
R1 - Addresss of filter.
R2 - Value to be passed in R12.
R3 - Task handle of task to which filter is applied.
or 0 for all tasks.
R4 - Event mask ( 1 bit masks the event out as for Wimp_Poll).
Exit:
Registers preserved.
The address pointed to by R1 will be called whenever the Wimp is
about to return to the task who's handle is passed in R3 from Wimp_Poll with
R12 equal to the value of R2 when this SWI is called.
On entry to the routine pointed to by R1:
R0 - Event reason code (as from Wimp Poll)
R1 -> User's event buffer.
R2 = Task handle for task to which the return is made.
Task paged in.
On Exit:
The routine may modify the reason code in r0 and the contents of the
buffer pointed to by R1 to provide a new event.
It must preserve R1 and R2.
Filter_DeRegisterPreFilter
Remove a pre filter from the list of pre filters.
Entry:
R0 - Pointer to 0 terminated filter name.
R1 - Addresss of filter.
R2 - Value to be passed in R12.
R3 - Task handle of task to which filter was applied.
All must be the same as those passed to RegisterPreFilter
Exit:
Registers preserved.
Filter de-registered.
Filter_DeRegisterPostFilter
Remove a pre filter from the list of pre filters.
Entry:
R0 - Pointer to 0 terminated filter name.
R1 - Addresss of filter.
R2 - Value to be passed in R12.
R3 - Task handle of task to which filter was applied.
All must be the same as those passed to RegisterPreFilter
Exit:
Registers preserved.
Filter de-registered.