diff options
author | Arnd Bergmann <arnd@arndb.de> | 2007-07-20 15:39:47 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@klappe.arndb.de> | 2007-07-20 15:42:15 -0400 |
commit | 8e68e2f248332a9c3fd4f08258f488c209bd3e0c (patch) | |
tree | 3001a5a8ce652ffdea97b2f89569447830b9059a /include | |
parent | 3ad216cae837d90415c605e1149e6fd88f51c973 (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.h | 8 | ||||
-rw-r--r-- | include/linux/syscalls.h | 2 |
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 | ||
197 | struct spu *spu_alloc(void); | 197 | struct spu *spu_alloc(void); |
198 | struct spu *spu_alloc_node(int node); | 198 | struct spu *spu_alloc_node(int node); |
199 | struct spu *spu_alloc_spu(struct spu *spu); | ||
199 | void spu_free(struct spu *spu); | 200 | void spu_free(struct spu *spu); |
200 | int spu_irq_class_0_bottom(struct spu *spu); | 201 | int spu_irq_class_0_bottom(struct spu *spu); |
201 | int spu_irq_class_1_bottom(struct spu *spu); | 202 | int spu_irq_class_1_bottom(struct spu *spu); |
@@ -227,7 +228,8 @@ extern long spu_sys_callback(struct spu_syscall_block *s); | |||
227 | struct file; | 228 | struct file; |
228 | extern struct spufs_calls { | 229 | extern 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); | |||
549 | asmlinkage long sys_spu_run(int fd, __u32 __user *unpc, | 549 | asmlinkage long sys_spu_run(int fd, __u32 __user *unpc, |
550 | __u32 __user *ustatus); | 550 | __u32 __user *ustatus); |
551 | asmlinkage long sys_spu_create(const char __user *name, | 551 | asmlinkage 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 | ||
554 | asmlinkage long sys_mknodat(int dfd, const char __user * filename, int mode, | 554 | asmlinkage long sys_mknodat(int dfd, const char __user * filename, int mode, |
555 | unsigned dev); | 555 | unsigned dev); |