STREAMS Programming Guide

dev_ops(9S)

The first structure is dev_ops(9S). It represents a specific class or type of device. Each dev_ops(9S) structure represents a unique device to the operating system. Each device has its own dev_ops(9S) structure. Each dev_ops(9S) structure contains a cb_ops(9S).

struct dev_ops  {
  int			devo_rev;						/* Driver build version	*/
  int			devo_refcnt;					/* device reference count	*/
  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;		/* cb_ops ptr for leaf driver*/
  struct bus_ops		*devo_bus_ops;		/* ptr for nexus drivers */
};