 <p><code>translate_address</code> is not a Linux function. If you're referring to some kind of book or example code, it should explain where you're supposed to get this function from. If it doesn't, chances are it's not meant for Linux (or is a really, really bad reference/example).</p> <p>Furthermore, you should NOT modify the contents of <code>jmp_buf</code> or <code>sigjmp_buf</code> directly. These are architecture and platform-dependent structures, and only the C library is allowed to mess with them. Since the contents of the structures are OS-dependent, if you're using a reference intended for some other OS when modifying <code>sigjmp_buf</code>, Bad Things will happen.</p> <p>You should instead either use <a href="http://linux.die.net/man/2/setcontext" rel="nofollow"><code>setcontext</code>, <code>getcontext</code></a>, and <a href="http://linux.die.net/man/3/makecontext" rel="nofollow"><code>makecontext</code></a> for user threads (fibers) or <a href="http://www.kernel.org/doc/man-pages/online/pages/man3/pthread_create.3.html" rel="nofollow"><code>pthread_create</code></a> for OS-level threads.</p>