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)