spu_create() - Unix、Linux 系统调用
Tutorials Point


  Unix 初学者指南
  Unix Shell 编程
  高级 Unix
  Unix 有用参考
  Unix 有用资源
  精选读物

版权所有 © 2014 tutorialspoint



  首页     参考     讨论论坛     关于 TP  

spu_create() - Unix、Linux 系统调用


previous next AddThis Social Bookmark Button

广告

名称

spu_create - 创建新的 spu 上下文

语法

#include <sys/types.h> 
#include <sys/spu.h> 

int spu_create(const char *pathname, int flags, mode_t mode);

描述

spu_create 系统调用用于实现 Cell 宽带引擎架构的 PowerPC 机器,以便访问协同处理器单元 (SPU)。它在pathname中为 SPU 创建一个新的逻辑上下文,并返回与其关联的句柄。pathname必须指向 SPU 文件系统 (spufs) 挂载点中的一个不存在的目录。当spu_create成功时,会在pathname上创建一个目录,并填充文件。

返回的文件句柄只能传递给spu_run(2) 或关闭,其他操作未定义。当它被关闭时,spufs中的所有关联目录条目都将被删除。当指向上下文目录内部或此文件描述符的最后一个文件句柄关闭时,逻辑 SPU 上下文将被销毁。

参数flags可以为零或以下常量的任何按位或组合

标签描述
SPU_RAWIO
 允许将 SPU 的一些硬件寄存器映射到用户空间。此标志需要CAP_SYS_RAWIO功能,请参阅capabilities(7)。
mode参数指定用于在 spufs 中创建新目录的权限。mode用用户的umask(2)值进行修改,然后用于目录及其包含的文件。文件权限会屏蔽掉mode的一些更多位,因为它们通常只支持读或写访问。有关可能的mode值的完整列表,请参阅stat(2)

返回值

spu_create 返回一个新的文件描述符。它可能会返回 -1 以指示错误情况并将 errno 设置为以下错误代码之一。

错误

标签描述
EACCESS
 当前用户对spufs挂载点没有写访问权限。
EEXIST 在给定的路径名处已存在 SPU 上下文。
EFAULT pathname在当前地址空间中不是有效的字符串指针。
EINVAL pathname不是spufs挂载点中的目录。
ELOOP 在解析pathname时发现了太多符号链接。
EMFILE 进程已达到其最大打开文件限制。
ENAMETOOLONG
  pathname太长了。
ENFILE 系统已达到全局打开文件限制。
ENOENT pathname的一部分无法解析。
ENOMEM 内核无法分配所有必需的资源。
ENOSPC 没有足够的 SPU 资源可用于创建新上下文,或者用户为 SPU 上下文数量设置的特定限制已达到。
ENOSYS 当前系统未提供此功能,因为硬件未提供 SPU 或spufs模块未加载。
ENOTDIR
 pathname的一部分不是目录。

注释

spu_create旨在用于实现更抽象的 SPU 接口的库中,而不是用于常规应用程序。

文件

pathname必须指向spufs挂载点下方的位置。按照惯例,它会挂载在/spu中。

符合标准

此调用是 Linux 特定的,并且仅由 ppc64 架构实现。使用此系统调用的程序不可移植。

错误

代码尚未完全实现此处列出的所有功能。

作者

Arnd Bergmann <[email protected]>

另请参阅



previous next Printer Friendly

广告


  

广告



广告