JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
man pages section 9: DDI and DKI Properties and Data Structures
search filter icon
search icon

Document Information

Preface

Introduction

Data Structures for Drivers

aio_req(9S)

buf(9S)

cb_ops(9S)

copyreq(9S)

copyresp(9S)

datab(9S)

dblk(9S)

ddi_device_acc_attr(9S)

ddi_dma_attr(9S)

ddi_dma_cookie(9S)

ddi_dmae_req(9S)

ddi_dma_lim(9S)

ddi_dma_lim_sparc(9S)

ddi_dma_lim_x86(9S)

ddi_dma_req(9S)

ddi_fm_error(9S)

ddi-forceattach(9P)

ddi_idevice_cookie(9S)

ddi-no-autodetach(9P)

devmap_callback_ctl(9S)

dev_ops(9S)

fmodsw(9S)

free_rtn(9S)

gld_mac_info(9S)

gld_stats(9S)

hook_nic_event(9S)

hook_pkt_event(9S)

hook_t(9S)

inquiry-device-type(9P)

inquiry-product-id(9P)

inquiry-revision-id(9P)

inquiry-vendor-id(9P)

iocblk(9S)

iovec(9S)

kstat(9S)

kstat_intr(9S)

kstat_io(9S)

kstat_named(9S)

linkblk(9S)

lso_basic_tcp_ipv4(9S)

mac_callbacks(9S)

mac_capab_lso(9S)

mac_register(9S)

mblk(9S)

modldrv(9S)

modlinkage(9S)

modlstrmod(9S)

module_info(9S)

msgb(9S)

net_inject_t(9S)

net_instance_t(9S)

no-involuntary-power-cycles(9P)

pm(9P)

pm-components(9P)

qband(9S)

qinit(9S)

queclass(9S)

queue(9S)

removable-media(9P)

scsi_address(9S)

scsi_arq_status(9S)

scsi_asc_key_strings(9S)

scsi_device(9S)

scsi_extended_sense(9S)

scsi_hba_tran(9S)

scsi_inquiry(9S)

scsi_pkt(9S)

scsi_status(9S)

streamtab(9S)

stroptions(9S)

tuple(9S)

uio(9S)

usb_bulk_request(9S)

usb_callback_flags(9S)

usb_cfg_descr(9S)

usb_client_dev_data(9S)

usb_completion_reason(9S)

usb_ctrl_request(9S)

usb_dev_descr(9S)

usb_dev_qlf_descr(9S)

usb_ep_descr(9S)

usb_if_descr(9S)

usb_intr_request(9S)

usb_isoc_request(9S)

usb_other_speed_cfg_descr(9S)

usb_request_attributes(9S)

usb_string_descr(9S)

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).

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);

See Also

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

Writing Device Drivers