loadext 设备配置子例程
用途
装入或卸载内核扩展,或者在内核中查询内核扩展。
语法
参数
| 项 | 描述 |
|---|---|
| dd_name | 指定要装入,卸下或查询的内核扩展的名称。 |
| load | 指定 洛德克特 子例程是否应该装入内核扩展。 |
| 查询 | 指定是否应该执行对内核扩展的查询。 |
描述
洛德克特 设备配置子例程提供装入或卸载内核扩展的能力。 它还可以用于获取先前装入的对象文件的内核模块标识 (kmid)。 在 dd_name 参数中传递的内核扩展名称是对象文件的基本名称,或者包含目录路径信息。 如果在 dd_name 参数中提供的内核扩展路径名没有前导 ./ (点,斜杠) , ../ double-dot ,斜杠) 或 / (斜杠) 字符,然后 loadext 子例程将 /usr/lib/drivers 文件与在 dd_name 参数中传递的基本名称并置以获取绝对路径名。 否则,将在未修改的情况下使用 dd_name 参数中提供的路径名。
如果 负载 参数的值为 True ,那么会装入指定的内核扩展及其 克米德 。 如果指定的对象文件已装入到内核中,那么它的装入计数将递增,并且不会装入新的副本。
如果 负载 参数的值为 False ,那么执行的操作将取决于 查询 参数的值。 如果 查询 为 False ,那么 洛德克特 例程将请求卸载指定的内核扩展。 这会导致内核减少与对象文件关联的负载计数。 如果对象文件的装入计数和使用计数变为 0 ,那么内核将卸装该对象文件。 如果 查询 参数为 True ,那么 洛德克特 子例程将在内核中查询指定对象文件的 kmid。 然后将此 kmid 返回给调用者。
如果 负载 和 查询 参数的值都为 True ,那么会执行装入功能。
注意: 重复装入和卸载内核扩展可能导致内存泄漏。
文件
| 项 | 描述 |
|---|---|
| /usr/lib/libcfg.a | 设备配置子例程的归档。 |
返回值
成功完成后, 洛德克特 子例程将返回 kmid。 如果发生错误或者如果未装入所查询的对象文件,那么例程将返回空值。