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/asm-powerpc | |
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/asm-powerpc')
-rw-r--r-- | include/asm-powerpc/spu.h | 8 |
1 files changed, 6 insertions, 2 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 |