forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
490 B
24 lines
490 B
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#ifndef __UML_LONGJMP_H |
|
#define __UML_LONGJMP_H |
|
|
|
#include <sysdep/archsetjmp.h> |
|
#include <os.h> |
|
|
|
extern int signals_enabled; |
|
extern int setjmp(jmp_buf); |
|
extern void longjmp(jmp_buf, int); |
|
|
|
#define UML_LONGJMP(buf, val) do { \ |
|
longjmp(*buf, val); \ |
|
} while(0) |
|
|
|
#define UML_SETJMP(buf) ({ \ |
|
int n, enable; \ |
|
enable = *(volatile int *)&signals_enabled; \ |
|
n = setjmp(*buf); \ |
|
if(n != 0) \ |
|
set_signals_trace(enable); \ |
|
n; }) |
|
|
|
#endif
|
|
|