fp_open 数据链路控制 (DLC) 设备的内核服务

用途

允许内核打开通用数据链路控制 (GDLC) 设备管理器 (按其设备名)。

语法

#include <sys/gdlextcb.h>
#include <fcntl.h>
fp_open (path, oflags, cmode, ext, segflag, fpp)

参数

描述
路径 由一个字符串组成,其中包含 GDLC 设备管理器的/dev特殊文件名,以及通信设备处理程序的名称。 以下示例中显示了该格式:
/dev/dlcether/ent0
奥旗帜 指定用于设置文件状态标志的值。 GDLC 设备管理器忽略除以下值的所有值:
O_RDWR
打开以进行读写。 必须为 GDLC 设置此值,否则打开操作将不成功。
o_ndelay, o_nonblock
如果没有可用的资源,那么后续写操作将立即返回。 不会将调用进程置于休眠状态。
CMode 指定O_CREAT模式参数。 这将被 GDLC 忽略。
分机 指定扩展内核服务参数。 这是一个指向dlc_open_ext扩展 I/O 结构的指针,用于打开子程序。 此参数的自变量必须位于内核空间中。
分段标志 指定用于指示 路径 参数所在位置的段标志:
FP_SYS
路径 参数存储在内核内存中。
FP_USR
路径 参数存储在应用程序内存中。
fpp 指定返回的文件指针。 该参数以引用方式传递,并由文件 I/O 子系统更新为该打开子程序的文件指针。

描述

fp_open内核服务允许内核用户通过指定 DLC 和通信设备处理程序的特殊文件名来打开 GDLC 设备管理器。 由于 GDLC 设备管理器是复用的,多个进程可以多次打开它 (或同一进程多次打开) ,并且仍然具有唯一的通道标识。

每个打开项都带有通信设备处理程序的特殊文件名,以便 DLC 知道要在哪个端口上传输数据。

内核用户还必须提供功能入口地址,以便获得接收数据和异常条件。 Each GDLC supports the fp_open kernel service via its dlcopen entry point. fp_open内核服务只能从进程环境中调用。 AIX®Version6.1通信编程概念中的 "使用 GDLC 特殊内核服务 "提供了更多信息。

返回值

成功完成后,此服务将在 弗普 参数中返回值 0 和有效的文件指针。

描述
埃奇尔德 指示此服务无法创建内核进程。
EINVAL 指示无效值。
ENODEV 指示不存在此类设备处理程序。
ENOMEM 指示资源不足,无法满足打开。
EFAULT 表示内核服务(如copyininitp 服务)发生故障。

这些返回值在/usr/include/sys/errno.h文件中定义。