1*ba9bdd8bSchristos /* 2*ba9bdd8bSchristos * Public domain 3*ba9bdd8bSchristos * 4*ba9bdd8bSchristos * BSD socket emulation code for Winsock2 5*ba9bdd8bSchristos * Brent Cook <bcook@openbsd.org> 6*ba9bdd8bSchristos */ 7*ba9bdd8bSchristos 8*ba9bdd8bSchristos #ifndef _COMPAT_POSIX_WIN_H 9*ba9bdd8bSchristos #define _COMPAT_POSIX_WIN_H 10*ba9bdd8bSchristos 11*ba9bdd8bSchristos #ifdef _WIN32 12*ba9bdd8bSchristos 13*ba9bdd8bSchristos #include <windows.h> 14*ba9bdd8bSchristos 15*ba9bdd8bSchristos #include <errno.h> 16*ba9bdd8bSchristos #include <stdarg.h> 17*ba9bdd8bSchristos #include <stdint.h> 18*ba9bdd8bSchristos #include <stdio.h> 19*ba9bdd8bSchristos #include <stdlib.h> 20*ba9bdd8bSchristos #include <string.h> 21*ba9bdd8bSchristos 22*ba9bdd8bSchristos #if _MSC_VER >= 1900 23*ba9bdd8bSchristos #include <../ucrt/fcntl.h> 24*ba9bdd8bSchristos #else 25*ba9bdd8bSchristos #include <../include/fcntl.h> 26*ba9bdd8bSchristos #endif 27*ba9bdd8bSchristos 28*ba9bdd8bSchristos #include "types.h" 29*ba9bdd8bSchristos 30*ba9bdd8bSchristos int posix_open(const char *path, ...); 31*ba9bdd8bSchristos 32*ba9bdd8bSchristos int posix_close(int fd); 33*ba9bdd8bSchristos 34*ba9bdd8bSchristos ssize_t posix_read(int fd, void *buf, size_t count); 35*ba9bdd8bSchristos 36*ba9bdd8bSchristos ssize_t posix_write(int fd, const void *buf, size_t count); 37*ba9bdd8bSchristos 38*ba9bdd8bSchristos #ifndef NO_REDEF_POSIX_FUNCTIONS 39*ba9bdd8bSchristos #define open(path, ...) posix_open(path, __VA_ARGS__) 40*ba9bdd8bSchristos #define close(fd) posix_close(fd) 41*ba9bdd8bSchristos #define read(fd, buf, count) posix_read(fd, buf, count) 42*ba9bdd8bSchristos #define write(fd, buf, count) posix_write(fd, buf, count) 43*ba9bdd8bSchristos #endif 44*ba9bdd8bSchristos 45*ba9bdd8bSchristos #endif /* _WIN32 */ 46*ba9bdd8bSchristos 47*ba9bdd8bSchristos #endif /* !_COMPAT_POSIX_WIN_H */ 48