Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       spu_create - Créer 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);

       Remarque :  il  n'existe  pas  de  fonction  glibc autour de cet appel système ; consultez
       NOTES.

DESCRIPTION

       L'appel système spu_create() est utilisé sur les PowerPC disposant  de  l'architecture  du
       processeur  Cell  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 flags vaut zéro  ou  une  combinaison  par  un  OU  bit  à  bit  des  options
       suivantes :

       SPU_CREATE_EVENTS_ENABLED
              Plutôt  que  d'utiliser  des  signaux  pour  signaler  des  erreurs  DMA,  utiliser
              l'argument event de spu_run(2).

       SPU_CREATE_GANG
              Créer un gang SPU plutôt qu'un contexte. (Un gang est un groupe  de  contextes  SPU
              qui  sont  en  relation  fonctionnelle  entre  eux  et qui partagent des paramètres
              d'ordonnancement communs — priorité et politique. Dans le  futur,  l'ordonnancement
              de  gangs pourra être implémenté faisant que le groupe soit commuté comme une unité
              simple.)

              Un nouveau répertoire sera créé à l'endroit indiqué  par  l'argument  pathname.  Le
              gang  peut  être  utilisé  pour  tenir  d'autres contextes en fournissant un nom de
              chemin qui soit à l'intérieur du répertoire du gang pour des  appels  ultérieurs  à
              spu_create().

       SPU_CREATE_NOSCHED
              Crée  un  contexte  qui ne soit pas affecté par l'ordonnanceur SPU. Une fois que le
              contexte est lancé, il ne sera pas déplanifié jusqu'à ce qu'il soit détruit par  le
              processus créateur.

              Parce   que   le   contexte  ne  peut  pas  être  supprimé  de  la  SPU,  certaines
              fonctionnalités  sont  désactivées  des  contextes  SPU_CREATE_NOSCHED.   Seul   un
              sous-ensemble  de  fichiers  sera  disponible dans le répertoire du contexte sur le
              système de fichiers spufs. De plus, les contextes SPU_CREATE_NOSCHED ne peuvent pas
              créer de fichier de vidage lors d'un plantage.

              La création de contextes SPU_CREATE_NOSCHED nécessite la capacité CAP_SYS_NICE.

       SPU_CREATE_ISOLATE
              Crée  un  contexte  SPU  isolé.  Les  contextes  isolés  sont protégés de certaines
              opérations PPE (PowerPC Processing Element), comme l'accès au stockage local de  la
              SPU ou au registre NPC.

              La   création   de  contextes  SPU_CREATE_ISOLATE  nécessite  également  l'attribut
              SPU_CREATE_NOSCHED.

       SPU_CREATE_AFFINITY_SPU
              Crée un contexte  avec  l'affinité  d'un  autre  contexte  SPU.  Cette  information
              d'affinité est utilisée dans l'algorithme d'ordonnancement du SPU. L'utilisation de
              cet attribut nécessite que le descripteur de fichier référençant  l'autre  contexte
              SPU soit passé dans l'argument neighbor_fd.

       SPU_CREATE_AFFINITY_MEM
              Crée  un  contexte  avec  l'affinité  de  la  mémoire  système.  Cette  information
              d'affinité est utilisée dans l'algorithme d'ordonnancement du SPU.

       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.

VALEUR RENVOYÉE

       S'il réussit, spu_create() renvoie un nouveau descripteur de fichier. En cas d'erreur,  il
       renvoie -1 et errno contient l'un des codes d'erreur listés ci-dessous.

ERREURS

       EACCES L'utilisateur en cours n'a pas accès au point de montage du spufs(7).

       EEXIST Un contexte SPU existe déjà dans le chemin fourni.

       EFAULT pathname  n'est  pas  un  pointeur  de  chaîne  valable dans l'espace d'adresses du
              processus appelant.

       EINVAL pathname n'est pas un répertoire du point de montage du spufs(7),  ou  des  options
              non valables ont été fournies.

       ELOOP  Trop de liens symboliques trouvés lors de la résolution de pathname.

       EMFILE Le processus a atteint sa limite du nombre de fichiers ouverts.

       ENAMETOOLONG
              pathname est trop long.

       ENFILE Le système a atteint la limite globale du nombre de fichiers ouverts.

       ENODEV Un contexte isolé a été demandé mais le matériel ne prend pas en charge l'isolation
              SPU.

       ENOENT Une partie de pathname n'a pas pu être résolue.

       ENOMEM Le noyau n'a pas pu allouer toutes les ressources nécessaires.

       ENOSPC Il n'y a pas suffisamment de ressources  SPU  disponibles  pour  créer  un  nouveau
              contexte  ou  la limite spécifique à l'utilisateur du nombre de contextes SPU a été
              atteinte.

       ENOSYS La fonctionnalité n'est par fournie par le système actuel parce que le matériel  ne
              fournit pas de SPU ou parce que le module spufs n'est pas chargé.

       ENOTDIR
              Un élément du chemin d'accès pathname n'est pas un répertoire.

       EPERM  L'attribut  SPU_CREATE_NOSCHED  a été fourni mais l'utilisateur n'a pas la capacité
              CAP_SYS_NICE.

FICHIERS

       pathname doit pointer vers un emplacement du point de montage du spufs, qui est monté  par
       convention dans /spu.

VERSIONS

       L'appel système spu_create() est apparu dans Linux 2.6.16.

CONFORMITÉ

       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.

NOTES

       La glibc ne fournit pas de fonction pour cet  appel  système :  utilisez  syscall(2)  pour
       l'appeler.  Notez  cependant  que  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.

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.65 du projet man-pages Linux.  Une  description
       du  projet  et  des  instructions  pour  signaler  des  anomalies  peuvent être trouvées à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <http://po4a.alioth.debian.org/>  par l'équipe de traduction francophone au sein du projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>   ou   par   un  rapport  de  bogue  sur  le  paquet
       manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document  en  utilisant  la
       commande « man -L C <section> <page_de_man> ».