return swap_get_karg(regs, n);
}
+static inline struct task_struct *swap_switch_to_prev(struct pt_regs *regs)
+{
+ return (struct task_struct *)swap_get_karg(regs, 0);
+}
+
+static inline struct task_struct *swap_switch_to_next(struct pt_regs *regs)
+{
+ return ((struct thread_info *)swap_get_karg(regs, 2))->task;
+}
+
/* jumper */
typedef unsigned long (*jumper_cb_t)(void *);
return swap_get_karg(regs, n);
}
+static inline struct task_struct *swap_switch_to_prev(struct pt_regs *regs)
+{
+ return (struct task_struct *)swap_get_karg(regs, 0);
+}
+
+static inline struct task_struct *swap_switch_to_next(struct pt_regs *regs)
+{
+ return (struct task_struct *)swap_get_karg(regs, 1);
+}
+
static inline unsigned long swap_get_kpc(struct pt_regs *regs)
{
return regs->pc;
return *((unsigned long *)kernel_stack_pointer(regs) + n + 1);
}
+static inline struct task_struct *swap_switch_to_prev(struct pt_regs *regs)
+{
+ return (struct task_struct *)swap_get_karg(regs, 0);
+}
+
+static inline struct task_struct *swap_switch_to_next(struct pt_regs *regs)
+{
+ return (struct task_struct *)swap_get_karg(regs, 1);
+}
+
/* jumper */
typedef unsigned long (*jumper_cb_t)(void *);