The Running Model

This document describes the model by which a device driver handles requests.

Once a logical channel and a physical channel, if appropriate, have been created and initialised, the driver is ready to handle requests.

On the kernel-side, requests can be handled by one or more kernel-side threads, allowing for rich and complex behaviour. Alternatively, if appropriate, a request can be handled by code running in the context of the client user-side thread, but running in supervisor mode.

There are two kinds of request, synchronous and asynchronous.