1 .\" This is _*_ nroff _*_ source. Emacs, gimme all those colors :)
3 .\" Copyright (c) International Business Machines Corp., 2006
5 .\" This program is free software; you can redistribute it and/or
6 .\" modify it under the terms of the GNU General Public License as
7 .\" published by the Free Software Foundation; either version 2 of
8 .\" the License, or (at your option) any later version.
10 .\" This program is distributed in the hope that it will be useful,
11 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
12 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 .\" the GNU General Public License for more details.
15 .\" You should have received a copy of the GNU General Public License
16 .\" along with this program; if not, write to the Free Software
17 .\" Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21 .\" 2005-09-28, created by Arnd Bergmann <arndb@de.ibm.com>
22 .\" 2006-06-16, revised by Eduardo M. Fleury <efleury@br.ibm.com>
23 .\" 2007-07-10, some polishing by mtk
25 .\" Japanese Version Copyright (c) 2007 Akihiro MOTOKI
26 .\" all rights reserved.
27 .\" Translated 2007-10-23, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
29 .TH SPU_CREATE 2 2007-07-10 "Linux" "Linux Programmer's Manual"
31 spu_create \- 新しい SPU コンテキストを生成する
34 .B #include <sys/types.h>
35 .B #include <sys/spu.h>
37 .BI "int spu_create(const char *" pathname ", int " flags ", mode_t " mode ");"
41 システムコールは、Cell Broadband Engine アーキテクチャを実装した
42 PowerPC マシンにおいて、Synergistic Processor Unit (SPU) にアクセスする
44 このシステムコールは、SPU に対する新しい論理コンテキストを
46 に生成し、そのコンテキストに関連付けられたファイルディスクリプタを返す。
48 は SPU ファイルシステム (SPUFS) のマウントポイント内の
49 存在しないディレクトリを指していなければならない。
53 にディレクトリが生成され、そのディレクトリに
61 論理 SPU コンテキストが破棄されるのは、
62 コンテキスト自身へのファイルディスクリプタがクローズされ、
63 その中のファイルへのファイルディスクリプタが全てクローズされたときである。
64 SPU コンテキストが破棄されると、SPUFS 内のそのディレクトリの全てのエントリ
72 SPU のハードウェアレジスタのいくつかをユーザ空間にマッピングすることを
77 SPUFS 内に新しく生成されたディレクトリとファイルのアクセス許可は、
82 各ファイルの実際のアクセス許可は、そのファイルが読み出しアクセスや
83 書き込みアクセスをサポートしているかも考慮して決まる。
90 に以下のリストに記載のエラーコードのいずれかを設定する。
94 現在のユーザが SPUFS のマウントポイントへの書き込み許可を持っていない。
97 指定されたパス名の SPU コンテキストがすでに生成されている。
101 が現在のアドレス空間で有効な文字列ポインタではない。
105 が SPUFS マウントポインタ内のディレクトリではない。
109 を解決するまでに辿ったシンボリックリンクが多過ぎた。
112 そのプロセスがオープンできるファイル数の上限に達していた。
119 システム全体でオープンできるファイル数の上限に達していた。
126 カーネルが必要なリソースの全てを割り当てることができなかった。
129 新しいコンテキストを生成するのに十分な SPU リソースがなかった、
130 または SPU コンテキスト数がそのユーザの特定の上限に達していた。
133 機能が動作中のシステムで提供されていない。理由は、
134 ハードウェアで SPU が提供されていないか、
135 spufs モジュールがロードされていないか、のどちらかである。
142 は SPUFS のマウントポイントの配下の場所を指していなければならない。
148 システムコールはカーネル 2.6.16 で Linux に追加された。
150 このシステムコールは Linux 固有であり、
151 ppc64 アーキテクチャでのみ実装されている。
152 このシステムコールを使ったプログラムは移植性がない。
154 glibc はこのシステムコールに対するラッパー関数を提供していない。
158 は より抽象度の高い SPU へのインタフェースを実装するライブラリから
159 利用されることを意図したものであり、通常のアプリケーションから
160 使用は意図されていない。推奨のライブラリについては
161 .I http://www.bsc.es/projects/deepcomputing/linuxoncell/
164 実際のコードではここで述べた全ての機能が完全に実装されているわけではない。
166 .\" Arnd Bergmann <arndb@de.ibm.com>
170 .BR capabilities (7),