OSDN Git Service

bf7dcd0a7932339d20306c09a1cdce5239c1e512
[linuxjm/LDP_man-pages.git] / release / man2 / spu_create.2
1 .\" Copyright (c) International Business Machines Corp., 2006
2 .\"
3 .\" %%%LICENSE_START(GPLv2+_SW_3_PARA)
4 .\" This program is free software; you can redistribute it and/or
5 .\" modify it under the terms of the GNU General Public License as
6 .\" published by the Free Software Foundation; either version 2 of
7 .\" the License, or (at your option) any later version.
8 .\"
9 .\" This program is distributed in the hope that it will be useful,
10 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
11 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12 .\" the GNU General Public License for more details.
13 .\"
14 .\" You should have received a copy of the GNU General Public
15 .\" License along with this manual; if not, see
16 .\" <http://www.gnu.org/licenses/>.
17 .\" %%%LICENSE_END
18 .\"
19 .\" HISTORY:
20 .\" 2005-09-28, created by Arnd Bergmann <arndb@de.ibm.com>
21 .\" 2006-06-16, revised by Eduardo M. Fleury <efleury@br.ibm.com>
22 .\" 2007-07-10, some polishing by mtk
23 .\" 2007-09-28, updates for newer kernels by Jeremy Kerr <jk@ozlabs.org>
24 .\"
25 .\"*******************************************************************
26 .\"
27 .\" This file was generated with po4a. Translate the source file.
28 .\"
29 .\"*******************************************************************
30 .\"
31 .\" Japanese Version Copyright (c) 2007  Akihiro MOTOKI
32 .\"         all rights reserved.
33 .\" Translated 2007-10-23, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
34 .\" Updated 2013-05-01, Akihiro MOTOKI <amotoki@gmail.com>
35 .\"
36 .TH SPU_CREATE 2 2012\-08\-05 Linux "Linux Programmer's Manual"
37 .SH 名前
38 spu_create \- 新しい SPU コンテキストを生成する
39 .SH 書式
40 .nf
41 \fB#include <sys/types.h>\fP
42 \fB#include <sys/spu.h>\fP
43
44 \fBint spu_create(const char *\fP\fIpathname\fP\fB, int \fP\fIflags\fP\fB, mode_t \fP\fImode\fP\fB);\fP
45 \fBint spu_create(const char *\fP\fIpathname\fP\fB, int \fP\fIflags\fP\fB, mode_t \fP\fImode\fP\fB,\fP
46 \fB               int \fP\fIneighbor_fd\fP\fB);\fP
47 .fi
48
49 \fI注\fP: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。
50 .SH 説明
51 \fBspu_create\fP() システムコールは、Cell Broadband Engine アーキテクチャーを実装した PowerPC
52 マシンにおいて、Synergistic Processor Unit (SPU) にアクセスするために使用される。 このシステムコールは、 SPU
53 に対する新しい論理コンテキストを \fIpathname\fP に生成し、 そのコンテキストに関連付けられたファイルディスクリプターを返す。
54 \fIpathname\fP は SPU ファイルシステム (\fBspufs\fP) のマウントポイント内の存在しないディレクトリを指していなければならない。
55 \fBspu_create\fP() が成功すると、 \fIpathname\fP にディレクトリが生成され、 そのディレクトリに \fBspufs\fP(7)
56 で説明されているファイル群が配置される。
57
58 コンテキストを作成した際、返されたファイルディスクリプターは、 \fBspu_run\fP(2) に渡すか、 \fB*at\fP 系のシステムコール
59 (\fBopenat\fP(2) など) の \fIdirfd\fP 引き数として使用するか、 クローズするか、しかできない。 他の操作は定義されていない。
60 そのコンテキストへの最後の参照がなくなった際に、 論理 SPU コンテキストは破棄される (そのコンテキストの \fIpathname\fP
61 ディレクトリに作成されたファイルもすべて破棄される)。 通常は \fBspu_create\fP()
62 が返したファイルディスクリプターがクローズされた際に発生する。
63
64 \fIflags\fP 引き数には 0 か以下の定数の組み合わせ (ビット単位の論理和) を指定できる。
65 .TP 
66 \fBSPU_CREATE_EVENTS_ENABLED\fP
67 DMA エラーを通知するのにシグナルを使うのではなく、 \fBspu_run\fP(2) の \fIevent\fP 引き数を使用する。
68 .TP 
69 \fBSPU_CREATE_GANG\fP
70 コンテキストの代わりに SPU gang を作成する。 (gang は、機能的に互いに関係していて、スケジューリングパラメーター (優先度とポリシー)
71 を共有する SPU コンテキストのグループである。 将来、 グループ全体が一つの単位としてスイッチイン/スイッチアウトされる gang
72 スケジューリングが実装されるかもしれない。)
73
74 \fIpathname\fP 引き数で指定された場所に新しいディレクトリが作成される。 この gang を使って他の SPU
75 コンテキストを保持することができる。 それには、それ以降の \fBspu_create\fP() に gang ディレクトリ内のパス名を渡す。
76 .TP 
77 \fBSPU_CREATE_NOSCHED\fP
78 SPU スケジューラーの影響を受けないコンテキストを作成する。 一度実行されると、
79 呼び出したプロセスが破棄されるまでこのコンテキストがスケジューリングで追い出されることはない。
80
81 このコンテキストは SPU から削除されることはないので、 \fBSPU_CREATE_NOSCHED\fP コンテキストではいくつかの機能は無効にされる。
82 \fBspufs\fP のこのコンテキストのディレクトリでは一部のファイルだけができる。 また、 \fBSPU_CREATE_NOSCHED\fP
83 コンテキストはクラッシュした際にコアファイルをダンプできない。
84
85 \fBSPU_CREATE_NOSCHED\fP コンテキストを作成するには \fBCAP_SYS_NICE\fP ケーパビリティが必要である。
86 .TP 
87 \fBSPU_CREATE_ISOLATE\fP
88 隔離された SPU コンテキストを作成する。 隔離されたコンテキストはいくつかの PPE (PowerPC Processing Element)
89 命令から保護される。 SPU ローカルストアや NPC レジスターへのアクセスなどである。
90
91 \fBSPU_CREATE_ISOLATE\fP コンテキストを作成するには \fBSPU_CREATE_NOSCHED\fP フラグも指定する必要がある。
92 .TP 
93 \fBSPU_CREATE_AFFINITY_SPU\fP
94 別の SPU コンテキストと affinity (親和性) を持ったコンテキストを作成する。 この affinity 情報は SPU
95 スケジューリングアルゴリズムで使用される。 このフラグを使う際には、 他の SPU コンテキストを指すファイルディスクリプターを
96 \fIneighbor_fd\fP 引き数を渡す必要がある。
97 .TP 
98 \fBSPU_CREATE_AFFINITY_MEM\fP
99 システムメモリーと affinity (親和性) を持ったコンテキストを作成する。 この affinity 情報は SPU
100 スケジューリングアルゴリズムで使用される。
101 .PP
102 \fImode\fP 引き数 (からプロセスの \fBumask\fP(2) でセットされたビットを除いたもの) により、 \fBspufs\fP
103 に作られる新しいディレクトリで使用されるアクセス許可が決まる。 利用できる \fImode\fP 値の完全なリストについては \fBstat\fP(2) を参照。
104 .SH 返り値
105 成功すると、 \fBspu_create\fP() は新しいファイルディスクリプターを返す。 エラーの場合、\-1 を返し、 \fIerrno\fP
106 に以下のリストに記載のエラーコードのいずれかを設定する。
107 .SH エラー
108 .TP 
109 \fBEACCES\fP
110 現在のユーザーが \fBspufs\fP(7) のマウントポイントへの書き込み許可を持って
111 いない。
112 .TP 
113 \fBEEXIST\fP
114 指定されたパス名で SPU コンテキストがすでに生成されている。
115 .TP 
116 \fBEFAULT\fP
117 \fIpathname\fP が呼び出し元のプロセスのアドレス空間で有効な文字列ポインターではない。
118 .TP 
119 \fBEINVAL\fP
120 \fIpathname\fP が SPUFS マウントポイント内のディレクトリではない。 または、無効なフラグが指定された。
121 .TP 
122 \fBELOOP\fP
123 \fIpathname\fP を解決するまでに辿ったシンボリックリンクが多過ぎた。
124 .TP 
125 \fBEMFILE\fP
126 そのプロセスがオープンできるファイル数の上限に達していた。
127 .TP 
128 \fBENAMETOOLONG\fP
129 \fIpathname\fP が長過ぎる。
130 .TP 
131 \fBENFILE\fP
132 システム全体でオープンできるファイル数の上限に達していた。
133 .TP 
134 \fBENODEV\fP
135 隔離されたコンテキストが要求されたが、 ハードウェアが SPU アイソレーションをサポートしていない。
136 .TP 
137 \fBENOENT\fP
138 \fIpathname\fP の一部が解決できなかった。
139 .TP 
140 \fBENOMEM\fP
141 カーネルが必要なリソースの全てを割り当てることができなかった。
142 .TP 
143 \fBENOSPC\fP
144 新しいコンテキストを生成するのに十分な SPU リソースがなかった、 または SPU コンテキスト数がそのユーザーの特定の上限に達していた。
145 .TP 
146 \fBENOSYS\fP
147 機能が動作中のシステムで提供されていない。理由は、 ハードウェアで SPU が提供されていないか、 spufs
148 モジュールがロードされていないか、のどちらかである。
149 .TP 
150 \fBENOTDIR\fP
151 \fIpathname\fP の一部がディレクトリではない。
152 .TP 
153 \fBEPERM\fP
154 \fISPU_CREATE_NOSCHED\fP フラグが指定されたが、ユーザーが \fBCAP_SYS_NICE\fP ケーパビリティを持っていない。
155 .SH ファイル
156 \fIpathname\fP は \fBspufs\fP のマウントポイントの配下の場所を指して
157 いなければならない。 慣例では \fI/spu\fP にマウントされる。
158 .SH バージョン
159 \fBspu_create\fP() システムコールはカーネル 2.6.16 で Linux に追加された。
160 .SH 準拠
161 このシステムコールは Linux 固有であり、 PowerPC アーキテクチャーでのみ実装されている。
162 このシステムコールを使ったプログラムは移植性がない。
163 .SH 注意
164 glibc はこのシステムコールに対するラッパー関数を提供していない。 \fBsyscall\fP(2)  を使うこと。ただし、
165 \fBspu_create\fP()  は より抽象度の高い SPU へのインターフェースを実装するライブラリから
166 利用されることを意図したものであり、通常のアプリケーションから 使用は意図されていない。推奨のライブラリについては
167 .UR http://www.bsc.es\:/projects\:/deepcomputing\:/linuxoncell/
168 .UE
169 を参照のこと。
170 .SH 例
171 \fBspu_create\fP() の利用例については \fBspu_run\fP(2) を参照。
172 .SH 関連項目
173 \fBclose\fP(2), \fBspu_run\fP(2), \fBcapabilities\fP(7), \fBspufs\fP(7)
174 .SH この文書について
175 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.65 の一部
176 である。プロジェクトの説明とバグ報告に関する情報は
177 http://www.kernel.org/doc/man\-pages/ に書かれている。