编写设备驱动程序

用户空间访问函数

用户空间访问函数包括:

ddi_copyin()

将数据复制到驱动程序缓冲区

ddi_copyout()

从驱动程序中复制数据

uiomove()

使用 uio 结构复制内核数据

ureadc()

uio 结构中添加字符

uwritec()

uio 结构中删除字符

getminor()

获取次要设备号

ddi_model_convert_from()

确定数据模型类型是否不匹配

IOC_CONVERT_FROM()

确定是否需要转换 M_IOCTL 内容

STRUCT_DECL()

声明并初始化指向本机形式结构实例的结构句柄

STRUCT_HANDLE()

声明并初始化指向本机形式结构实例的结构句柄

STRUCT_INIT()

声明并初始化指向本机形式结构实例的结构句柄

STRUCT_SET_HANDLE()

声明并初始化指向本机形式结构实例的结构句柄

SIZEOF_PTR()

返回指定数据模型中指针的大小

SIZEOF_STRUCT()

返回指定数据模型中结构的大小

STRUCT_SIZE()

返回应用程序数据模型中结构的大小

STRUCT_BUF()

返回指向结构的本机模式实例的指针

STRUCT_FADDR()

返回指向结构的指定字段的指针

STRUCT_FGET()

返回应用程序数据模型中结构的指定字段

STRUCT_FGETP()

返回应用程序数据模型中结构的指定指针字段

STRUCT_FSET()

设置应用程序数据模型中结构的指定字段

STRUCT_FSETP()

设置应用程序数据模型中结构的指定指针字段

表 B–6 过时的用户空间访问函数

过时的函数 

替代函数 

copyin()

ddi_copyin()

copyout()

ddi_copyout()

ddi_getminor()

getminor()