Go to main content

man pages section 9: DDI and DKI Properties and Data Structures

Exit Print View

Updated: Thursday, June 13, 2019
 
 

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. 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 in Oracle Solaris 11.4