64 位支持

STREAMS 模块和驱动程序将在系统中设置新标志 STR_64BITsc_flagsstrconf_t 结构的字段,指示它们支持 64 位数据类型的能力。

它们将在调用 str_install 子例程之前设置此标志。

在驱动程序打开时,如果所有 autopushed 模块 (如果有) 都支持 64 位数据类型,那么 流头 将设置每个流的 64 位标志。 根据模块的 64 位支持功能,在模块推送或弹出时将更新同一标志。 在 PSE , putmsgputpmsg中下游传递数据的系统调用将检查该特定流的此每个流标志。 此外,某些 ioctl 子例程 (例如 I_STRI_STRFDINSERT) 和透明 ioctls 也将检查此标志。 如果系统调用由 64 位进程发出,并且未设置此标志,那么系统调用将失败。 32 位行为不受此标志影响。 所有现有的操作系统 Streams 模块和驱动程序都将支持 64 位用户进程。

在链接或取消链接操作时, STREAMS 多路复用器的上半部分的流头根据下半部分流头的标志值更新其每个流的 64 位标志。 例如,如果上半部分支持 64 位,下半部分不支持,那么多路复用器将不支持 64 位进程。 这是必需的,因为所有系统调用都在多路复用器的上半部分进行处理。