SPU_CREATE(2) | Linux Programmer's Manual | SPU_CREATE(2) |
spu_create - 新しい SPU コンテキストを生成する
#include <sys/types.h> #include <sys/spu.h>
int spu_create(const char *pathname, int flags, mode_t mode, int neighbor_fd);
注: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。
spu_create() システムコールは、Cell Broadband Engine アーキテクチャーを実装した PowerPC マシンにおいて、Synergistic Processor Unit (SPU) にアクセスするために使用される。 このシステムコールは、 SPU に対する新しい論理コンテキストを pathname に生成し、 そのコンテキストに関連付けられたファイルディスクリプターを返す。 pathname は SPU ファイルシステム (spufs) のマウントポイント内の存在しないディレクトリを指していなければならない。 spu_create() が成功すると、 pathname にディレクトリが生成され、 そのディレクトリに spufs(7) で説明されているファイル群が配置される。
コンテキストを作成した際、返されたファイルディスクリプターは、 spu_run(2) に渡すか、 *at 系のシステムコール (openat(2) など) の dirfd 引数として使用するか、 クローズするか、しかできない。 他の操作は定義されていない。 そのコンテキストへの最後の参照がなくなった際に、 論理 SPU コンテキストは破棄される (そのコンテキストの pathname ディレクトリに作成されたファイルもすべて破棄される)。 通常は spu_create() が返したファイルディスクリプターがクローズされた際に発生する。
mode 引数 (からプロセスの umask(2) でセットされたビットを除いたもの) により、 spufs に作られる新しいディレクトリで使用されるアクセス許可が決まる。 利用できる mode 値の完全なリストについては stat(2) を参照。
The neighbor_fd is used only when the SPU_CREATE_AFFINITY_SPU flag is specified; see below.
flags 引数には 0 か以下の定数の組み合わせ (ビット単位の論理和) を指定できる。
成功すると、 spu_create() は新しいファイルディスクリプターを返す。 エラーの場合、-1 を返し、 errno に以下のリストに記載のエラーコードのいずれかを設定する。
pathname は spufs のマウントポイントの配下の場所を指して いなければならない。 慣例では /spu にマウントされる。
spu_create() システムコールはカーネル 2.6.16 で Linux に追加された。
このシステムコールは Linux 固有であり、 PowerPC アーキテクチャーでのみ実装されている。 このシステムコールを使ったプログラムは移植性がない。
glibc はこのシステムコールに対するラッパー関数を提供していない。 syscall(2) を使うこと。ただし、 spu_create() は より抽象度の高い SPU へのインターフェースを実装するライブラリから 利用されることを意図したものであり、通常のアプリケーションから 使用は意図されていない。推奨のライブラリについては http://www.bsc.es/projects/deepcomputing/linuxoncell/ を参照のこと。
Prior to the addition of the SPU_CREATE_AFFINITY_SPU flag in Linux 2.6.23, the spu_create() system call took only three arguments (i.e., there was no neighbor_fd argument).
spu_create() の利用例については spu_run(2) を参照。
close(2), spu_run(2), capabilities(7), spufs(7)
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。
2020-12-21 | Linux |