Simtec USB stack

Ben Dooks

Vincent Sanders

Thomas Milius

Gareth Simpson

  • RISC OS™ is a trademark of Pace Micro Technology PLC.

  • All other trademarks are acknowledged.

While every precaution has been taken in the preparation of this set of books, the publisher assumes no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.

Revision History
Revision 1.305th September 2002VRS

Release reference set, built for release.

Revision 1.206th August 2002VRS

Release candidate 2 set.

Reference, SWI API and C API books have been updated


Table of Contents

RISC OS USB Device Drivers
1. Overview
2. Driver Writing HOWTO
2.1. Introduction
2.2. Driver types
2.3. Application Drivers
3. Driver Initialisation
3.1. Identifying an USB Device
3.2. Finding appropriate device driver
3.3. Module Device Drivers
3.3.1. Using the new device message
3.3.2. Module finalisation
3.4. Driver started by USB system
3.4.1. Format of the command string
3.5. Unclaimed Devices
3.5.1. Finding and using unclaimed devices
3.6. Returning devices after use
4. Endpoints and Pipes
4.1. Introduction
4.2. Endpoints
4.2.1. Control Endpoint
4.3. Pipes
4.3.1. Control pipes
5. USB Message System
5.1. Introduction
5.2. Sending Messages
5.3. Receiving Messages
5.4. Service Calls Replaced
5.5. Message Memory Layout
6. Data Buffers
6.1. Introduction
6.2. URB Management
6.3. URB Usage
6.4. Fields in a URB
7. Waiting
7.1. Introduction
7.2. Usage
7.3. Waiting Modes
7.3.1. Return
7.3.2. Blocking
7.3.3. Wimp Poll
7.3.4. Wimp Message
7.3.5. SWI
7.3.6. APCS
8. Transactions
8.1. Introduction
8.2. Starting a Transaction
8.2.1. Control transactions
8.3. Checking a transactions progress
8.4. Transaction Completion
8.4.1. Transaction Result Codes
9. Old Documentation
9.1. USB transfer requests
9.2. Other functions
A. Constants
A.1. Error Codes
A.2. Transaction constants
A.3. Devices
A.4. Object References
A.5. Waiting
A.6. URBs
B. Service Calls
C. Commands
C.1. Core Commands
C.2. Hub Commands
C.3. Host controller commands
C.4. Utility Commands
D. USB Messaging System Messages
D.1. Hub Message Class
D.2. Power Capacity Class
D.3. New Device Class
D.4. Configuration Class
D.5. Claim Interface Class
D.6. Pipe Class
D.7. Capacity Class
D.8. Controller Message Class
D.9. Log control Class
E. Development FAQ
RISC OS USB SWI API
1. Overview
1.1. Introduction
2. Core SWI Calls
3. Library SWI Calls
3.1. Introduction
3.2. Notes on reference counts
3.3. Reference management SWIs
3.4. Waiting Support SWIs
3.5. Transaction SWIs
3.6. Device management SWIs
3.7. Library SWIs
3.8. URB SWIs
RISC OS USB C API
1. Overview
1.1. Introduction
1.2. Initialization
1.3. Support Functions
1.4. Includes
1.5. Linking
2. usb/sys
2.1. ccall.h
2.2. errors.h
2.3. memory.h
2.4. events.h
2.5. fastacc.h
2.6. usb-defs.h
2.7. waiting.h
3. usb/lib
3.1. data-fast.h
3.2. data.h
3.3. dev-utils.h
3.4. lib.h
3.5. pipe-utils.h
3.6. log.h
3.7. time.h
3.8. devmgr.h
3.9. decode.h
3.10. ctrlmsg.h
3.11. selectif.h
3.12. getnewdev.h
3.13. parsecmd.h
4. usb/
4.1. buffer.h
4.2. controller.h
4.3. defs.h
4.4. events.h
4.5. list.h
4.6. msg.h
4.7. pipe.h
4.8. reference.h
4.9. request.h
4.10. semaphor.h
4.11. sortmatr.h
4.12. structs.h
4.13. transaction.h
4.14. waiting.h
4.15. endpoint.h
4.16. slist.h