2002-10-10 17:07:16 -04:00
|
|
|
#ifndef RUBY_WIN32_H
|
|
|
|
#define RUBY_WIN32_H
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
/*
|
|
|
|
* 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 <stdarg.h> conflict with varargs.h?
|
|
|
|
// There is function-name conflitct, so we rename it
|
|
|
|
#if !defined(IN) && !defined(FLOAT)
|
|
|
|
#define OpenFile WINAPI_OpenFile
|
|
|
|
#include <windows.h>
|
|
|
|
#include <winsock.h>
|
|
|
|
#undef OpenFile
|
|
|
|
#endif
|
* configure.in, defines.h, dir.c, dir.h, dln.c, error.c,
eval.c, file.c, hash.c, io.c, main.c, missing.c,
process.c, ruby.c, rubysig.h, signal.c, st.c, util.c, util.h,
bcc/Makefile.sub, win32/Makefile.sub, win32/win32.h,
ext/Win32API/Win32API.c, ext/socket/getaddrinfo.c,
ext/socket/getnameinfo.c, ext/socket/socket.c,
ext/tcltklib/stubs.c
: replace "NT" with "_WIN32", add DOSISH_DRIVE_LETTER
* wince/exe.mak : delete \r at the end of lines.
* wince/mswince-ruby17.def : delete rb_obj_become
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-12-14 22:18:08 -05:00
|
|
|
|
|
|
|
#define NT 1 /* deprecated */
|
|
|
|
|
|
|
|
#ifdef _WIN32_WCE
|
|
|
|
#undef CharNext
|
|
|
|
#define CharNext CharNextA
|
|
|
|
#endif
|
|
|
|
|
1999-01-19 23:45:32 -05:00
|
|
|
//
|
2001-11-14 13:41:46 -05:00
|
|
|
// We're not using Microsoft's "extensions" to C for
|
1999-01-19 23:45:32 -05:00
|
|
|
// Structured Exception Handling (SEH) so we can nuke these
|
|
|
|
//
|
|
|
|
#undef try
|
|
|
|
#undef except
|
|
|
|
#undef finally
|
|
|
|
#undef leave
|
1999-08-13 01:45:20 -04:00
|
|
|
|
|
|
|
#if defined(__cplusplus)
|
2000-01-04 23:41:21 -05:00
|
|
|
extern "C++" {
|
1999-08-13 01:45:20 -04:00
|
|
|
#endif
|
|
|
|
|
1999-01-19 23:45:32 -05:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <direct.h>
|
|
|
|
#include <process.h>
|
|
|
|
#include <time.h>
|
|
|
|
#include <math.h>
|
2002-08-27 22:39:29 -04:00
|
|
|
#include <signal.h>
|
2001-03-20 18:10:05 -05:00
|
|
|
#include <sys/stat.h>
|
1999-01-19 23:45:32 -05:00
|
|
|
#include <sys/types.h>
|
2001-08-06 20:21:40 -04:00
|
|
|
#if !defined(__BORLANDC__)
|
|
|
|
# include <sys/utime.h>
|
|
|
|
#else
|
|
|
|
# include <utime.h>
|
|
|
|
#endif
|
1999-08-13 01:45:20 -04:00
|
|
|
#include <io.h>
|
|
|
|
#include <malloc.h>
|
1999-01-19 23:45:32 -05:00
|
|
|
|
1999-08-13 01:45:20 -04:00
|
|
|
#if defined(__cplusplus)
|
2000-01-04 23:41:21 -05:00
|
|
|
}
|
1999-08-13 01:45:20 -04:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#define UIDTYPE int
|
|
|
|
#define GIDTYPE int
|
|
|
|
#define pid_t int
|
|
|
|
#define WNOHANG -1
|
1999-01-19 23:45:32 -05:00
|
|
|
|
2001-02-17 10:17:10 -05:00
|
|
|
#undef getc
|
|
|
|
#undef putc
|
|
|
|
#undef fgetc
|
|
|
|
#undef fputc
|
|
|
|
#undef getchar
|
|
|
|
#undef putchar
|
|
|
|
#undef fgetchar
|
|
|
|
#undef fputchar
|
2003-02-17 00:17:46 -05:00
|
|
|
#undef utime
|
2002-05-29 06:22:19 -04:00
|
|
|
#define getc(_stream) rb_w32_getc(_stream)
|
|
|
|
#define putc(_c, _stream) rb_w32_putc(_c, _stream)
|
2001-02-17 10:17:10 -05:00
|
|
|
#define fgetc(_stream) getc(_stream)
|
|
|
|
#define fputc(_c, _stream) putc(_c, _stream)
|
2002-05-29 06:22:19 -04:00
|
|
|
#define getchar() rb_w32_getc(stdin)
|
|
|
|
#define putchar(_c) rb_w32_putc(_c, stdout)
|
2002-10-10 17:07:16 -04:00
|
|
|
#define fgetchar() getchar()
|
|
|
|
#define fputchar(_c) putchar(_c)
|
2003-02-17 00:17:46 -05:00
|
|
|
#define utime(_p, _t) rb_w32_utime(_p, _t)
|
2001-02-17 10:17:10 -05:00
|
|
|
|
2002-06-10 21:27:48 -04:00
|
|
|
#define strcasecmp stricmp
|
|
|
|
#define strncasecmp strnicmp
|
2003-01-04 13:17:30 -05:00
|
|
|
#ifdef __BORLANDC__
|
2002-06-10 21:27:48 -04:00
|
|
|
#define _open _sopen
|
|
|
|
#endif
|
|
|
|
|
2002-10-10 17:07:16 -04:00
|
|
|
#define close rb_w32_close
|
|
|
|
#define fclose rb_w32_fclose
|
2003-01-04 13:17:30 -05:00
|
|
|
#define getpid rb_w32_getpid
|
|
|
|
#define sleep(x) rb_w32_sleep((x)*1000)
|
|
|
|
#ifdef __BORLANDC__
|
2002-06-10 21:27:48 -04:00
|
|
|
#define creat _creat
|
|
|
|
#define eof _eof
|
|
|
|
#define filelength _filelength
|
|
|
|
#define locking _locking
|
|
|
|
#define mktemp _mktemp
|
|
|
|
#define perror _perror
|
|
|
|
#define read _read
|
|
|
|
#define sopen _sopen
|
|
|
|
#define tell _tell
|
|
|
|
#define umask _umask
|
|
|
|
#define unlink _unlink
|
|
|
|
#define write _write
|
2003-01-04 13:17:30 -05:00
|
|
|
#endif
|
1999-08-13 01:45:20 -04:00
|
|
|
#define vsnprintf _vsnprintf
|
|
|
|
#define snprintf _snprintf
|
2001-03-18 22:20:24 -05:00
|
|
|
#undef stat
|
2002-05-29 06:22:19 -04:00
|
|
|
#define stat(path,st) rb_w32_stat(path,st)
|
1999-01-19 23:45:32 -05:00
|
|
|
|
2000-05-13 12:13:31 -04:00
|
|
|
#ifdef __MINGW32__
|
|
|
|
struct timezone {
|
|
|
|
int tz_minuteswest;
|
|
|
|
int tz_dsttime;
|
|
|
|
};
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
extern int NtMakeCmdVector(char *, char ***, int);
|
|
|
|
extern void NtInitialize(int *, char ***);
|
|
|
|
extern char * NtGetLib(void);
|
|
|
|
extern char * NtGetBin(void);
|
2002-06-28 14:26:01 -04:00
|
|
|
extern pid_t pipe_exec(char *, int, FILE **, FILE **);
|
2002-05-29 06:22:19 -04:00
|
|
|
extern int flock(int fd, int oper);
|
2002-09-29 05:31:58 -04:00
|
|
|
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);
|
2002-05-29 06:22:19 -04:00
|
|
|
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 *);
|
2002-09-29 05:31:58 -04:00
|
|
|
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, char *, int, int);
|
|
|
|
extern int rb_w32_sendto(int, 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);
|
2002-05-29 06:22:19 -04:00
|
|
|
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_getenv(const char *);
|
|
|
|
extern int rb_w32_rename(const char *, const char *);
|
|
|
|
extern char **rb_w32_get_environ(void);
|
|
|
|
extern void rb_w32_free_environ(char **);
|
1999-08-13 01:45:20 -04:00
|
|
|
|
|
|
|
extern int chown(const char *, int, int);
|
|
|
|
extern int link(char *, char *);
|
|
|
|
extern int gettimeofday(struct timeval *, struct timezone *);
|
|
|
|
extern pid_t waitpid (pid_t, int *, int);
|
2003-01-05 23:30:27 -05:00
|
|
|
extern int do_spawn(int, char *);
|
|
|
|
extern int do_aspawn(int, char *, char **);
|
1999-08-13 01:45:20 -04:00
|
|
|
extern int kill(int, int);
|
2002-09-11 04:50:13 -04:00
|
|
|
extern pid_t rb_w32_getpid(void);
|
2002-12-26 09:59:35 -05:00
|
|
|
|
2002-06-10 21:27:48 -04:00
|
|
|
#include <float.h>
|
2003-04-21 08:26:08 -04:00
|
|
|
#if !defined __MINGW32__ || defined __NO_ISOCEXT
|
2002-06-10 21:27:48 -04:00
|
|
|
#ifndef isnan
|
2003-04-21 08:26:08 -04:00
|
|
|
#define isnan(x) _isnan(x)
|
2002-06-10 21:27:48 -04:00
|
|
|
#endif
|
2003-04-21 08:26:08 -04:00
|
|
|
#ifndef isinf
|
|
|
|
#define isinf(x) (!_finite(x) && !_isnan(x))
|
2002-06-10 21:27:48 -04:00
|
|
|
#endif
|
2003-04-21 08:26:08 -04:00
|
|
|
#ifndef finite
|
|
|
|
#define finite(x) _finite(x)
|
2002-06-10 21:27:48 -04:00
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
2003-04-21 08:26:08 -04:00
|
|
|
#ifdef __BORLANDC__
|
|
|
|
#undef S_ISDIR
|
|
|
|
#undef S_ISFIFO
|
|
|
|
#undef S_ISBLK
|
2002-06-10 21:27:48 -04:00
|
|
|
#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
|
1999-01-19 23:45:32 -05:00
|
|
|
|
2002-09-09 10:48:21 -04:00
|
|
|
#if !defined S_IRUSR && !defined __MINGW32__
|
2002-09-08 06:06:40 -04:00
|
|
|
#define S_IRUSR 0400
|
|
|
|
#endif
|
|
|
|
#ifndef S_IRGRP
|
|
|
|
#define S_IRGRP 0040
|
|
|
|
#endif
|
|
|
|
#ifndef S_IROTH
|
|
|
|
#define S_IROTH 0004
|
|
|
|
#endif
|
|
|
|
|
2002-09-09 10:48:21 -04:00
|
|
|
#if !defined S_IWUSR && !defined __MINGW32__
|
2002-09-08 06:06:40 -04:00
|
|
|
#define S_IWUSR 0200
|
|
|
|
#endif
|
|
|
|
#ifndef S_IWGRP
|
|
|
|
#define S_IWGRP 0020
|
|
|
|
#endif
|
|
|
|
#ifndef S_IWOTH
|
|
|
|
#define S_IWOTH 0002
|
|
|
|
#endif
|
|
|
|
|
2002-09-09 10:48:21 -04:00
|
|
|
#if !defined S_IXUSR && !defined __MINGW32__
|
2002-09-08 06:06:40 -04:00
|
|
|
#define S_IXUSR 0100
|
|
|
|
#endif
|
|
|
|
#ifndef S_IXGRP
|
|
|
|
#define S_IXGRP 0010
|
|
|
|
#endif
|
|
|
|
#ifndef S_IXOTH
|
|
|
|
#define S_IXOTH 0001
|
|
|
|
#endif
|
|
|
|
|
1999-01-19 23:45:32 -05:00
|
|
|
//
|
|
|
|
// define this so we can do inplace editing
|
|
|
|
//
|
|
|
|
|
|
|
|
#define SUFFIX
|
|
|
|
|
|
|
|
//
|
|
|
|
// stubs
|
|
|
|
//
|
2001-08-06 20:21:40 -04:00
|
|
|
#if !defined(__BORLANDC__)
|
1999-01-19 23:45:32 -05:00
|
|
|
extern int ioctl (int, unsigned int, long);
|
2001-08-06 20:21:40 -04:00
|
|
|
#endif
|
1999-01-19 23:45:32 -05:00
|
|
|
extern UIDTYPE getuid (void);
|
|
|
|
extern UIDTYPE geteuid (void);
|
|
|
|
extern GIDTYPE getgid (void);
|
|
|
|
extern GIDTYPE getegid (void);
|
|
|
|
extern int setuid (int);
|
|
|
|
extern int setgid (int);
|
|
|
|
|
2002-05-29 06:22:19 -04:00
|
|
|
extern char *rb_w32_strerror(int);
|
1999-01-19 23:45:32 -05:00
|
|
|
|
2002-05-29 06:22:19 -04:00
|
|
|
#define strerror(e) rb_w32_strerror(e)
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#define PIPE_BUF 1024
|
|
|
|
|
|
|
|
#define LOCK_SH 1
|
|
|
|
#define LOCK_EX 2
|
|
|
|
#define LOCK_NB 4
|
|
|
|
#define LOCK_UN 8
|
|
|
|
#ifndef EWOULDBLOCK
|
|
|
|
#define EWOULDBLOCK 10035 /* EBASEERR + 35 (winsock.h) */
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
2002-08-27 22:39:29 -04:00
|
|
|
#ifndef SIGINT
|
|
|
|
#define SIGINT 2
|
|
|
|
#endif
|
|
|
|
#ifndef SIGKILL
|
|
|
|
#define SIGKILL 9
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
1999-01-19 23:45:32 -05:00
|
|
|
/* #undef va_start */
|
|
|
|
/* #undef va_end */
|
|
|
|
|
|
|
|
#ifdef accept
|
|
|
|
#undef accept
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define accept rb_w32_accept
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef bind
|
|
|
|
#undef bind
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define bind rb_w32_bind
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef connect
|
|
|
|
#undef connect
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define connect rb_w32_connect
|
1999-01-19 23:45:32 -05:00
|
|
|
|
1999-08-13 01:45:20 -04:00
|
|
|
#undef FD_SET
|
2002-05-29 06:22:19 -04:00
|
|
|
#define FD_SET rb_w32_fdset
|
1999-08-13 01:45:20 -04:00
|
|
|
|
2000-06-28 04:31:35 -04:00
|
|
|
#undef FD_CLR
|
2002-05-29 06:22:19 -04:00
|
|
|
#define FD_CLR rb_w32_fdclr
|
2000-06-28 04:31:35 -04:00
|
|
|
|
1999-08-13 01:45:20 -04:00
|
|
|
#undef FD_ISSET
|
2002-05-29 06:22:19 -04:00
|
|
|
#define FD_ISSET rb_w32_fdisset
|
1999-08-13 01:45:20 -04:00
|
|
|
|
|
|
|
#undef select
|
2002-05-29 06:22:19 -04:00
|
|
|
#define select rb_w32_select
|
1999-08-13 01:45:20 -04:00
|
|
|
|
1999-01-19 23:45:32 -05:00
|
|
|
#ifdef getpeername
|
|
|
|
#undef getpeername
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define getpeername rb_w32_getpeername
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef getsockname
|
|
|
|
#undef getsockname
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define getsockname rb_w32_getsockname
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef getsockopt
|
|
|
|
#undef getsockopt
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define getsockopt rb_w32_getsockopt
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef ioctlsocket
|
|
|
|
#undef ioctlsocket
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define ioctlsocket rb_w32_ioctlsocket
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef listen
|
|
|
|
#undef listen
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define listen rb_w32_listen
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef recv
|
|
|
|
#undef recv
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define recv rb_w32_recv
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef recvfrom
|
|
|
|
#undef recvfrom
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define recvfrom rb_w32_recvfrom
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef send
|
|
|
|
#undef send
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define send rb_w32_send
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef sendto
|
|
|
|
#undef sendto
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define sendto rb_w32_sendto
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef setsockopt
|
|
|
|
#undef setsockopt
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define setsockopt rb_w32_setsockopt
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef shutdown
|
|
|
|
#undef shutdown
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define shutdown rb_w32_shutdown
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef socket
|
|
|
|
#undef socket
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define socket rb_w32_socket
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef gethostbyaddr
|
|
|
|
#undef gethostbyaddr
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define gethostbyaddr rb_w32_gethostbyaddr
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef gethostbyname
|
|
|
|
#undef gethostbyname
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define gethostbyname rb_w32_gethostbyname
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef gethostname
|
|
|
|
#undef gethostname
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define gethostname rb_w32_gethostname
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef getprotobyname
|
|
|
|
#undef getprotobyname
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define getprotobyname rb_w32_getprotobyname
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef getprotobynumber
|
|
|
|
#undef getprotobynumber
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define getprotobynumber rb_w32_getprotobynumber
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef getservbyname
|
|
|
|
#undef getservbyname
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define getservbyname rb_w32_getservbyname
|
1999-01-19 23:45:32 -05:00
|
|
|
|
|
|
|
#ifdef getservbyport
|
|
|
|
#undef getservbyport
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define getservbyport rb_w32_getservbyport
|
1999-08-13 01:45:20 -04:00
|
|
|
|
|
|
|
#ifdef get_osfhandle
|
|
|
|
#undef get_osfhandle
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define get_osfhandle rb_w32_get_osfhandle
|
1999-08-13 01:45:20 -04:00
|
|
|
|
2000-02-18 01:59:36 -05:00
|
|
|
#ifdef getcwd
|
|
|
|
#undef getcwd
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define getcwd rb_w32_getcwd
|
2000-02-18 01:59:36 -05:00
|
|
|
|
1999-08-13 01:45:20 -04:00
|
|
|
#ifdef getenv
|
|
|
|
#undef getenv
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define getenv rb_w32_getenv
|
1999-08-13 01:45:20 -04:00
|
|
|
|
2000-08-09 00:26:06 -04:00
|
|
|
#ifdef rename
|
|
|
|
#undef rename
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define rename rb_w32_rename
|
2000-08-09 00:26:06 -04:00
|
|
|
|
2000-08-15 02:22:49 -04:00
|
|
|
struct tms {
|
|
|
|
long tms_utime;
|
|
|
|
long tms_stime;
|
|
|
|
long tms_cutime;
|
|
|
|
long tms_cstime;
|
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef times
|
|
|
|
#undef times
|
|
|
|
#endif
|
2002-05-29 06:22:19 -04:00
|
|
|
#define times rb_w32_times
|
2000-08-15 02:22:49 -04:00
|
|
|
|
2000-09-27 05:11:13 -04:00
|
|
|
/* thread stuff */
|
|
|
|
HANDLE GetCurrentThreadHandle(void);
|
2002-05-29 06:22:19 -04:00
|
|
|
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*);
|
2002-10-10 17:07:16 -04:00
|
|
|
int rb_w32_close(int);
|
|
|
|
int rb_w32_fclose(FILE*);
|
2003-02-17 00:17:46 -05:00
|
|
|
int rb_w32_utime(const char *, struct utimbuf *);
|
2002-05-29 06:22:19 -04:00
|
|
|
#define Sleep(msec) (void)rb_w32_sleep(msec)
|
2000-11-14 02:10:31 -05:00
|
|
|
|
|
|
|
/*
|
|
|
|
== ***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);
|
2002-05-29 06:22:19 -04:00
|
|
|
DWORD rb_w32_asynchronize(asynchronous_func_t func, DWORD self, int argc, DWORD* argv, DWORD intrval);
|
2000-09-27 05:11:13 -04:00
|
|
|
|
1999-01-19 23:45:32 -05:00
|
|
|
#endif
|