~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/filesystems/spufs/spu_create.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GPL-2.0
  2 
  3 ==========
  4 spu_create
  5 ==========
  6 
  7 Name
  8 ====
  9        spu_create - create a new spu context
 10 
 11 
 12 Synopsis
 13 ========
 14 
 15        ::
 16 
 17          #include <sys/types.h>
 18          #include <sys/spu.h>
 19 
 20          int spu_create(const char *pathname, int flags, mode_t mode);
 21 
 22 Description
 23 ===========
 24        The  spu_create  system call is used on PowerPC machines that implement
 25        the Cell Broadband Engine Architecture in order to  access  Synergistic
 26        Processor  Units (SPUs). It creates a new logical context for an SPU in
 27        pathname and returns a handle to associated  with  it.   pathname  must
 28        point  to  a  non-existing directory in the mount point of the SPU file
 29        system (spufs).  When spu_create is successful, a directory  gets  cre-
 30        ated on pathname and it is populated with files.
 31 
 32        The  returned  file  handle can only be passed to spu_run(2) or closed,
 33        other operations are not defined on it. When it is closed, all  associ-
 34        ated  directory entries in spufs are removed. When the last file handle
 35        pointing either inside  of  the  context  directory  or  to  this  file
 36        descriptor is closed, the logical SPU context is destroyed.
 37 
 38        The  parameter flags can be zero or any bitwise or'd combination of the
 39        following constants:
 40 
 41        SPU_RAWIO
 42               Allow mapping of some of the hardware registers of the SPU  into
 43               user space. This flag requires the CAP_SYS_RAWIO capability, see
 44               capabilities(7).
 45 
 46        The mode parameter specifies the permissions used for creating the  new
 47        directory  in  spufs.   mode is modified with the user's umask(2) value
 48        and then used for both the directory and the files contained in it. The
 49        file permissions mask out some more bits of mode because they typically
 50        support only read or write access. See stat(2) for a full list  of  the
 51        possible mode values.
 52 
 53 
 54 Return Value
 55 ============
 56        spu_create  returns a new file descriptor. It may return -1 to indicate
 57        an error condition and set errno to  one  of  the  error  codes  listed
 58        below.
 59 
 60 
 61 Errors
 62 ======
 63        EACCES
 64               The  current  user does not have write access on the spufs mount
 65               point.
 66 
 67        EEXIST An SPU context already exists at the given path name.
 68 
 69        EFAULT pathname is not a valid string pointer in  the  current  address
 70               space.
 71 
 72        EINVAL pathname is not a directory in the spufs mount point.
 73 
 74        ELOOP  Too many symlinks were found while resolving pathname.
 75 
 76        EMFILE The process has reached its maximum open file limit.
 77 
 78        ENAMETOOLONG
 79               pathname was too long.
 80 
 81        ENFILE The system has reached the global open file limit.
 82 
 83        ENOENT Part of pathname could not be resolved.
 84 
 85        ENOMEM The kernel could not allocate all resources required.
 86 
 87        ENOSPC There  are  not  enough  SPU resources available to create a new
 88               context or the user specific limit for the number  of  SPU  con-
 89               texts has been reached.
 90 
 91        ENOSYS the functionality is not provided by the current system, because
 92               either the hardware does not provide SPUs or the spufs module is
 93               not loaded.
 94 
 95        ENOTDIR
 96               A part of pathname is not a directory.
 97 
 98 
 99 
100 Notes
101 =====
102        spu_create  is  meant  to  be used from libraries that implement a more
103        abstract interface to SPUs, not to be used from  regular  applications.
104        See  http://www.bsc.es/projects/deepcomputing/linuxoncell/ for the rec-
105        ommended libraries.
106 
107 
108 Files
109 =====
110        pathname must point to a location beneath the mount point of spufs.  By
111        convention, it gets mounted in /spu.
112 
113 
114 Conforming to
115 =============
116        This call is Linux specific and only implemented by the ppc64 architec-
117        ture. Programs using this system call are not portable.
118 
119 
120 Bugs
121 ====
122        The code does not yet fully implement all features lined out here.
123 
124 
125 Author
126 ======
127        Arnd Bergmann <arndb@de.ibm.com>
128 
129 See Also
130 ========
131        capabilities(7), close(2), spu_run(2), spufs(7)

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php