mpcn 特殊文件

用途

通过 SDLC COMIO 设备驱动程序仿真器来提供对 HDLC 网络设备驱动程序的访问。

描述

/dev/mpcn 字符特殊文件通过 SDLC COMIO 设备驱动程序仿真器提供对 HDLC 网络设备驱动程序的访问,以便提供对同步网络的访问。 SDLC COMIO 仿真器设备处理程序支持多个 HDLC 网络设备。

使用注意事项

访问 SDLC COMIO 仿真器设备处理程序时,请考虑以下信息。

驱动程序初始化和终止

可以装入和卸载设备处理程序。 该处理程序支持用于初始化和终止自身的配置调用。

特殊文件支持

SDLC COMIO 仿真器设备处理程序使用 /usr/include/sys/mpqp.h 文件中定义的 t_start_devt_chg_parms 结构来保留与现有 GDLC , MPQP API 和 SNA 服务接口的兼容性。 但是,对于下列 t_start_dev 结构字段,仅支持 #define 值的子集:

描述
phys_link 指示物理链路协议。 一次只有一种类型的物理链路是有效的。 SDLC COMIO 仿真器设备处理程序支持 PL_232D (EIA-232D) , PL_422A (EIA-422A/v.36) , PL_V35 (V.35) , PL_X21 (仅X.21 已租赁) 和 PL_V25 (V.25bis EIA-422A 自动拨号)。
data_proto 标识数据协议。 SDLC COMIO 仿真器设备处理程序仅支持 SDLC DATA_PRO_SDLC_HDX (半双工) 和 DATA_PRO_SDLC_FDX (全双工) 值。
baud_rate 指定发送和接收时钟的波特率。 SDLC COMIO 仿真器设备处理程序仅支持 DCE 提供时钟的外部计时,并且此字段应该设置为零。

子例程支持

SDLC COMIO 仿真器设备处理程序通过以下方式支持 关闭ioctl 子例程:

打开和关闭子例程

设备处理程序支持 /dev/mpcn 特殊文件作为字符多路复用特殊文件。 必须同时打开特殊文件以进行读写操作 (0-RDWR)。 关闭特殊文件时不存在特殊注意事项。

read 子例程

可以采取 Readvx 子例程调用的形式。 对于此调用,设备处理程序会将用户数据复制到调用者指定的缓冲区中。

write 子例程

可以采取 写 Vx 子例程调用的形式。 对于此呼叫,设备处理程序将用户数据复制到缓冲区中,并使用 HDLC 网络设备驱动程序在广域网上发送数据。

ioctl 子例程

ioctl 子例程支持以下标志:

描述
CIO_START 启动会话并注册一个网络标识。
CIO_HALT 停止会话,并除去网络标识。
CIO_QUERY 返回当前的可靠性,可用性和可维护性 (RAS) 计数器值。 这些值在 /usr/include/sys/comio.h 文件中定义。
MP_CHG_PARMS 在 SDLC COMIO 设备驱动程序仿真器启动后,允许数据链路控制 (DLC) 更改某些概要文件参数。

错误代码

通过 /dev/mpcn 特殊文件获取对设备处理程序的访问权时,可能会返回以下错误代码:

描述
ECHRNG 指示通道号已超出范围。
EAGAIN 指示设备处理程序由于缺少系统资源而无法传输数据,或者由于 HDLC 网络设备驱动程序的传输例程返回了错误而无法传输数据。
EBUSY 指示设备处理程序已被另一个用户使用 (打开/启动)。
EIO 指示处理程序无法对适配器的请求进行排队。
EFAULT 指示交叉内存复制服务已失败。
EINTR 指示某个信号已中断休眠。
EINVAL 指示下列其中一项:
  • 未正确设置该端口。
  • 处理程序无法为 设置结构。
  • 端口是无效的。
  • 内核进程调用了 选择 操作。
  • 对于该端口,指定的物理链路参数无效。
  • 内核进程调用了 操作。
ENOMEM 指示下列其中一项:
  • 没有任何 mbuf 或 mbuf 集群可用。
  • 总数据长度超过一个页面。
  • 没有用于内部结构的内存。
ENOMSG 指示 "状态队列" 指针为空,并且没有任何条目。
ENOTREADY 指示定义设备结构 (DDS) 中的端口状态不在 "数据传输" 方式下,或者隐式停止端口失败。
ENXIO 指示下列其中一项:
  • 未成功启动该端口。
  • 通道号是非法的。
  • 驱动程序控制块指针为空,或不存在。

此文件通过 HDLC 网络设备驱动程序上的 SDLC COMIO 仿真器设备处理程序来运行。 它模拟了多协议四端口 (MPQP) 设备处理程序的 SDLC API (全双工和半双工)。