113 lines
2.4 KiB
C
113 lines
2.4 KiB
C
|
#ifndef NIXIO_MINGW_COMPAT_H_
|
||
|
#define NIXIO_MINGW_COMPAT_H_
|
||
|
|
||
|
#include <winsock2.h>
|
||
|
#include <ws2tcpip.h>
|
||
|
#include <io.h>
|
||
|
#include <process.h>
|
||
|
#include <stdint.h>
|
||
|
#include <sys/stat.h>
|
||
|
#include <errno.h>
|
||
|
|
||
|
typedef unsigned int uint;
|
||
|
typedef unsigned long ulong;
|
||
|
|
||
|
#define S_ISLNK(m) 0
|
||
|
#define S_ISSOCK(m) 0
|
||
|
|
||
|
#define EWOULDBLOCK WSAEWOULDBLOCK
|
||
|
#define EAFNOSUPPORT WSAEAFNOSUPPORT
|
||
|
#define ENOPROTOOPT WSAENOPROTOOPT
|
||
|
|
||
|
#define SHUT_RD SD_RECEIVE
|
||
|
#define SHUT_WR SD_SEND
|
||
|
#define SHUT_RDWR SD_BOTH
|
||
|
|
||
|
#define pipe(fds) _pipe(fds, 65536, 0)
|
||
|
#define fsync _commit
|
||
|
#define lseek lseek64
|
||
|
#define stat _stati64
|
||
|
#define lstat _stati64
|
||
|
#define fstat _fstati64
|
||
|
|
||
|
|
||
|
#define F_LOCK 1
|
||
|
#define F_ULOCK 0
|
||
|
#define F_TLOCK 2
|
||
|
#define F_TEST 3
|
||
|
int nixio__mgw_lockf(int fd, int cmd, off_t len);
|
||
|
#define lockf nixio__mgw_lockf
|
||
|
|
||
|
const char* nixio__mgw_inet_ntop
|
||
|
(int af, const void *src, char *dst, socklen_t size);
|
||
|
#define inet_ntop nixio__mgw_inet_ntop
|
||
|
|
||
|
int nixio__mgw_inet_pton (int af, const char *src, void *dst);
|
||
|
#define inet_pton nixio__mgw_inet_pton
|
||
|
|
||
|
|
||
|
#ifndef POLLIN
|
||
|
#define POLLIN 0x001
|
||
|
#define POLLOUT 0x004
|
||
|
#define POLLERR 0x008
|
||
|
struct pollfd {
|
||
|
int fd;
|
||
|
short events;
|
||
|
short revents;
|
||
|
};
|
||
|
#endif
|
||
|
|
||
|
typedef int nfds_t;
|
||
|
int nixio__mgw_poll(struct pollfd *fds, nfds_t nfds, int timeout);
|
||
|
#define poll nixio__mgw_poll
|
||
|
|
||
|
|
||
|
struct timespec {
|
||
|
time_t tv_sec;
|
||
|
long tv_nsec;
|
||
|
};
|
||
|
|
||
|
int nixio__mgw_nanosleep(const struct timespec *req, struct timespec *rem);
|
||
|
#define nanosleep nixio__mgw_nanosleep
|
||
|
|
||
|
|
||
|
char* nixio__mgw_realpath(const char *path, char *resolved);
|
||
|
#define realpath nixio__mgw_realpath
|
||
|
|
||
|
|
||
|
int nixio__mgw_link(const char *oldpath, const char *newpath);
|
||
|
#define link nixio__mgw_link
|
||
|
|
||
|
|
||
|
int nixio__mgw_utimes(const char *filename, const struct timeval times[2]);
|
||
|
#define utimes nixio__mgw_utimes
|
||
|
|
||
|
|
||
|
#define setenv(k, v, o) !SetEnvironmentVariable(k, v)
|
||
|
#define unsetenv(k) !SetEnvironmentVariable(k, NULL)
|
||
|
|
||
|
#define execv(p, a) execv(p, (const char* const*)a)
|
||
|
#define execvp(p, a) execvp(p, (const char* const*)a)
|
||
|
#define execve(p, a, e) execve(p, (const char* const*)a, (const char* const*)e)
|
||
|
|
||
|
#define mkdir(p, m) mkdir(p)
|
||
|
|
||
|
|
||
|
#define nixio__perror_s(L) \
|
||
|
errno = WSAGetLastError(); \
|
||
|
return nixio__perror(L);
|
||
|
|
||
|
#define nixio__pstatus_s(L, c) \
|
||
|
errno = WSAGetLastError(); \
|
||
|
return nixio__pstatus(L, c);
|
||
|
|
||
|
|
||
|
|
||
|
#define NIXIO_WSA_CONSTANT(x) \
|
||
|
lua_pushinteger(L, x); \
|
||
|
lua_setfield(L, -2, #x+3);
|
||
|
|
||
|
void nixio_open__mingw(lua_State *L);
|
||
|
|
||
|
#endif /* NIXIO_MINGW_COMPAT_H_ */
|