From 11dbedfaad4a9a9521ece2198a8dc491678b1902 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Wed, 29 Aug 2007 04:06:12 +0000 Subject: add tag v1_8_6_5001 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_6_5001@13304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby_1_8_6/win32/win32.h | 559 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 559 insertions(+) create mode 100644 ruby_1_8_6/win32/win32.h (limited to 'ruby_1_8_6/win32/win32.h') diff --git a/ruby_1_8_6/win32/win32.h b/ruby_1_8_6/win32/win32.h new file mode 100644 index 0000000000..87f4d4867a --- /dev/null +++ b/ruby_1_8_6/win32/win32.h @@ -0,0 +1,559 @@ +#ifndef RUBY_WIN32_H +#define RUBY_WIN32_H + +/* + * Copyright (c) 1993, Intergraph Corporation + * + * You may distribute under the terms of either the GNU General Public + * License or the Artistic License, as specified in the perl README file. + * + */ + +// +// Definitions for NT port of Perl +// + + +// +// Ok now we can include the normal include files. +// + +// #include conflict with varargs.h? +// There is function-name conflitct, so we rename it +#if !defined(IN) && !defined(FLOAT) +#define OpenFile WINAPI_OpenFile +#ifdef __BORLANDC__ +#define USE_WINSOCK2 +#endif +#ifdef USE_WINSOCK2 +#include +#include +#else +#include +#include +#endif +#undef OpenFile +#endif + +#define NT 1 /* deprecated */ + +#ifdef _WIN32_WCE +#undef CharNext +#define CharNext CharNextA +#endif + +// +// We're not using Microsoft's "extensions" to C for +// Structured Exception Handling (SEH) so we can nuke these +// +#undef try +#undef except +#undef finally +#undef leave + +#if defined(__cplusplus) +extern "C++" { +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if !defined(__BORLANDC__) +# include +#else +# include +#endif +#include +#include + +#if defined(__cplusplus) +} +#endif + +#ifdef _M_IX86 +# define WIN95 1 +#else +# undef WIN95 +#endif + +#ifdef WIN95 +extern DWORD rb_w32_osid(void); +#define rb_w32_iswinnt() (rb_w32_osid() == VER_PLATFORM_WIN32_NT) +#define rb_w32_iswin95() (rb_w32_osid() == VER_PLATFORM_WIN32_WINDOWS) +#else +#define rb_w32_iswinnt() TRUE +#define rb_w32_iswin95() FALSE +#endif + +#define WNOHANG -1 + +#undef getc +#undef putc +#undef fgetc +#undef fputc +#undef getchar +#undef putchar +#undef fgetchar +#undef fputchar +#undef utime +#define getc(_stream) rb_w32_getc(_stream) +#define putc(_c, _stream) rb_w32_putc(_c, _stream) +#define fgetc(_stream) getc(_stream) +#define fputc(_c, _stream) putc(_c, _stream) +#define getchar() rb_w32_getc(stdin) +#define putchar(_c) rb_w32_putc(_c, stdout) +#define fgetchar() getchar() +#define fputchar(_c) putchar(_c) +#define utime(_p, _t) rb_w32_utime(_p, _t) + +#define strcasecmp(s1, s2) stricmp(s1, s2) +#define strncasecmp(s1, s2, n) strnicmp(s1, s2, n) + +#define close(h) rb_w32_close(h) +#define fclose(f) rb_w32_fclose(f) +#define read(f, b, s) rb_w32_read(f, b, s) +#define write(f, b, s) rb_w32_write(f, b, s) +#define getpid() rb_w32_getpid() +#define sleep(x) rb_w32_sleep((x)*1000) +#ifdef __BORLANDC__ +#define creat(p, m) _creat(p, m) +#define eof() _eof() +#define filelength(h) _filelength(h) +#define mktemp(t) _mktemp(t) +#define tell(h) _tell(h) +#define unlink(p) _unlink(p) +#define _open _sopen +#define sopen _sopen +#undef fopen +#define fopen(p, m) rb_w32_fopen(p, m) +#undef fdopen +#define fdopen(h, m) rb_w32_fdopen(h, m) +#undef fsopen +#define fsopen(p, m, sh) rb_w32_fsopen(p, m, sh) +#endif +#define fsync(h) _commit(h) +#undef stat +#define stat(path,st) rb_w32_stat(path,st) +#undef execv +#define execv(path,argv) do_aspawn(P_OVERLAY,path,argv) +#if !defined(__BORLANDC__) && !defined(_WIN32_WCE) +#undef isatty +#define isatty(h) rb_w32_isatty(h) +#endif +#undef mkdir +#define mkdir(p, m) rb_w32_mkdir(p, m) +#undef rmdir +#define rmdir(p) rb_w32_rmdir(p) +#undef unlink +#define unlink(p) rb_w32_unlink(p) + +#ifdef __MINGW32__ +struct timezone { + int tz_minuteswest; + int tz_dsttime; +}; +#undef isascii +#define isascii __isascii +#endif +extern void NtInitialize(int *, char ***); +extern int rb_w32_cmdvector(const char *, char ***); +extern rb_pid_t pipe_exec(char *, int, FILE **, FILE **); +extern int flock(int fd, int oper); +extern int rb_w32_accept(int, struct sockaddr *, int *); +extern int rb_w32_bind(int, struct sockaddr *, int); +extern int rb_w32_connect(int, struct sockaddr *, int); +extern void rb_w32_fdset(int, fd_set*); +extern void rb_w32_fdclr(int, fd_set*); +extern int rb_w32_fdisset(int, fd_set*); +extern long rb_w32_select(int, fd_set *, fd_set *, fd_set *, struct timeval *); +extern int rb_w32_getpeername(int, struct sockaddr *, int *); +extern int rb_w32_getsockname(int, struct sockaddr *, int *); +extern int rb_w32_getsockopt(int, int, int, char *, int *); +extern int rb_w32_ioctlsocket(int, long, u_long *); +extern int rb_w32_listen(int, int); +extern int rb_w32_recv(int, char *, int, int); +extern int rb_w32_recvfrom(int, char *, int, int, struct sockaddr *, int *); +extern int rb_w32_send(int, const char *, int, int); +extern int rb_w32_sendto(int, const char *, int, int, struct sockaddr *, int); +extern int rb_w32_setsockopt(int, int, int, char *, int); +extern int rb_w32_shutdown(int, int); +extern int rb_w32_socket(int, int, int); +extern SOCKET rb_w32_get_osfhandle(int); +extern struct hostent * rb_w32_gethostbyaddr(char *, int, int); +extern struct hostent * rb_w32_gethostbyname(char *); +extern int rb_w32_gethostname(char *, int); +extern struct protoent * rb_w32_getprotobyname(char *); +extern struct protoent * rb_w32_getprotobynumber(int); +extern struct servent * rb_w32_getservbyname(char *, char *); +extern struct servent * rb_w32_getservbyport(int, char *); +extern char * rb_w32_getcwd(char *, int); +extern char * rb_w32_getenv(const char *); +extern int rb_w32_rename(const char *, const char *); +extern int rb_w32_stat(const char *, struct stat *); +extern char **rb_w32_get_environ(void); +extern void rb_w32_free_environ(char **); + +#define vsnprintf(s,n,f,l) rb_w32_vsnprintf(s,n,f,l) +#define snprintf rb_w32_snprintf +extern int rb_w32_vsnprintf(char *, size_t, const char *, va_list); +extern int rb_w32_snprintf(char *, size_t, const char *, ...); + +extern int chown(const char *, int, int); +extern int link(char *, char *); +extern int gettimeofday(struct timeval *, struct timezone *); +extern rb_pid_t waitpid (rb_pid_t, int *, int); +extern int do_spawn(int, char *); +extern int do_aspawn(int, char *, char **); +extern int kill(int, int); +extern int fcntl(int, int, ...); +extern rb_pid_t rb_w32_getpid(void); + +#if !defined(__BORLANDC__) && !defined(_WIN32_WCE) +extern int rb_w32_isatty(int); +#endif +extern int rb_w32_mkdir(const char *, int); +extern int rb_w32_rmdir(const char *); +extern int rb_w32_unlink(const char*); + +#ifdef __BORLANDC__ +extern FILE *rb_w32_fopen(const char *, const char *); +extern FILE *rb_w32_fdopen(int, const char *); +extern FILE *rb_w32_fsopen(const char *, const char *, int); +#endif + +#include +#if !defined __MINGW32__ || defined __NO_ISOCEXT +#ifndef isnan +#define isnan(x) _isnan(x) +#endif +#ifndef finite +#define finite(x) _finite(x) +#endif +#ifndef copysign +#define copysign(a, b) _copysign(a, b) +#endif +#ifndef scalb +#define scalb(a, b) _scalb(a, b) +#endif +#endif + +#if !defined S_IFIFO && defined _S_IFIFO +#define S_IFIFO _S_IFIFO +#endif + +#ifdef __BORLANDC__ +#undef S_ISDIR +#undef S_ISFIFO +#undef S_ISBLK +#undef S_ISCHR +#undef S_ISREG +#define S_ISDIR(m) (((unsigned short)(m) & S_IFMT) == S_IFDIR) +#define S_ISFIFO(m) (((unsigned short)(m) & S_IFMT) == S_IFIFO) +#define S_ISBLK(m) (((unsigned short)(m) & S_IFMT) == S_IFBLK) +#define S_ISCHR(m) (((unsigned short)(m) & S_IFMT) == S_IFCHR) +#define S_ISREG(m) (((unsigned short)(m) & S_IFMT) == S_IFREG) +#endif + +#if !defined S_IRUSR && !defined __MINGW32__ +#define S_IRUSR 0400 +#endif +#ifndef S_IRGRP +#define S_IRGRP 0040 +#endif +#ifndef S_IROTH +#define S_IROTH 0004 +#endif + +#if !defined S_IWUSR && !defined __MINGW32__ +#define S_IWUSR 0200 +#endif +#ifndef S_IWGRP +#define S_IWGRP 0020 +#endif +#ifndef S_IWOTH +#define S_IWOTH 0002 +#endif + +#if !defined S_IXUSR && !defined __MINGW32__ +#define S_IXUSR 0100 +#endif +#ifndef S_IXGRP +#define S_IXGRP 0010 +#endif +#ifndef S_IXOTH +#define S_IXOTH 0001 +#endif + +// +// define this so we can do inplace editing +// + +#define SUFFIX + +// +// stubs +// +#if !defined(__BORLANDC__) +extern int ioctl (int, unsigned int, long); +#endif +extern rb_uid_t getuid (void); +extern rb_uid_t geteuid (void); +extern rb_gid_t getgid (void); +extern rb_gid_t getegid (void); +extern int setuid (rb_uid_t); +extern int setgid (rb_gid_t); + +extern char *rb_w32_strerror(int); + +#define strerror(e) rb_w32_strerror(e) + +#define PIPE_BUF 1024 + +#define LOCK_SH 1 +#define LOCK_EX 2 +#define LOCK_NB 4 +#define LOCK_UN 8 + + +#ifndef SIGINT +#define SIGINT 2 +#endif +#ifndef SIGKILL +#define SIGKILL 9 +#endif + + +/* #undef va_start */ +/* #undef va_end */ + +/* winsock error map */ +#define EWOULDBLOCK WSAEWOULDBLOCK +#define EINPROGRESS WSAEINPROGRESS +#define EALREADY WSAEALREADY +#define ENOTSOCK WSAENOTSOCK +#define EDESTADDRREQ WSAEDESTADDRREQ +#define EMSGSIZE WSAEMSGSIZE +#define EPROTOTYPE WSAEPROTOTYPE +#define ENOPROTOOPT WSAENOPROTOOPT +#define EPROTONOSUPPORT WSAEPROTONOSUPPORT +#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT +#define EOPNOTSUPP WSAEOPNOTSUPP +#define EPFNOSUPPORT WSAEPFNOSUPPORT +#define EAFNOSUPPORT WSAEAFNOSUPPORT +#define EADDRINUSE WSAEADDRINUSE +#define EADDRNOTAVAIL WSAEADDRNOTAVAIL +#define ENETDOWN WSAENETDOWN +#define ENETUNREACH WSAENETUNREACH +#define ENETRESET WSAENETRESET +#define ECONNABORTED WSAECONNABORTED +#define ECONNRESET WSAECONNRESET +#define ENOBUFS WSAENOBUFS +#define EISCONN WSAEISCONN +#define ENOTCONN WSAENOTCONN +#define ESHUTDOWN WSAESHUTDOWN +#define ETOOMANYREFS WSAETOOMANYREFS +#define ETIMEDOUT WSAETIMEDOUT +#define ECONNREFUSED WSAECONNREFUSED +#define ELOOP WSAELOOP +/*#define ENAMETOOLONG WSAENAMETOOLONG*/ +#define EHOSTDOWN WSAEHOSTDOWN +#define EHOSTUNREACH WSAEHOSTUNREACH +/*#define ENOTEMPTY WSAENOTEMPTY*/ +#define EPROCLIM WSAEPROCLIM +#define EUSERS WSAEUSERS +#define EDQUOT WSAEDQUOT +#define ESTALE WSAESTALE +#define EREMOTE WSAEREMOTE + +#define F_SETFL 1 +#define O_NONBLOCK 1 + +#ifdef accept +#undef accept +#endif +#define accept(s, a, l) rb_w32_accept(s, a, l) + +#ifdef bind +#undef bind +#endif +#define bind(s, a, l) rb_w32_bind(s, a, l) + +#ifdef connect +#undef connect +#endif +#define connect(s, a, l) rb_w32_connect(s, a, l) + +#undef FD_SET +#define FD_SET(f, s) rb_w32_fdset(f, s) + +#undef FD_CLR +#define FD_CLR(f, s) rb_w32_fdclr(f, s) + +#undef FD_ISSET +#define FD_ISSET(f, s) rb_w32_fdisset(f, s) + +#undef select +#define select(n, r, w, e, t) rb_w32_select(n, r, w, e, t) + +#ifdef getpeername +#undef getpeername +#endif +#define getpeername(s, a, l) rb_w32_getpeername(s, a, l) + +#ifdef getsockname +#undef getsockname +#endif +#define getsockname(s, a, l) rb_w32_getsockname(s, a, l) + +#ifdef getsockopt +#undef getsockopt +#endif +#define getsockopt(s, v, n, o, l) rb_w32_getsockopt(s, v, n, o, l) + +#ifdef ioctlsocket +#undef ioctlsocket +#endif +#define ioctlsocket(s, c, a) rb_w32_ioctlsocket(s, c, a) + +#ifdef listen +#undef listen +#endif +#define listen(s, b) rb_w32_listen(s, b) + +#ifdef recv +#undef recv +#endif +#define recv(s, b, l, f) rb_w32_recv(s, b, l, f) + +#ifdef recvfrom +#undef recvfrom +#endif +#define recvfrom(s, b, l, f, fr, frl) rb_w32_recvfrom(s, b, l, f, fr, frl) + +#ifdef send +#undef send +#endif +#define send(s, b, l, f) rb_w32_send(s, b, l, f) + +#ifdef sendto +#undef sendto +#endif +#define sendto(s, b, l, f, t, tl) rb_w32_sendto(s, b, l, f, t, tl) + +#ifdef setsockopt +#undef setsockopt +#endif +#define setsockopt(s, v, n, o, l) rb_w32_setsockopt(s, v, n, o, l) + +#ifdef shutdown +#undef shutdown +#endif +#define shutdown(s, h) rb_w32_shutdown(s, h) + +#ifdef socket +#undef socket +#endif +#define socket(s, t, p) rb_w32_socket(s, t, p) + +#ifdef gethostbyaddr +#undef gethostbyaddr +#endif +#define gethostbyaddr(a, l, t) rb_w32_gethostbyaddr(a, l, t) + +#ifdef gethostbyname +#undef gethostbyname +#endif +#define gethostbyname(n) rb_w32_gethostbyname(n) + +#ifdef gethostname +#undef gethostname +#endif +#define gethostname(n, l) rb_w32_gethostname(n, l) + +#ifdef getprotobyname +#undef getprotobyname +#endif +#define getprotobyname(n) rb_w32_getprotobyname(n) + +#ifdef getprotobynumber +#undef getprotobynumber +#endif +#define getprotobynumber(n) rb_w32_getprotobynumber(n) + +#ifdef getservbyname +#undef getservbyname +#endif +#define getservbyname(n, p) rb_w32_getservbyname(n, p) + +#ifdef getservbyport +#undef getservbyport +#endif +#define getservbyport(p, pr) rb_w32_getservbyport(p, pr) + +#ifdef get_osfhandle +#undef get_osfhandle +#endif +#define get_osfhandle(h) rb_w32_get_osfhandle(h) + +#ifdef getcwd +#undef getcwd +#endif +#define getcwd(b, s) rb_w32_getcwd(b, s) + +#ifdef getenv +#undef getenv +#endif +#define getenv(n) rb_w32_getenv(n) + +#ifdef rename +#undef rename +#endif +#define rename(o, n) rb_w32_rename(o, n) + +struct tms { + long tms_utime; + long tms_stime; + long tms_cutime; + long tms_cstime; +}; + +#ifdef times +#undef times +#endif +#define times(t) rb_w32_times(t) +int rb_w32_times(struct tms *); + +/* thread stuff */ +HANDLE GetCurrentThreadHandle(void); +void rb_w32_interrupted(void); +int rb_w32_main_context(int arg, void (*handler)(int)); +int rb_w32_sleep(unsigned long msec); +void rb_w32_enter_critical(void); +void rb_w32_leave_critical(void); +int rb_w32_putc(int, FILE*); +int rb_w32_getc(FILE*); +int rb_w32_close(int); +int rb_w32_fclose(FILE*); +size_t rb_w32_read(int, void *, size_t); +size_t rb_w32_write(int, const void *, size_t); +int rb_w32_utime(const char *, struct utimbuf *); +#define Sleep(msec) (void)rb_w32_sleep(msec) + +/* +== ***CAUTION*** +Since this function is very dangerous, ((*NEVER*)) +* lock any HANDLEs(i.e. Mutex, Semaphore, CriticalSection and so on) or, +* use anything like TRAP_BEG...TRAP_END block structure, +in asynchronous_func_t. +*/ +typedef DWORD (*asynchronous_func_t)(DWORD self, int argc, DWORD* argv); +DWORD rb_w32_asynchronize(asynchronous_func_t func, DWORD self, int argc, DWORD* argv, DWORD intrval); + +#endif -- cgit v1.2.3