DEV_OPS(9S) Data Structures for Drivers DEV_OPS(9S)


NAME


dev_ops - device operations structure

SYNOPSIS


#include <sys/conf.h>
#include <sys/devops.h>


INTERFACE LEVEL


Solaris DDI specific (Solaris DDI).

DESCRIPTION


dev_ops contains driver common fields and pointers to the bus_ops and
cb_ops(9S).


Following are the device functions provided in the device operations
structure. All fields must be set at compile time.

devo_rev
Driver build version. Set this to DEVO_REV.


devo_refcnt
Driver reference count. Set this to 0.


devo_getinfo
Get device driver information (see getinfo(9E)).


devo_identify
This entry point is obsolete. Set to nulldev.


devo_probe
Probe device. See probe(9E).


devo_attach
Attach driver to dev_info. See attach(9E).


devo_detach
Detach/prepare driver to unload. See detach(9E).


devo_reset
Reset device. (Not supported in this release.) Set this
to nodev.


devo_cb_ops
Pointer to cb_ops(9S) structure for leaf drivers.


devo_bus_ops
Pointer to bus operations structure for nexus drivers.
Set this to NULL if this is for a leaf driver.


devo_power
Power a device attached to system. See power(9E).


devo_quiesce
Quiesce a device attached to system (see quiesce(9E) for
more information). This can be set to
ddi_quiesce_not_needed() if the driver does not need to
implement quiesce.


STRUCTURE MEMBERS


int devo_rev;
int devo_refcnt;
int (*devo_getinfo)(dev_info_t *dip,
ddi_info_cmd_t infocmd, void *arg, void **result);
int (*devo_identify)(dev_info_t *dip);
int (*devo_probe)(dev_info_t *dip);
int (*devo_attach)(dev_info_t *dip,
ddi_attach_cmd_t cmd);
int (*devo_detach)(dev_info_t *dip,
ddi_detach_cmd_t cmd);
int (*devo_reset)(dev_info_t *dip, ddi_reset_cmd_t cmd);
struct cb_ops *devo_cb_ops;
struct bus_ops *devo_bus_ops;
int (*devo_power)(dev_info_t *dip, int component, int level);
int (*devo_quiesce)(dev_info_t *dip);


SEE ALSO


attach(9E), detach(9E), getinfo(9E), probe(9E), power(9E), quiesce(9E),
nodev(9F)


Writing Device Drivers


September 16, 2008 DEV_OPS(9S)