devswchg 内核服务

用途

更改设备开关表中的设备开关入口点。

语法

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/device.h>
int devswchg ( devno,  type,  newfunc,  oldfunc);
dev_t devno;
int type;
int (*newfunc) ();
int (**oldfunc)();

参数

描述
德夫诺 指定将更改的设备的 主要和次要设备号
TYPE 指定要改变的设备开关入口点。 类型 参数可具有下列其中一个值:
DSW_BLOCK
更改 ddstrategy 入口点
DSW_CONFIG
更改 地址配置 入口点
DSW_CREAD
更改 德赖德 入口点
DSW_CWRITE
更改 ddwrite 入口点
DSW_DUMP
更改 dddump 入口点
DSW_IOCTL
更改 ddioctl 入口点
DSW_MPX
更改 邓普克斯 入口点
DSW_SELECT
更改 ddselect 入口点
DSW_TCPATH
更改 德雷沃克 入口点
DSW_BLOCK_COND
有条件地更改 ddstrategy 入口点
dsw_config_cond
有条件地更改 ddconfig 入口点
DSW_CREAD_COND
有条件地更改 ddread 入口点
dsw_cwrite_cond
有条件地更改 ddwrite 入口点
DSW_DUMP_COND
有条件地更改 dddump 入口点
DSW_IOCTL_COND
有条件地改变 ddioctl 入口点
DSW_MPX_COND
有条件地更改 ddmpx 入口点
dsw_select_cond
有条件地更改 ddselect 入口点
dsw_tcpath_cond
有条件地改变 ddrevoke 入口点
纽丰克 指定设备交换入口点的新值。
奥尔德丰克 指定必须返回设备交换机入口点的旧值。 当有条件地改变设备开关入口点时,使用此参数来指定与当前设备开关入口点进行比较的函数。

描述

德夫斯沃德 内核服务添加设备交换表项后, 德夫施格 内核服务会更改设备交换入口点 (函数指针) 的值。 由 类型 参数指定的设备交换机入口点设置为 纽丰克 参数的值。 在由 奥尔德丰克 参数寻址的内存中返回其先前值。 对于每个调用,只能更改一个设备开关项。

devswadd 内核服务添加设备切换表条目之后, devswchg 内核服务还支持有条件地更新设备切换入口点 (函数指针)。 条件更新意味着,当当前设备开关入口点与 oldfunc 参数寻址的内存中指定的函数指针值匹配时,由 type 参数指定的设备开关入口点将设置为 newfunc 参数的值。 当函数指针不匹配时,将不会更新设备开关入口点,并且将在由 oldfunc 参数寻址的内存中返回当前设备开关入口点值。 每次调用只能有条件地更改一个设备切换表项。

如果 devswchg 内核服务由于除条件更新失败以外的任何错误而失败,那么未定义 oldfunc 参数所引用的值。

执行环境

德夫施格 内核服务只能从 流程 环境中进行调用。

返回值

描述
重大安全事件数量 指示操作成功。
EINVAL 指示 Type 参数无效,或者没有为条件更新指定 oldfunc 参数。
ENODEV 指示未定义由 德夫诺 参数指定的设备切换项。
EPERM 指示当前设备开关入口点与 oldfunc 参数寻址的内存中指定的函数指针不匹配。