Back to index

glibc  2.9
swapcontext.c File Reference
#include <ucontext.h>

Go to the source code of this file.


int __getcontext (ucontext_t *ucp)
int __setcontext (const ucontext_t *ucp, int restoremask)
int __swapcontext (ucontext_t *oucp, const ucontext_t *ucp)
 asm (" \n\ .text \n\ .type __swapcontext_ret, #function \n\ __swapcontext_ret: \n\ return %i7 + 8 \n\ clr %o0 \n\ .size __swapcontext_ret, .-__swapcontext_ret \n\ ")

Function Documentation

int __setcontext ( const ucontext_t ucp,
int  restoremask 
int __swapcontext ( ucontext_t oucp,
const ucontext_t ucp 

Definition at line 26 of file swapcontext.c.

  extern void __swapcontext_ret (void);
  /* Save the current machine context to oucp.  */
  __getcontext (oucp);
  /* Modify oucp to skip the __setcontext call on reactivation.  */
  oucp->uc_mcontext.mc_gregs[MC_PC] = (long) __swapcontext_ret;
  oucp->uc_mcontext.mc_gregs[MC_NPC] = ((long) __swapcontext_ret) + 4;
  /* Restore the machine context in ucp.  */
  __setcontext (ucp, 1);
  return 0;

Here is the call graph for this function:

asm ( " \n\ .text \n\ .type  __swapcontext_ret,
#function\n\__swapcontext_ret:\n\return% i7+8\n\clr% o0\n\.size  __swapcontext_ret,