• Arnd Bergmann's avatar
    [PATCH] spufs: allow SPU code to do syscalls · 2dd14934
    Arnd Bergmann authored
    An SPU does not have a way to implement system calls
    itself, but it can create intercepts to the kernel.
    
    This patch uses the method defined by the JSRE interface
    for C99 host library calls from an SPU to implement
    Linux system calls. It uses the reserved SPU stop code
    0x2104 for this, using the structure layout and syscall
    numbers for ppc64-linux.
    
    I'm still undecided wether it is better to have a list
    of allowed syscalls or a list of forbidden syscalls,
    since we can't allow an SPU to call all syscalls that
    are defined for ppc64-linux.
    
    This patch implements the easier choice of them, with a
    blacklist that only prevents an SPU from calling anything
    that interacts with its own execution, e.g fork, execve,
    clone, vfork, exit, spu_run and spu_create and everything
    that deals with signals.
    Signed-off-by: default avatarArnd Bergmann <arnd.bergmann@de.ibm.com>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    2dd14934
spu_callbacks.c 12.3 KB