Lines Matching defs:frame
78 void setup_linux_sigframe(struct frame *frame, int sig,
80 void setup_linux_rt_sigframe(struct frame *frame, int sig,
98 * Setup signal frame for old signal interface.
101 setup_linux_sigframe(struct frame *frame, int sig, const sigset_t *mask, void *usp)
109 ft = frame->f_format;
123 /* Build stack frame. */
126 kf.sf_code = frame->f_vector; /* Does anyone use it? */
129 /* The sigtramp code is on the stack frame on Linux/m68k. */
136 * - original exception frame (if not a "normal" frame)
139 kf.sf_c.c_sc.sc_d0 = frame->f_regs[D0];
140 kf.sf_c.c_sc.sc_d1 = frame->f_regs[D1];
141 kf.sf_c.c_sc.sc_a0 = frame->f_regs[A0];
142 kf.sf_c.c_sc.sc_a1 = frame->f_regs[A1];
150 panic("setup_linux_sigframe: bogus frame type");
153 kf.sf_c.c_sc.sc_ss.ss_vector = frame->f_vector;
154 memcpy(&kf.sf_c.c_sc.sc_ss.ss_frame, &frame->F_u,
159 * hardware stack frame to the amount the stack must be
166 frame->f_stackadj += exframesize[ft];
167 frame->f_format = frame->f_vector = 0;
170 printf("setup_linux_sigframe(%d): copy out %d of frame %d\n",
222 kf.sf_c.c_sc.sc_sp = frame->f_regs[SP];
223 kf.sf_c.c_sc.sc_pc = frame->f_pc;
224 kf.sf_c.c_sc.sc_ps = frame->f_sr;
246 * The signal trampoline is on the signal frame.
253 frame->f_regs[SP] = (int)fp;
263 * Setup signal frame for new RT signal interface.
266 setup_linux_rt_sigframe(struct frame *frame, int sig, const sigset_t *mask, void *usp, struct lwp *l)
273 ft = frame->f_format;
287 /* Build stack frame. */
293 /* The sigtramp code is on the stack frame on Linux/m68k. */
303 * - original exception frame (if not a "normal" frame)
310 memcpy(kf.sf_uc.uc_mc.mc_gregs.gr_regs, frame->f_regs, sizeof(u_int)*16);
311 kf.sf_uc.uc_mc.mc_gregs.gr_pc = frame->f_pc;
312 kf.sf_uc.uc_mc.mc_gregs.gr_sr = frame->f_sr;
317 panic("setup_linux_rt_sigframe: bogus frame type");
320 kf.sf_uc.uc_ss.ss_vector = frame->f_vector;
321 memcpy(&kf.sf_uc.uc_ss.ss_frame, &frame->F_u,
326 * hardware stack frame to the amount the stack must be
333 frame->f_stackadj += exframesize[ft];
334 frame->f_format = frame->f_vector = 0;
337 printf("setup_linux_rt_sigframe(%d): copy out %d of frame %d\n",
430 * The signal trampoline is on the signal frame.
437 frame->f_regs[SP] = (int)fp;
457 struct frame *frame = (struct frame *)l->l_md.md_regs;
463 /* Setup the signal frame (and part of the trapframe). */
465 setup_linux_rt_sigframe(frame, sig, mask, usp, l);
467 setup_linux_sigframe(frame, sig, mask, usp);
470 frame->f_pc = (u_int) catcher;
503 struct frame *frame;
507 int sz = 0; /* extra frame size */
514 frame = (struct frame *) l->l_md.md_regs;
515 usp = frame->f_regs[SP];
540 if (sz && frame->f_stackadj == 0) {
545 reenter_syscall(frame, sz);
551 if (sz != frame->f_stackadj)
553 sz, frame->f_stackadj);
575 frame->f_regs[SP] = scp->sc_sp;
576 frame->f_regs[D0] = scp->sc_d0;
577 frame->f_regs[D1] = scp->sc_d1;
578 frame->f_regs[A0] = scp->sc_a0;
579 frame->f_regs[A1] = scp->sc_a1;
580 frame->f_pc = scp->sc_pc;
582 frame->f_sr = scp->sc_ps & ~(PSL_MBZ|PSL_IPL|PSL_S);
594 frame->f_format = scp->sc_ss.ss_format;
595 frame->f_vector = scp->sc_ss.ss_vector;
596 if (frame->f_stackadj < sz) /* just in case... */
598 frame->f_stackadj -= sz;
599 memcpy(&frame->F_u, &scp->sc_ss.ss_frame, sz);
602 printf("linux_sys_sigreturn(%d): copy in %d of frame type %d\n",
659 struct frame *frame;
663 int sz = 0, error; /* extra frame size */
670 frame = (struct frame *) l->l_md.md_regs;
671 error = copyin((char *)frame->f_regs[SP] + 8, (void *)&ucp,
694 if (sz && frame->f_stackadj == 0) {
699 reenter_syscall(frame, sz);
705 if (sz != frame->f_stackadj)
707 sz, frame->f_stackadj);
729 memcpy(frame->f_regs, tuc.uc_mc.mc_gregs.gr_regs, sizeof(u_int)*16);
730 frame->f_pc = tuc.uc_mc.mc_gregs.gr_pc;
732 frame->f_sr = tuc.uc_mc.mc_gregs.gr_sr & ~(PSL_MBZ|PSL_IPL|PSL_S);
740 frame->f_format = tuc.uc_ss.ss_format;
741 frame->f_vector = tuc.uc_ss.ss_vector;
742 if (frame->f_stackadj < sz) /* just in case... */
744 frame->f_stackadj -= sz;
745 memcpy(&frame->F_u, &tuc.uc_ss.ss_frame, sz);
748 printf("linux_sys_rt_sigreturn(%d): copy in %d of frame type %d\n",