3 * compatibility wrappers
5 * Created by Arno Bakker, Victor Grishchenko
6 * Copyright 2009 Delft University of Technology. All rights reserved.
10 #define SWIFT_COMPAT_H
13 typedef unsigned char uint8_t;
14 typedef signed char int8_t;
15 typedef unsigned short uint16_t;
16 typedef short int16_t;
17 typedef unsigned int uint32_t;
19 typedef __int64 int64_t;
20 typedef unsigned __int64 uint64_t;
31 #include <arpa/inet.h>
32 #include <sys/select.h>
33 #include <sys/socket.h>
34 #include <netinet/in.h>
48 #include "getopt_win.h"
54 #define open(a,b,c) _open(a,b,c)
57 #define S_IRUSR _S_IREAD
60 #define S_IWUSR _S_IWRITE
63 #define S_IRGRP _S_IREAD
66 #define S_IROTH _S_IREAD
70 #define setsockoptptr_t (char*)
72 #define setsockoptptr_t void*
78 /** tint is the time integer type; microsecond-precise. */
80 #define TINT_HOUR ((tint)1000000*60*60)
81 #define TINT_MIN ((tint)1000000*60)
82 #define TINT_SEC ((tint)1000000)
83 #define TINT_MSEC ((tint)1000)
84 #define TINT_uSEC ((tint)1)
85 #define TINT_NEVER ((tint)0x3fffffffffffffffLL)
88 size_t file_size (int fd);
90 int file_seek (int fd, size_t offset);
92 int file_resize (int fd, size_t new_size);
94 void* memory_map (int fd, size_t size=0);
95 void memory_unmap (int fd, void*, size_t size);
97 void print_error (const char* msg);
101 /** UNIX pread approximation. Does change file pointer. Is not thread-safe */
102 size_t pread(int fildes, void *buf, size_t nbyte, long offset);
104 /** UNIX pwrite approximation. Does change file pointer. Is not thread-safe */
105 size_t pwrite(int fildes, const void *buf, size_t nbyte, long offset);
107 int inet_aton(const char *cp, struct in_addr *inp);
111 std::string gettmpdir(void);
115 bool make_socket_nonblocking(SOCKET s);
117 bool close_socket (SOCKET sock);