Provided by: manpages-fr-dev_3.32d0.2p4-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);

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 spécifié 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 (moins les bits positionnés dans l'umask(2) du processus) spécifie 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.32 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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