Showing changes from revision #1 to #2:
Added | Removed | Changed
Entry | |
---|---|
R0 | Pointer to |
R1 | SWI number to call to vet disc format (e.g. ADFS_VetFormat) |
R2 | Paramter in R1 to use when calling SWI |
R3 | Format specifier |
Exit | |
---|---|
R0 | Preserved |
R1 | Preserved |
R2 | Preserved |
R3 | Preserved |
The purpose host of controller calls this call is to fill in a disc format structure with paramters for the specified format.SWI to inform the USBDriver that an interrupt occurred on the given bus.
This The call host fills controller’s in interrupt handler should determine the disc cause, format quickly structure acknowledge pointed to by R0 with the ‘perfect’ interrupt parameters in for the specified controller format, hardware, taking then no call account of the abilities of the available hardware that will have to perform the format. Once filled in, thisSWI . calls the vettingSWI to check the format structure for achievability on the available hardware. The vetting SWI may generate an error if the format differs widely from what can be achieved; alternatively it may alter the format structure to the closest match that can be achieved. The vetting SWI then returns to this SWI, which checks whether the format block – as updated by the vetting SWI – is still an adequate match for the desired format. If it is, this SWI returns to its caller; otherwise it generates an error.
USBDriver will subsequently call the soft interrupt entry point for that bus to decode the interrupt cause completely, such as handling error conditions or determining which transaction completed. The use of this intermediate SWI (as opposed to the HC calling itself directly) allows USBDriver to keep bus use statistics and optionally defer work to another lower-than-interrupt priority if it is likely to take a long time or the overall system is busy.