This chapter adds the following fields to the state structure. See "Software State Structure" for more information.
kmutex_t ctx_lock; /* lock for context switching */ void *ctx_shared; /* pointer to shared context */ struct xxctx *current_ctx; /* current context structure */
The structure xxctx is the driver private device context structure for the examples used in this section. It looks like this:
struct xxctx { devmap_cookie_t handle; offset_t off; size_t len; uint_t flags; void *context; struct xxstate *xsp; }; #define XXCTX_SIZE 0x1000 /* size of the context */
The context field stores the actual device context. In this case, it is simply a pointer to a chunk of memory; in other cases, it may actually be a series of structure fields corresponding to device registers.