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.206th August 2002VRS

Release candidate 2 set.

Reference, SWI API and C API books have been updated

Revision 1.2127th September 2002VRS

Release set.

Reference, SWI API and C API books have been updated

Revision 1.5526th September 2003VRS

Reference, SWI API and C API books have been updated


Table of Contents

RISC OS USB - User Guide
1. Introduction
2. USB Technology
3. Overview in use
4. Other Sources of information
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. Data Buffers
5.1. Introduction
5.2. URB Management
5.3. URB Usage
5.4. Fields in a URB
6. Waiting
6.1. Introduction
6.2. Usage
6.3. Waiting Modes
6.3.1. Return
6.3.2. Blocking
6.3.3. Wimp Poll
6.3.4. Wimp Message
6.3.5. SWI
6.3.6. APCS
7. Transactions
7.1. Introduction
7.2. Starting a Transaction
7.2.1. Control transactions
7.3. Checking a transactions progress
7.4. Transaction Completion
7.4.1. Transaction Result Codes
8. USB Message System
8.1. Introduction
8.2. Sending Messages
8.3. Receiving Messages
8.4. Service Calls Replaced
8.5. Message Memory Layout
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/
2.1. buffer.h
2.2. controller.h
2.3. defs.h
2.4. dlist.h
2.5. dtlist.h
2.6. endpoint.h
2.7. events.h
2.8. msg.h
2.9. pipe.h
2.10. reference.h
2.11. request.h
2.12. semaphor.h
2.13. slist.h
2.14. structs.h
2.15. transaction.h
2.16. version.h
2.17. waiting.h
2.18. dilist.h
3. usb/lib
3.1. clear-pipe.h
3.2. ctrlmsg.h
3.3. data-fast.h
3.4. data.h
3.5. decode.h
3.6. dev-utils.h
3.7. devmgr.h
3.8. find-desc.h
3.9. getnewdev.h
3.10. lib.h
3.11. log.h
3.12. parsecmd.h
3.13. pipe-utils.h
3.14. selectif.h
3.15. time.h
4. usb/sys
4.1. ccall.h
4.2. errors.h
4.3. events.h
4.4. fastacc.h
4.5. memory.h
4.6. usb-defs.h
4.7. waiting.h
5. usb/hid
5.1. decode.h
5.2. msgs.h
Creating RISC OS USB Host Controllers
1. Old Docs
1.1. Configuration of USB Module
1.2. Client application USB transfer requests
1.3. USB host controller driver communication level 1
1.4. USB host controller driver communication level 2
1.5. Other functions