blob: 1b5c0131a12ec7b321983e2bd5b1e23c93828399 [file] [log] [blame]
Jeff Dike1d7173b2006-01-18 17:42:49 -08001#ifndef __UML_LONGJMP_H
2#define __UML_LONGJMP_H
3
4#include <setjmp.h>
5#include "os.h"
6
Jeff Dikead28e0292006-04-18 22:21:41 -07007#define UML_LONGJMP(buf, val) do { \
Jeff Dikec83d4632006-01-18 17:42:50 -08008 longjmp(*buf, val); \
Jeff Dike1d7173b2006-01-18 17:42:49 -08009} while(0)
10
Jeff Dikea5df0d12006-07-14 00:24:02 -070011#define UML_SETJMP(buf) ({ \
12 int n, enable; \
Jeff Dike1d7173b2006-01-18 17:42:49 -080013 enable = get_signals(); \
Jeff Dikec83d4632006-01-18 17:42:50 -080014 n = setjmp(*buf); \
Jeff Dike1d7173b2006-01-18 17:42:49 -080015 if(n != 0) \
16 set_signals(enable); \
17 n; })
18
19#endif