10 #include <linux/compiler.h>
12 #include <linux/sched.h>
13 #include <linux/kernel.h>
15 #include <linux/elfcore.h>
17 #include <linux/slab.h>
20 #include <linux/personality.h>
24 #include <linux/random.h>
25 #include <linux/module.h>
27 #include <asm/processor.h>
33 #include <asm/switch_to.h>
56 if (sf <= low || sf > high)
59 if (sf <= low || sf > high)
89 tick_nohz_idle_enter();
94 tick_nohz_idle_exit();
119 int copy_thread(
unsigned long clone_flags,
unsigned long new_stackp,
133 save_access_regs(&p->
thread.acrs[0]);
146 frame->sf.back_chain = 0;
160 frame->childregs.gprs[9] = new_stackp;
163 frame->childregs.orig_gpr2 = -1;
168 frame->childregs.gprs[2] = 0;
169 frame->childregs.gprs[15] = new_stackp;
181 save_fp_regs(&
current->thread.fp_regs);
189 save_fp_regs(&p->
thread.fp_regs);
191 if (clone_flags & CLONE_SETTLS) {
210 int __user *, parent_tidptr,
int __user *, child_tidptr)
215 newsp = regs->
gprs[15];
216 return do_fork(clone_flags, newsp, regs, 0,
217 parent_tidptr, child_tidptr);
239 current->thread.fp_regs.fpc = 0;
241 asm volatile(
"sfpc %0,%0" : :
"d" (0));
254 save_fp_regs(&
current->thread.fp_regs);
257 save_fp_regs(fpregs);
274 if (sf <= low || sf > high)
276 for (count = 0; count < 16; count++) {
278 if (sf <= low || sf > high)
282 return return_address;
294 static inline unsigned long brk_rnd(
void)