Home | History | Annotate | Download | only in include
      1 /*
      2  * setjmp.h
      3  */
      4 
      5 #ifndef _SETJMP_H
      6 #define _SETJMP_H
      7 
      8 #include <klibc/extern.h>
      9 #include <klibc/compiler.h>
     10 #include <stddef.h>
     11 
     12 #if __SIZEOF_POINTER__ == 4
     13 #include <klibc/i386/archsetjmp.h>
     14 #elif __SIZEOF_POINTER__ == 8
     15 #include <klibc/x86_64/archsetjmp.h>
     16 #else
     17 #error "unsupported architecture"
     18 #endif
     19 
     20 __extern int setjmp(jmp_buf);
     21 __extern __noreturn longjmp(jmp_buf, int);
     22 
     23 typedef jmp_buf sigjmp_buf;
     24 
     25 #define sigsetjmp(__env, __save) setjmp(__env)
     26 #define siglongjmp(__env, __val) longjmp(__env, __val)
     27 
     28 #endif /* _SETJMP_H */
     29