((tsk) == current ? rdusp() : task_thread_info(tsk)->pcb.usp)
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
#define ARCH_HAS_PREFETCH
#define ARCH_HAS_PREFETCHW
#ifndef CONFIG_EZNPS_MTM_EXT
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
#else
#define cpu_relax() \
__asm__ __volatile__ (".word %0" : : "i"(CTOP_INST_SCHD_RW) : "memory")
-#define cpu_relax_yield() cpu_relax()
-
#endif
#define copy_segments(tsk, mm) do { } while (0)
#define cpu_relax() barrier()
#endif
-#define cpu_relax_yield() cpu_relax()
-
#define task_pt_regs(p) \
((struct pt_regs *)(THREAD_START_SP + task_stack_page(p)) - 1)
asm volatile("yield" ::: "memory");
}
-#define cpu_relax_yield() cpu_relax()
-
/* Thread switching */
extern struct task_struct *cpu_switch_to(struct task_struct *prev,
struct task_struct *next);
#define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
#define cpu_sync_pipeline() asm volatile("sub pc, -2" : : : "memory")
struct cpu_context {
#define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->thread.usp)
#define cpu_relax() smp_mb()
-#define cpu_relax_yield() cpu_relax()
/* Get the Silicon Revision of the chip */
static inline uint32_t __pure bfin_revid(void)
#define KSTK_ESP(task) (task_pt_regs(task)->sp)
#define cpu_relax() do { } while (0)
-#define cpu_relax_yield() cpu_relax()
extern const struct seq_operations cpuinfo_op;
#define init_stack (init_thread_union.stack)
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
void default_idle(void);
#define KSTK_ESP(tsk) ((tsk)->thread.frame0->sp)
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
/* data cache prefetch */
#define ARCH_HAS_PREFETCH
#define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->thread.usp)
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
#define HARD_RESET_NOW() ({ \
local_irq_disable(); \
}
#define cpu_relax() __vmyield()
-#define cpu_relax_yield() cpu_relax()
/*
* Decides where the kernel will search for a free chunk of vm space during
}
#define cpu_relax() ia64_hint(ia64_hint_pause)
-#define cpu_relax_yield() cpu_relax()
static inline int
ia64_get_irr(unsigned int vector)
#define KSTK_ESP(tsk) ((tsk)->thread.sp)
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
#endif /* _ASM_M32R_PROCESSOR_H */
#define task_pt_regs(tsk) ((struct pt_regs *) ((tsk)->thread.esp0))
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
#endif
#define user_stack_pointer(regs) ((regs)->ctx.AX[0].U0)
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
extern void setup_priv(void);
extern const struct seq_operations cpuinfo_op;
# define cpu_relax() barrier()
-# define cpu_relax_yield() cpu_relax()
#define task_pt_regs(tsk) \
(((struct pt_regs *)(THREAD_SIZE + task_stack_page(tsk))) - 1)
#define KSTK_STATUS(tsk) (task_pt_regs(tsk)->cp0_status)
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
/*
* Return_address is a replacement for __builtin_return_address(count)
extern void dodgy_tsc(void);
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
/*
* User space process size: 1.75GB (default).
#define KSTK_ESP(tsk) ((tsk)->thread.kregs->sp)
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
#endif /* __ASSEMBLY__ */
#define init_stack (init_thread_union.stack)
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
#endif /* __ASSEMBLY__ */
#endif /* __ASM_OPENRISC_PROCESSOR_H */
#define KSTK_ESP(tsk) ((tsk)->thread.regs.gr[30])
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
/*
* parisc_requires_coherency() is used to identify the combined VIPT/PIPT
#define cpu_relax() barrier()
#endif
-#define cpu_relax_yield() cpu_relax()
-
/* Check that a certain kernel stack pointer is valid in task_struct p */
int validate_sp(unsigned long sp, struct task_struct *p,
unsigned long nbytes);
/*
* Give up the time slice of the virtual PU.
*/
+#define cpu_relax_yield cpu_relax_yield
void cpu_relax_yield(void);
#define cpu_relax() barrier()
#define current_text_addr() ({ __label__ _l; _l: &&_l; })
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
#define release_thread(thread) do {} while (0)
/*
#define cpu_sleep() __asm__ __volatile__ ("sleep" : : : "memory")
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
void default_idle(void);
void stop_this_cpu(void *);
int do_mathemu(struct pt_regs *regs, struct task_struct *fpt);
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
extern void (*sparc_idle)(void);
"nop\n\t" \
".previous" \
::: "memory")
-#define cpu_relax_yield() cpu_relax()
/* Prefetch support. This is tuned for UltraSPARC-III and later.
* UltraSPARC-I will treat these as nops, and UltraSPARC-II has
barrier();
}
-#define cpu_relax_yield() cpu_relax()
-
/* Info on this processor (see fs/proc/cpuinfo.c) */
struct seq_operations;
extern const struct seq_operations cpuinfo_op;
unsigned long get_wchan(struct task_struct *p);
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
#define task_pt_regs(p) \
((struct pt_regs *)(THREAD_START_SP + task_stack_page(p)) - 1)
rep_nop();
}
-#define cpu_relax_yield() cpu_relax()
-
/* Stop speculative execution and prefetching of modified code. */
static inline void sync_core(void)
{
}
#define cpu_relax() rep_nop()
-#define cpu_relax_yield() cpu_relax()
#define task_pt_regs(t) (&(t)->thread.regs)
#define KSTK_ESP(tsk) (task_pt_regs(tsk)->areg[1])
#define cpu_relax() barrier()
-#define cpu_relax_yield() cpu_relax()
/* Special register access. */
static inline void calc_load_exit_idle(void) { }
#endif /* CONFIG_NO_HZ_COMMON */
+#ifndef cpu_relax_yield
+#define cpu_relax_yield() cpu_relax()
+#endif
+
/*
* Do not use outside of architecture code which knows its limitations.
*