Device_t
是为设备结构而定义的指针类型,
这里我们只关心从设备驱动程序编写者的角度看感兴趣的方法。下面的方法
用来操纵设备结构中的值:
device_t
device_get_parent(dev)
获取设备的父总线。
driver_t
device_get_driver(dev)
获取指向其驱动程序结构的指针。
char
*device_get_name(dev)
获取驱动程序的名字,在我们的
例子中为"xxx"
。
int device_get_unit(dev)
获取单元号(与每个驱动程序关联的设备从0开始编号)。
char
*device_get_nameunit(dev)
获取设备名,包括单元号。
例如“xxx0”,“xxx1”
等。
char
*device_get_desc(dev)
获取设备描述。通常它以人可读的
形式描述设备的确切型号。
device_set_desc(dev,
desc)
设置描述信息。这使得设备描述指向desc字符串,
此后这个字符串就不能被解除分配。
device_set_desc_copy(dev,
desc)
设置描述信息。描述被拷贝到内部动态分配的
缓冲区,这样desc字符串在以后可以被改变而不会产生有害的结果。
void
*device_get_softc(dev)
获取指向与设备关联的设备描述符
(xxx_softc
结构)的指针。
u_int32_t
device_get_flags(dev)
获取配置文件中特定于设备的
标志。
可以使用一个很方便的函数device_printf(dev, fmt,
...)
从设备驱动程序中打印讯息。它自动在讯息前添加
单元名和冒号。
device_t的这些方法在文件kern/bus_subr.c
中实现。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.