Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
spu_create - Creer un nouveau contexte spu
SYNOPSIS
#include <sys/types.h>
#include <sys/spu.h>
int spu_create(const char *pathname, int flags, mode_t mode);
int spu_create(const char *pathname, int flags, mode_t mode,
int neighbor_fd);
DESCRIPTION
L'appel systeme spu_create() est utilise sur les PowerPC disposant de
l'architecture du processeur Cell dans le but d'acceder aux SPU
(Synergistic Processor Units). Il cree un nouveau contexte logique pour
un SPU dans pathname et renvoie le descripteur de fichier qui lui est
associe. pathname doit pointer vers un repertoire qui n'existe pas sur
le point de montage du systeme de fichiers SPU (spufs). Si spu_create()
reussit, un repertoire est cree dans pathname et est rempli par les
fichiers decrits dans spufs(7).
Lorsqu'un contexte est cree, le descripteur de fichier renvoye ne peut
qu'etre passe a spu_run(2), utilise comme parametre dirfd pour les
appels systeme de la famille *at (par exemple, openat(2)), ou ferme ;
d'autres operations ne sont pas definies. Un contexte logique SPU est
detruit (avec tous les fichiers crees dans le repertoire pathname du
contexte) lorsque la derniere reference au contexte a disparu ; cela
survient generalement lorsque le descripteur de fichier renvoye par
spu_create() est ferme.
Le parametre flags vaut zero ou une combinaison par un OU bit a bit des
options suivantes :
SPU_CREATE_EVENTS_ENABLED
Plutot que d'utiliser des signaux pour signaler des erreurs DMA,
utiliser l'argument event de spu_run(2).
SPU_CREATE_GANG
Creer un gang SPU plutot qu'un contexte. (Un gang est un groupe
de contextes SPU qui sont en relation fonctionnelle entre eux et
qui partagent des parametres d'ordonnancement communs --
priorite et politique. Dans le futur, l'ordonnancement de gangs
pourra etre implemente faisant que le groupe soit commute comme
une unite simple.)
Un nouveau repertoire sera cree a l'endroit specifie par
l'argument pathname. Le gang peut etre utilise pour tenir
d'autres contextes en fournissant un nom de chemin qui soit a
l'interieur du repertoire du gang pour des appels ulterieurs a
spu_create().
SPU_CREATE_NOSCHED
Cree un contexte qui ne soit pas affecte par l'ordonnanceur SPU.
Une fois que le contexte est lance, il ne sera pas deplanifie
jusqu'a ce qu'il soit detruit par le processus createur.
Parce que le contexte ne peut pas etre supprime de la SPU,
certaines fonctionnalites sont desactivees des contextes
SPU_CREATE_NOSCHED. Seul un sous-ensemble de fichiers sera
disponible dans le repertoire du contexte sur le systeme de
fichiers spufs. De plus, les contextes SPU_CREATE_NOSCHED ne
peuvent pas creer de fichier de vidage lors d'un plantage.
La creation de contextes SPU_CREATE_NOSCHED necessite la
capacite CAP_SYS_NICE.
SPU_CREATE_ISOLATE
Cree un contexte SPU isole. Les contextes isoles sont proteges
de certaines operations PPE (PowerPC Processing Element), comme
l'acces au stockage local de la SPU ou au registre NPC.
La creation de contextes SPU_CREATE_ISOLATE necessite egalement
l'attribut SPU_CREATE_NOSCHED.
SPU_CREATE_AFFINITY_SPU
Cree un contexte avec l'affinite d'un autre contexte SPU. Cette
information d'affinite est utilisee dans l'algorithme
d'ordonnancement du SPU. L'utilisation de cet attribut necessite
que le descripteur de fichier referencant l'autre contexte SPU
soit passe dans l'argument neighbor_fd.
SPU_CREATE_AFFINITY_MEM
Cree un contexte avec l'affinite de la memoire systeme. Cette
information d'affinite est utilisee dans l'algorithme
d'ordonnancement du SPU.
Le parametre mode (moins les bits positionnes dans l'umask(2) du
processus) specifie les permissions utilisees pour creer le nouveau
repertoire sur le systeme de fichiers spufs. Consultez stat(2) pour une
liste complete des valeurs de mode.
VALEUR RENVOY'EE
S'il reussit, spu_create() renvoie un nouveau descripteur de fichier.
En cas d'erreur, il renvoie -1 et errno contient l'un des codes
d'erreur listes ci-dessous.
ERREURS
EACCES L'utilisateur en cours n'a pas acces au point de montage du
spufs(7).
EEXIST Un contexte SPU existe deja dans le chemin fourni.
EFAULT pathname n'est pas un pointeur de chaine valable dans l'espace
d'adresses du processus appelant.
EINVAL pathname n'est pas un repertoire du point de montage du
spufs(7), ou des options non valables ont ete fournies.
ELOOP Trop de liens symboliques trouves lors de la resolution de
pathname.
EMFILE Le processus a atteint sa limite du nombre de fichiers ouverts.
ENAMETOOLONG
pathname est trop long.
ENFILE Le systeme a atteint la limite globale du nombre de fichiers
ouverts.
ENODEV Un contexte isole a ete demande mais le materiel ne prend pas en
charge l'isolation SPU.
ENOENT Une partie de pathname n'a pas pu etre resolue.
ENOMEM Le noyau n'a pas pu allouer toutes les ressources necessaires.
ENOSPC Il n'y a pas suffisamment de ressources SPU disponibles pour
creer un nouveau contexte ou la limite specifique a
l'utilisateur du nombre de contextes SPU a ete atteinte.
ENOSYS La fonctionnalite n'est par fournie par le systeme actuel parce
que le materiel ne fournit pas de SPU ou parce que le module
spufs n'est pas charge.
ENOTDIR
Un element du chemin d'acces pathname n'est pas un repertoire.
EPERM L'attribut SPU_CREATE_NOSCHED a ete fourni mais l'utilisateur
n'a pas la capacite CAP_SYS_NICE.
FICHIERS
pathname doit pointer vers un emplacement du point de montage du spufs,
qui est monte par convention dans /spu.
VERSIONS
L'appel systeme spu_create() est apparu dans Linux 2.6.16.
CONFORMIT'E
Cet appel systeme est specifique a Linux et implemente uniquement sur
l'architecture PowerPC. Les programmes qui l'utilisent ne sont pas
portables.
NOTES
La glibc ne fournit pas de fonction pour cet appel systeme : utilisez
syscall(2) pour l'appeler. Notez cependant que spu_create() est concu
pour etre appele depuis des bibliotheques qui implementent une
interface plus abstraite pour les SPU, pas pour etre appele directement
par les applications normales. Consultez
http://www.bsc.es/projects/deepcomputing/linuxoncell/ pour les
bibliotheques recommandees.
EXEMPLE
Consultez spu_run(2) pour un exemple d'utilisation de spu_create()
VOIR AUSSI
close(2), spu_run(2), capabilities(7), spufs(7)
COLOPHON
Cette page fait partie de la publication 3.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Julien Cristau et l'equipe francophone de traduction de
Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.
Linux 20 decembre 2007 SPU_CREATE(2)