static struct dev_ops xx_dev_ops = { DEVO_REV, /* devo_rev */ 0, /* devo_refcnt */ xxgetinfo, /* devo_getinfo: getinfo(9E) */ nulldev, /* devo_identify: identify(9E) */ xxprobe, /* devo_probe: probe(9E) */ xxattach, /* devo_attach: attach(9E) */ xxdetach, /* devo_detach: detach(9E) */ nodev, /* devo_reset */ &xx_cb_ops, /* devo_cb_ops */ NULL, /* devo_bus_ops */ &xxpower /* devo_power: power(9E) */ };
使用 dev_ops(9S) 结构,内核可以找到设备驱动程序的自动配置入口点。devo_rev 字段标识结构的修订号。该字段必须设置为 DEVO_REV。devo_refcnt 字段必须初始化为零。应使用相应驱动程序的入口点地址填充函数地址字段,但以下情况除外:
将 devo_identify 字段设置为 nulldev(9F)。identify() 入口点已过时。
如果不需要 probe(9E) 例程,应将 devo_probe 字段设置为 nulldev(9F)。
将 devo_reset 字段设置为 nodev(9F)。nodev() 函数返回 ENXIO。
如果不需要 power() 例程,应将 devo_power 字段设置为 NULL。提供电源管理功能的设备的驱动程序必须具有 power(9E) 入口点。请参见第 12 章。
devo_cb_ops 成员应包含 cb_ops(9S) 结构的地址。devo_bus_ops 字段必须设置为 NULL。