Back to index

glibc  2.9
Functions
longjmp-ctx.c File Reference
#include <setjmp.h>
#include <hurd/signal.h>
#include <string.h>

Go to the source code of this file.

Functions

void _hurd_longjmp_sigcontext (struct sigcontext *scp, jmp_buf env, int retval)

Function Documentation

void _hurd_longjmp_sigcontext ( struct sigcontext scp,
jmp_buf  env,
int  retval 
)

Definition at line 25 of file longjmp-ctx.c.

{
  scp->sc_gpr[16] = env[0].__regs[0];
  scp->sc_gpr[17] = env[0].__regs[1];
  scp->sc_gpr[18] = env[0].__regs[2];
  scp->sc_gpr[19] = env[0].__regs[3];
  scp->sc_gpr[20] = env[0].__regs[4];
  scp->sc_gpr[21] = env[0].__regs[5];
  scp->sc_gpr[22] = env[0].__regs[6];
  scp->sc_gpr[23] = env[0].__regs[7];

  scp->sc_gpr[28] = (int) env[0].__gp;
  scp->sc_fp = (int) env[0].__fp;
  scp->sc_sp = (int) env[0].__sp;
  scp->sc_pc = (int) env[0].__pc;
  scp->sc_gpr[2] = retval ?: 1;
}