| 
									
										
										
										
											2009-05-13 02:08:16 -04:00
										 |  |  | #include <unistd.h>
 | 
					
						
							|  |  |  | #include <sys/param.h>
 | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | #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>
 | 
					
						
							|  |  |  | #include <pthread.h>
 | 
					
						
							| 
									
										
										
										
											2011-11-08 00:12:11 -05:00
										 |  |  | #include <sched.h>
 | 
					
						
							| 
									
										
										
										
											2011-10-31 23:51:53 -04:00
										 |  |  | #include "atomic-gcc.hpp"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-11 22:24:31 -04:00
										 |  |  | namespace factor { | 
					
						
							| 
									
										
										
										
											2009-05-04 02:46:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-04 05:50:24 -04:00
										 |  |  | typedef char vm_char; | 
					
						
							|  |  |  | typedef char symbol_char; | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define STRING_LITERAL(string) string
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define SSCANF sscanf
 | 
					
						
							|  |  |  | #define STRCMP strcmp
 | 
					
						
							|  |  |  | #define STRNCMP strncmp
 | 
					
						
							|  |  |  | #define STRDUP strdup
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-03 19:20:35 -04:00
										 |  |  | #define FTELL ftello
 | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | #define FSEEK fseeko
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-11 22:24:31 -04:00
										 |  |  | #define OPEN_READ(path) fopen(path, "rb")
 | 
					
						
							|  |  |  | #define OPEN_WRITE(path) fopen(path, "wb")
 | 
					
						
							| 
									
										
										
										
											2014-07-16 20:08:02 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef _GNU_SOURCE
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							| 
									
										
										
										
											2017-06-26 11:43:14 -04:00
										 |  |  |   extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen); | 
					
						
							| 
									
										
										
										
											2014-07-16 20:08:02 -04:00
										 |  |  | } | 
					
						
							|  |  |  | #define strerror_r __xpg_strerror_r
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-05 21:58:24 -04:00
										 |  |  | #define THREADSAFE_STRERROR(errnum, buf, buflen) strerror_r(errnum, buf, buflen)
 | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-24 15:10:56 -04:00
										 |  |  | #define print_native_string(string) print_string(string)
 | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-25 03:55:18 -04:00
										 |  |  | typedef pthread_t THREADHANDLE; | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-11 22:24:31 -04:00
										 |  |  | THREADHANDLE start_thread(void* (*start_routine)(void*), void* args); | 
					
						
							| 
									
										
										
										
											2009-10-02 13:00:01 -04:00
										 |  |  | inline static THREADHANDLE thread_id() { return pthread_self(); } | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-13 00:28:25 -04:00
										 |  |  | uint64_t nano_count(); | 
					
						
							|  |  |  | void sleep_nanos(uint64_t nsec); | 
					
						
							| 
									
										
										
										
											2009-10-03 09:47:05 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-11 01:23:38 -05:00
										 |  |  | void check_ENOMEM(const char* msg); | 
					
						
							| 
									
										
										
										
											2010-02-03 16:12:13 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-11 22:24:31 -04:00
										 |  |  | static inline void breakpoint() { __builtin_trap(); } | 
					
						
							| 
									
										
										
										
											2011-11-11 16:29:46 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-04 02:46:13 -04:00
										 |  |  | } |