diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-powerpc/elf.h | 13 | ||||
-rw-r--r-- | include/asm-powerpc/spu.h | 10 | ||||
-rw-r--r-- | include/linux/elf.h | 7 |
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 | |||
418 | extern int arch_notes_size(void); | ||
419 | extern 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 */ | ||
176 | struct 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 | ||
213 | int register_arch_coredump_calls(struct spu_coredump_calls *calls); | ||
214 | void unregister_arch_coredump_calls(struct spu_coredump_calls *calls); | ||
215 | |||
206 | int spu_add_sysdev_attr(struct sysdev_attribute *attr); | 216 | int spu_add_sysdev_attr(struct sysdev_attribute *attr); |
207 | void spu_remove_sysdev_attr(struct sysdev_attribute *attr); | 217 | void 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 | ||
372 | static inline int arch_notes_size(void) { return 0; } | ||
373 | static 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 */ |