longjmp.h 307 B

12345678910111213141516171819
  1. #ifndef __UML_LONGJMP_H
  2. #define __UML_LONGJMP_H
  3. #include <setjmp.h>
  4. #include "os.h"
  5. #define UML_LONGJMP(buf, val) do { \
  6. longjmp(*buf, val); \
  7. } while(0)
  8. #define UML_SETJMP(buf, enable) ({ \
  9. int n; \
  10. enable = get_signals(); \
  11. n = setjmp(*buf); \
  12. if(n != 0) \
  13. set_signals(enable); \
  14. n; })
  15. #endif