aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2006-10-04 11:26:21 -0400
committerPaul Mackerras <paulus@samba.org>2006-10-04 19:21:02 -0400
commit867672777964b9309e4e914fe097648c938b67b2 (patch)
treeef37d5252aa35497e96acf6b0e29e56894e6ab77 /include
parent7650f2f2c367242a2092908794b4486876baf6c7 (diff)
[POWERPC] spufs: add infrastructure for finding elf objects
This adds an 'object-id' file that the spe library can use to store a pointer to its ELF object. This was originally meant for use by oprofile, but is now also used by the GNU debugger, if available. In order for oprofile to find the location in an spu-elf binary where an event counter triggered, we need a way to identify the binary in the first place. Unfortunately, that binary itself can be embedded in a powerpc ELF binary. Since we can assume it is mapped into the effective address space of the running process, have that one write the pointer value into a new spufs file. When a context switch occurs, pass the user value to the profiler so that can look at the mapped file (with some care). Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-powerpc/spu.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/asm-powerpc/spu.h b/include/asm-powerpc/spu.h
index 83b6dae48efc..e73ea00efd8b 100644
--- a/include/asm-powerpc/spu.h
+++ b/include/asm-powerpc/spu.h
@@ -201,6 +201,24 @@ static inline void unregister_spu_syscalls(struct spufs_calls *calls)
201 201
202 202
203/* 203/*
204 * Notifier blocks:
205 *
206 * oprofile can get notified when a context switch is performed
207 * on an spe. The notifer function that gets called is passed
208 * a pointer to the SPU structure as well as the object-id that
209 * identifies the binary running on that SPU now.
210 *
211 * For a context save, the object-id that is passed is zero,
212 * identifying that the kernel will run from that moment on.
213 *
214 * For a context restore, the object-id is the value written
215 * to object-id spufs file from user space and the notifer
216 * function can assume that spu->ctx is valid.
217 */
218int spu_switch_event_register(struct notifier_block * n);
219int spu_switch_event_unregister(struct notifier_block * n);
220
221/*
204 * This defines the Local Store, Problem Area and Privlege Area of an SPU. 222 * This defines the Local Store, Problem Area and Privlege Area of an SPU.
205 */ 223 */
206 224