aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/asm-powerpc/elf.h13
-rw-r--r--include/asm-powerpc/spu.h10
-rw-r--r--include/linux/elf.h7
3 files changed, 30 insertions, 0 deletions
diff --git a/include/asm-powerpc/elf.h b/include/asm-powerpc/elf.h
index 9a83a987d396..4545aa682509 100644
--- a/include/asm-powerpc/elf.h
+++ b/include/asm-powerpc/elf.h
@@ -411,4 +411,17 @@ do { \
411/* Keep this the last entry. */ 411/* Keep this the last entry. */
412#define R_PPC64_NUM 107 412#define R_PPC64_NUM 107
413 413
414#ifdef CONFIG_PPC_CELL
415/* Notes used in ET_CORE. Note name is "SPU/<fd>/<filename>". */
416#define NT_SPU 1
417
418extern int arch_notes_size(void);
419extern void arch_write_notes(struct file *file);
420
421#define ELF_CORE_EXTRA_NOTES_SIZE arch_notes_size()
422#define ELF_CORE_WRITE_EXTRA_NOTES arch_write_notes(file)
423
424#define ARCH_HAVE_EXTRA_ELF_NOTES
425#endif /* CONFIG_PPC_CELL */
426
414#endif /* _ASM_POWERPC_ELF_H */ 427#endif /* _ASM_POWERPC_ELF_H */
diff --git a/include/asm-powerpc/spu.h b/include/asm-powerpc/spu.h
index ffa4df083609..f968f8697538 100644
--- a/include/asm-powerpc/spu.h
+++ b/include/asm-powerpc/spu.h
@@ -172,6 +172,13 @@ extern struct spufs_calls {
172 struct module *owner; 172 struct module *owner;
173} spufs_calls; 173} spufs_calls;
174 174
175/* coredump calls implemented in spufs */
176struct spu_coredump_calls {
177 asmlinkage int (*arch_notes_size)(void);
178 asmlinkage void (*arch_write_notes)(struct file *file);
179 struct module *owner;
180};
181
175/* return status from spu_run, same as in libspe */ 182/* return status from spu_run, same as in libspe */
176#define SPE_EVENT_DMA_ALIGNMENT 0x0008 /*A DMA alignment error */ 183#define SPE_EVENT_DMA_ALIGNMENT 0x0008 /*A DMA alignment error */
177#define SPE_EVENT_SPE_ERROR 0x0010 /*An illegal instruction error*/ 184#define SPE_EVENT_SPE_ERROR 0x0010 /*An illegal instruction error*/
@@ -203,6 +210,9 @@ static inline void unregister_spu_syscalls(struct spufs_calls *calls)
203} 210}
204#endif /* MODULE */ 211#endif /* MODULE */
205 212
213int register_arch_coredump_calls(struct spu_coredump_calls *calls);
214void unregister_arch_coredump_calls(struct spu_coredump_calls *calls);
215
206int spu_add_sysdev_attr(struct sysdev_attribute *attr); 216int spu_add_sysdev_attr(struct sysdev_attribute *attr);
207void spu_remove_sysdev_attr(struct sysdev_attribute *attr); 217void spu_remove_sysdev_attr(struct sysdev_attribute *attr);
208 218
diff --git a/include/linux/elf.h b/include/linux/elf.h
index b70d1d2c8d28..743d5c8e6d36 100644
--- a/include/linux/elf.h
+++ b/include/linux/elf.h
@@ -368,5 +368,12 @@ extern Elf64_Dyn _DYNAMIC [];
368 368
369#endif 369#endif
370 370
371#ifndef ARCH_HAVE_EXTRA_ELF_NOTES
372static inline int arch_notes_size(void) { return 0; }
373static inline void arch_write_notes(struct file *file) { }
374
375#define ELF_CORE_EXTRA_NOTES_SIZE arch_notes_size()
376#define ELF_CORE_WRITE_EXTRA_NOTES arch_write_notes(file)
377#endif /* ARCH_HAVE_EXTRA_ELF_NOTES */
371 378
372#endif /* _LINUX_ELF_H */ 379#endif /* _LINUX_ELF_H */