Provided by: manpages-es_1.55-10_all bug

NOMBRE

       makecontext, swapcontext - manipulan el contexto de usuario

SINOPSIS

       #include <ucontext.h>

       void makecontext(ucontext_t *ucp, void *func(), int argc, ...);
       int swapcontext (ucontext_t *oucp, ucontext_t *ucp);

DESCRIPCI'ON

       En  un entorno tipo SysV, se definen el tipo ucontext_t en <ucontext.h>
       y las cuatro  funciones  getcontext(),  setcontext(),  makecontext()  y
       swapcontext()  que  permiten  la  conmutacion del contexto del nivel de
       usuario entre multiples hilos de control dentro de un proceso.

       Para el tipo y las primeras dos funciones, vease getcontext(2).

       La funcion makecontext() modifica el puntero apuntado por ucp (que  fue
       obtenido  en  una  llamada  previa  a getcontext()).  Antes de llamar a
       makecontext(), se debe reservar una nueva pila para  este  contexto,  y
       asignarla a ucp->uc_stack, y definir un contexto sucesor, y asignarlo a
       ucp->uc_link.  Cuando este  contexto  es  activado  mas  tarde  (usando
       setcontext()  o  swapcontext())  se  llama en primer lugar a la funcion
       func, con los argumentos especificados despues de argc (donde argc debe
       contener el numero de estos argumentos), y cuando esta funcion regresa,
       el contexto sucesor es activado. Cuando el contexto sucesor es  NULL  ,
       el hilo termina.

       La  funcion  swapcontext()  salva  el  contexto actual en la estructura
       apuntada por oucp, y activa el contexto apuntado por ucp.

VALOR DEVUELTO

       Cuando  tiene  exito,  makecontext()  devuelve  0  y  swapcontext()  no
       regresa.  (Pero  puede  regresar  mas tarde, en el caso de que oucp sea
       activado, en cuyo caso devuelve 0  como  swapcontext().)   En  caso  de
       error, ambas devuelven -1 y modifican errno con el valor apropiado.

ERRORES

       ENOMEM No queda suficiente espacio en la pila.

OBSERVACIONES

       La  interpretacion de ucp->uc_stack es como en sigaltstack(2), a saber,
       esta estructura contiene el comienzo  y  la  longitud  de  un  area  de
       memoria a ser usada como pila, sea cual sea la direccion de crecimiento
       de la pila. Por lo tanto, no es necesario que los programas de  usuario
       se preocupen por esta direccion.

CONFORME A

       SUSv2, POSIX 1003.1-2001.

V'EASE TAMBI'EN

       getcontext(2),     sigaction(2),     sigaltstack(2),    sigprocmask(2),
       sigsetjmp(3)