spu_create(2) | System Calls Manual | spu_create(2) |
spu_create - Créer un nouveau contexte spu
Bibliothèque C standard (libc, -lc)
#include <sys/spu.h> /* Définition des constantes SPU_* */ #include <sys/syscall.h> /* Définition des constantes SYS_* */ #include <unistd.h>
int syscall(SYS_spu_create, const char *pathname, unsigned int flags, mode_t mode, int neighbor_fd);
Remarque : la glibc ne fournit pas d'enveloppe pour spu_create(), imposant l'utilisation de syscall(2).
L'appel système spu_create() est utilisé sur les PowerPC disposant de l'architecture du processeur Cell (Cell Broadband Engine Architecture) dans le but d'accéder aux SPU (Synergistic Processor Units). Il crée un nouveau contexte logique pour un SPU dans pathname et renvoie le descripteur de fichier qui lui est associé. pathname doit pointer vers un répertoire qui n'existe pas sur le point de montage du système de fichiers SPU (spufs). Si spu_create() réussit, un répertoire est créé dans pathname et est rempli par les fichiers décrits dans spufs(7).
Lorsqu'un contexte est créé, le descripteur de fichier renvoyé ne peut qu'être passé à spu_run(2), utilisé comme paramètre dirfd pour les appels système de la famille *at (par exemple, openat(2)), ou fermé ; d'autres opérations ne sont pas définies. Un contexte logique SPU est détruit (avec tous les fichiers créés dans le répertoire pathname du contexte) lorsque la dernière référence au contexte a disparu ; cela survient généralement lorsque le descripteur de fichier renvoyé par spu_create() est fermé.
Le paramètre mode (sauf les bits positionnés dans l'umask(2) du processus) indique les permissions utilisées pour créer le nouveau répertoire sur le système de fichiers spufs. Consultez stat(2) pour une liste complète des valeurs de mode.
L'argument neighbor_fd est utilisé seulement quand l'attribut SPU_CREATE_AFFINITY_SPU est spécifié ; voir plus bas.
Le paramètre flags vaut zéro ou une combinaison par un OU bit à bit des options suivantes :
S'il réussit, spu_create() renvoie un nouveau descripteur de fichier. En cas d'échec, il renvoie -1 et errno est défini pour indiquer l'erreur.
pathname doit pointer vers un emplacement du point de montage du spufs, qui est monté par convention dans /spu.
L'appel système spu_create() est apparu dans Linux 2.6.16.
Cet appel système est spécifique à Linux et implémenté uniquement sur l'architecture PowerPC. Les programmes qui l'utilisent ne sont pas portables.
spu_create() est conçu pour être appelé depuis des bibliothèques qui implémentent une interface plus abstraite pour les SPU, pas pour être appelé directement par les applications normales. Consultez http://www.bsc.es/projects/deepcomputing/linuxoncell/ pour les bibliothèques recommandées.
Avant l'ajout dans Linux 2.6.23 de l'attribut SPU_CREATE_AFFINITY_SPU, l'appel système spu_create() ne prenait que trois arguments (c'est-à-dire que l'argument neighbor_fd n'existait pas).
Consultez spu_run(2) pour un exemple d'utilisation de spu_create()
close(2), spu_run(2), capabilities(7), spufs(7)
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.
5 février 2023 | Pages du manuel de Linux 6.03 |