#pragma once #define _XOPEN_SOURCE 700 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define __os_name__ "dos" #define nil NULL #define USED(x) ((void)(x)) #define nelem(x) (int)(sizeof(x)/sizeof((x)[0])) #define FWD_BIT (sl_v)(1U<<31) typedef jmp_buf sl_jmp_buf; #define sl_setjmp(e) setjmp((e)) #define sl_longjmp(e, v) longjmp((e), (v)) #define sys_exit(status, code) do{ \ exit((status) == nil && (code) == 0 ? 0 : (code)); \ }while(0) #define sysfatal(...) do{ \ fprintf(stderr, __VA_ARGS__); \ exit(99); \ }while(0) #define getcallerpc(a) __builtin_extract_return_addr((USED(a), __builtin_return_address(0))) #define sys_setcallpc(arg) do{sl.cpc = getcallerpc(&arg);}while(0) void sys_setcurrpc(int dummy); void sys_seed(void *p, int sz); #define MEM_UNALIGNED_ACCESS #define sl_segalloc(sz) MEM_ALLOC((usize)sz) #define sl_segfree(s, sz) MEM_FREE(s) #define sl_segused(s, sz, used) do{}while(0) #include "inc/cc.h" #include "inc/mem.h" #include "mp.h" #include "utf.h"