aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2007-07-20 15:39:47 -0400
committerArnd Bergmann <arnd@klappe.arndb.de>2007-07-20 15:42:15 -0400
commit8e68e2f248332a9c3fd4f08258f488c209bd3e0c (patch)
tree3001a5a8ce652ffdea97b2f89569447830b9059a /include
parent3ad216cae837d90415c605e1149e6fd88f51c973 (diff)
[CELL] spufs: extension of spu_create to support affinity definition
This patch adds support for additional flags at spu_create, which relate to the establishment of affinity between contexts and contexts to memory. A fourth, optional, parameter is supported. This parameter represent a affinity neighbor of the context being created, and is used when defining SPU-SPU affinity. Affinity is represented as a doubly linked list of spu_contexts. Signed-off-by: Andre Detsch <adetsch@br.ibm.com> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Diffstat (limited to 'include')
-rw-r--r--include/asm-powerpc/spu.h8
-rw-r--r--include/linux/syscalls.h2
2 files changed, 7 insertions, 3 deletions
diff --git a/include/asm-powerpc/spu.h b/include/asm-powerpc/spu.h
index 18e558bef98e..24f352da2869 100644
--- a/include/asm-powerpc/spu.h
+++ b/include/asm-powerpc/spu.h
@@ -196,6 +196,7 @@ extern struct cbe_spu_info cbe_spu_info[];
196 196
197struct spu *spu_alloc(void); 197struct spu *spu_alloc(void);
198struct spu *spu_alloc_node(int node); 198struct spu *spu_alloc_node(int node);
199struct spu *spu_alloc_spu(struct spu *spu);
199void spu_free(struct spu *spu); 200void spu_free(struct spu *spu);
200int spu_irq_class_0_bottom(struct spu *spu); 201int spu_irq_class_0_bottom(struct spu *spu);
201int spu_irq_class_1_bottom(struct spu *spu); 202int spu_irq_class_1_bottom(struct spu *spu);
@@ -227,7 +228,8 @@ extern long spu_sys_callback(struct spu_syscall_block *s);
227struct file; 228struct file;
228extern struct spufs_calls { 229extern struct spufs_calls {
229 asmlinkage long (*create_thread)(const char __user *name, 230 asmlinkage long (*create_thread)(const char __user *name,
230 unsigned int flags, mode_t mode); 231 unsigned int flags, mode_t mode,
232 struct file *neighbor);
231 asmlinkage long (*spu_run)(struct file *filp, __u32 __user *unpc, 233 asmlinkage long (*spu_run)(struct file *filp, __u32 __user *unpc,
232 __u32 __user *ustatus); 234 __u32 __user *ustatus);
233 struct module *owner; 235 struct module *owner;
@@ -254,8 +256,10 @@ struct spu_coredump_calls {
254#define SPU_CREATE_GANG 0x0002 256#define SPU_CREATE_GANG 0x0002
255#define SPU_CREATE_NOSCHED 0x0004 257#define SPU_CREATE_NOSCHED 0x0004
256#define SPU_CREATE_ISOLATE 0x0008 258#define SPU_CREATE_ISOLATE 0x0008
259#define SPU_CREATE_AFFINITY_SPU 0x0010
260#define SPU_CREATE_AFFINITY_MEM 0x0020
257 261
258#define SPU_CREATE_FLAG_ALL 0x000f /* mask of all valid flags */ 262#define SPU_CREATE_FLAG_ALL 0x003f /* mask of all valid flags */
259 263
260 264
261#ifdef CONFIG_SPU_FS_MODULE 265#ifdef CONFIG_SPU_FS_MODULE
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index 7a8b1e3322e0..61def7c8fbb3 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -549,7 +549,7 @@ asmlinkage long sys_inotify_rm_watch(int fd, u32 wd);
549asmlinkage long sys_spu_run(int fd, __u32 __user *unpc, 549asmlinkage long sys_spu_run(int fd, __u32 __user *unpc,
550 __u32 __user *ustatus); 550 __u32 __user *ustatus);
551asmlinkage long sys_spu_create(const char __user *name, 551asmlinkage long sys_spu_create(const char __user *name,
552 unsigned int flags, mode_t mode); 552 unsigned int flags, mode_t mode, int fd);
553 553
554asmlinkage long sys_mknodat(int dfd, const char __user * filename, int mode, 554asmlinkage long sys_mknodat(int dfd, const char __user * filename, int mode,
555 unsigned dev); 555 unsigned dev);