#include <stdio.h>
#include <stdlib.h>
+#include <stdint.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
// types
-typedef signed char fsw_s8;
-typedef unsigned char fsw_u8;
-typedef short fsw_s16;
-typedef unsigned short fsw_u16;
-typedef long fsw_s32;
-typedef unsigned long fsw_u32;
-typedef long long fsw_s64;
-typedef unsigned long long fsw_u64;
+typedef int8_t fsw_s8;
+typedef uint8_t fsw_u8;
+typedef int16_t fsw_s16;
+typedef uint16_t fsw_u16;
+typedef int32_t fsw_s32;
+typedef uint32_t fsw_u32;
+typedef int64_t fsw_s64;
+typedef uint64_t fsw_u64;
// allocation functions
// message printing
#define FSW_MSGSTR(s) s
-#define FSW_MSGFUNC printf
+#define FSW_MSGFUNC(str, ...) (fprintf(stderr, str, ##__VA_ARGS__))
// 64-bit hooks