编写设备驱动程序

内核统计信息结构成员

kstat 结构的成员包括:

ks_class[KSTAT_STRLEN]

kstat 类型分类为 buscontrollerdevice_errordiskhatkmem_cachekstatmiscnetnfspagespartitionrpsufsvmvmem

ks_crtime

kstat 的创建时间。ks_crtime 通常用于计算各个计数器的速率。

ks_data

指向 kstat 的数据区。

ks_data_size

数据区大小总额(以字节为单位)。

ks_instance

创建此 kstat 的内核模块的实例。ks_instanceks_moduleks_name 结合使用,以便为 kstat 指定唯一且有意义的名称。

ks_kid

kstat 的唯一 ID。

ks_module[KSTAT_STRLEN]

标识创建此 kstat 的内核模块。ks_module ks_instanceks_name 结合使用,以便为 kstat 指定唯一且有意义的名称。KSTAT_STRLEN 可设置 ks_module 的最大长度。

ks_name[KSTAT_STRLEN]

为 kstat 指定的名称,与 ks_moduleks_instance 结合使用。KSTAT_STRLEN 可设置 ks_module 的最大长度。

ks_ndata

为以下可支持多个记录的 kstat 类型指示数据记录的个数: KSTAT_TYPE_RAWKSTAT_TYPE_NAMEDKSTAT_TYPE_TIMER

ks_next

指向链表中的下一个 kstat。

ks_resv

保留的字段。

ks_snaptime

上一数据快照的时间标记,在计算速率时很有用。

ks_type

数据类型,对于二进制数据可为 KSTAT_TYPE_RAW,对于名称/值对可为 KSTAT_TYPE_NAMED,对于中断统计信息可为 KSTAT_TYPE_INTR,对于 I/O 统计信息可为 KSTAT_TYPE_IO,对于事件计时器可为 KSTAT_TYPE_TIMER