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 <arndb@de.ibm.com>

另請參閱



previous next Printer Friendly

廣告


  

廣告



廣告