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
       illumos DDI specific (illumos 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), 
power(9E), 
probe(9E),       
quiesce(9E), 
nodev(9F)       Writing Device Drivers                             September 16, 2008                  DEV_OPS(9S)