51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
		
		
			
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
| 
								 | 
							
								#include <dirent.h>
							 | 
						||
| 
								 | 
							
								#include <sys/mman.h>
							 | 
						||
| 
								 | 
							
								#include <sys/types.h>
							 | 
						||
| 
								 | 
							
								#include <sys/stat.h>
							 | 
						||
| 
								 | 
							
								#include <unistd.h>
							 | 
						||
| 
								 | 
							
								#include <sys/time.h>
							 | 
						||
| 
								 | 
							
								#include <dlfcn.h>
							 | 
						||
| 
								 | 
							
								#include <signal.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef char F_CHAR;
							 | 
						||
| 
								 | 
							
								typedef char F_SYMBOL;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define from_native_string from_char_string
							 | 
						||
| 
								 | 
							
								#define unbox_native_string unbox_char_string
							 | 
						||
| 
								 | 
							
								#define string_to_native_alien(string) string_to_char_alien(string,true)
							 | 
						||
| 
								 | 
							
								#define unbox_symbol_string unbox_char_string
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define STR_FORMAT(string) string
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SSCANF sscanf
							 | 
						||
| 
								 | 
							
								#define STRCMP strcmp
							 | 
						||
| 
								 | 
							
								#define STRNCMP strncmp
							 | 
						||
| 
								 | 
							
								#define STRDUP strdup
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define OPEN_READ(path) fopen(path,"rb")
							 | 
						||
| 
								 | 
							
								#define OPEN_WRITE(path) fopen(path,"wb")
							 | 
						||
| 
								 | 
							
								#define FPRINTF(stream,format,arg) fprintf(stream,format,arg)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void init_ffi(void);
							 | 
						||
| 
								 | 
							
								void ffi_dlopen(F_DLL *dll, bool error);
							 | 
						||
| 
								 | 
							
								void *ffi_dlsym(F_DLL *dll, F_SYMBOL *symbol);
							 | 
						||
| 
								 | 
							
								void ffi_dlclose(F_DLL *dll);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void unix_init_signals(void);
							 | 
						||
| 
								 | 
							
								void signal_handler(int signal, siginfo_t* siginfo, void* uap);
							 | 
						||
| 
								 | 
							
								void dump_stack_signal(int signal, siginfo_t* siginfo, void* uap);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								s64 current_millis(void);
							 | 
						||
| 
								 | 
							
								void sleep_millis(CELL msec);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void reset_stdio(void);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Global variables used to pass fault handler state from signal handler to
							 | 
						||
| 
								 | 
							
								user-space */
							 | 
						||
| 
								 | 
							
								CELL signal_number;
							 | 
						||
| 
								 | 
							
								CELL signal_fault_addr;
							 | 
						||
| 
								 | 
							
								void *signal_callstack_top;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void memory_signal_handler_impl(void);
							 | 
						||
| 
								 | 
							
								void misc_signal_handler_impl(void);
							 |