V4L/DVB: ir-core: dynamically load the compiled IR protocols
[safe/jmp/linux-2.6] / include / linux / ptrace.h
index 56f2d63..e1fb607 100644 (file)
 #define PTRACE_GETSIGINFO      0x4202
 #define PTRACE_SETSIGINFO      0x4203
 
+/*
+ * Generic ptrace interface that exports the architecture specific regsets
+ * using the corresponding NT_* types (which are also used in the core dump).
+ * Please note that the NT_PRSTATUS note type in a core dump contains a full
+ * 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the
+ * elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the
+ * other user_regset flavors, the user_regset layout and the ELF core dump note
+ * payload are exactly the same layout.
+ *
+ * This interface usage is as follows:
+ *     struct iovec iov = { buf, len};
+ *
+ *     ret = ptrace(PTRACE_GETREGSET/PTRACE_SETREGSET, pid, NT_XXX_TYPE, &iov);
+ *
+ * On the successful completion, iov.len will be updated by the kernel,
+ * specifying how much the kernel has written/read to/from the user's iov.buf.
+ */
+#define PTRACE_GETREGSET       0x4204
+#define PTRACE_SETREGSET       0x4205
+
 /* options set using PTRACE_SETOPTIONS */
 #define PTRACE_O_TRACESYSGOOD  0x00000001
 #define PTRACE_O_TRACEFORK     0x00000002
@@ -244,6 +264,9 @@ static inline void user_enable_single_step(struct task_struct *task)
 static inline void user_disable_single_step(struct task_struct *task)
 {
 }
+#else
+extern void user_enable_single_step(struct task_struct *);
+extern void user_disable_single_step(struct task_struct *);
 #endif /* arch_has_single_step */
 
 #ifndef arch_has_block_step
@@ -271,6 +294,8 @@ static inline void user_enable_block_step(struct task_struct *task)
 {
        BUG();                  /* This can never be called.  */
 }
+#else
+extern void user_enable_block_step(struct task_struct *);
 #endif /* arch_has_block_step */
 
 #ifdef ARCH_HAS_USER_SINGLE_STEP_INFO