mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 06:52:45 +00:00 
			
		
		
		
	 e0c1541847
			
		
	
	
		e0c1541847
		
	
	
	
	
		
			
			Hacked implementations of sigsetjmp() and siglongjmp(). I didn't know about these APIs until just now, but I hope I got them right.
		
			
				
	
	
		
			25 lines
		
	
	
	
		
			423 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			423 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <sys/cdefs.h>
 | |
| #include <sys/types.h>
 | |
| #include <stdint.h>
 | |
| #include <signal.h>
 | |
| #include <stdbool.h>
 | |
| 
 | |
| __BEGIN_DECLS
 | |
| 
 | |
| struct __jmp_buf {
 | |
|     uint32_t regs[6];
 | |
|     bool did_save_signal_mask;
 | |
|     sigset_t saved_signal_mask;
 | |
| };
 | |
| 
 | |
| typedef struct __jmp_buf jmp_buf[1];
 | |
| 
 | |
| int setjmp(jmp_buf);
 | |
| void longjmp(jmp_buf, int val);
 | |
| 
 | |
| int sigsetjmp(jmp_buf, int savesigs);
 | |
| void siglongjmp(jmp_buf, int val);
 | |
| 
 | |
| __END_DECLS
 |