From edf2e9b7c75d2fff380f03c9ae279e53fe05ab59 Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 20 Jan 1999 04:45:32 +0000 Subject: Win32 VCC support. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- win32/win32.h | 358 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 358 insertions(+) create mode 100644 win32/win32.h (limited to 'win32/win32.h') diff --git a/win32/win32.h b/win32/win32.h new file mode 100644 index 0000000000..a3d1f21aa5 --- /dev/null +++ b/win32/win32.h @@ -0,0 +1,358 @@ +#ifndef EXT_NT_H +#define EXT_NT_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. + * + */ + +#if defined(IMPORT) +#define EXTERN extern __declspec(dllimport) +#elif defined(EXPORT) +#define EXTERN extern __declspec(dllexport) +#endif + +// +// Definitions for NT port of Perl +// + +// +// GRRRR!!!! Windows Nonsense. +// Define the following so we don't get tons of extra stuff +// when we include windows.h +// +#if 0 +#define NOGDICAPMASKS +#define NOVIRTUALKEYCODES +#define NOWINMESSAGES +#define NOWINSTYLES +#define NOSYSMETRICS +#define NOMENUS +#define NOICONS +#define NOKEYSTATES +#define NOSYSCOMMANDS +#define NORASTEROPS +#define NOSHOWWINDOW +#define OEMRESOURCE +#define NOATOM +#define NOCLIPBOARD +#define NOCOLOR +#define NOCTLMGR +#define NODRAWTEXT +#define NOGDI +//#define NOKERNEL +//#define NOUSER +#define NONLS +#define NOMB +#define NOMEMMGR +#define NOMETAFILE +#define NOMINMAX +#define NOMSG +#define NOOPENFILE +#define NOSCROLL +#define NOSERVICE +#define NOSOUND +#define NOTEXTMETRIC +#define NOWH +#define NOWINOFFSETS +#define NOCOMM +#define NOKANJI +#define NOHELP +#define NOPROFILER +#define NODEFERWINDOWPOS +#endif + +// +// 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 +#include +#include +#undef OpenFile +#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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// +// Grrr... +// + +#define access _access +#define chmod _chmod +#define chsize _chsize +#define close _close +#define creat _creat +#define dup _dup +#define dup2 _dup2 +#define eof _eof +#define filelength _filelength +#define isatty _isatty +#define locking _locking +#define lseek _lseek +#define mktemp _mktemp +#define open _open +#define read _read +#define setmode _setmode +#define sopen _sopen +#define tell _tell +#define umask _umask +#define unlink _unlink +#define write _write +#define execl _execl +#define execle _execle +#define execlp _execlp +#define execlpe _execlpe +#define execv _execv +#define execve _execve +#define execvp _execvp +#define execvpe _execvpe +#define getpid _getpid +#define spawnl _spawnl +#define spawnle _spawnle +#define spawnlp _spawnlp +#define spawnlpe _spawnlpe +#define spawnv _spawnv +#define spawnve _spawnve +#define spawnvp _spawnvp +#define spawnvpe _spawnvpe +#if _MSC_VER < 800 +#define fileno _fileno +#endif +#define utime _utime +//#define pipe _pipe +#define perror _perror + + +/* these are defined in nt.c */ + +extern int NtMakeCmdVector(char *, char ***, int); +/* extern void NtInitialize(int *, char ***); */ +extern char *NtGetLib(void); +extern char *NtGetBin(void); +extern FILE *mypopen(char *, char *); +extern int flock(int fd, int oper); +extern FILE * myfdopen(int, char*); +extern SOCKET myaccept(SOCKET, struct sockaddr *, int *); +extern int mybind(SOCKET, struct sockaddr *, int); +extern int myconnect(SOCKET, struct sockaddr *, int); +extern int mygetpeername(SOCKET, struct sockaddr *, int *); +extern int mygetsockname(SOCKET, struct sockaddr *, int *); +extern int mygetsockopt(SOCKET, int, int, char *, int *); +extern int myioctlsocket(SOCKET, long, u_long *); +extern int mylisten(SOCKET, int); +extern int myrecv(SOCKET, char *, int, int); +extern int myrecvfrom(SOCKET, char *, int, int, struct sockaddr *, int *); +extern int mysend(SOCKET, char *, int, int); +extern int mysendto(SOCKET, char *, int, int, struct sockaddr *, int); +extern int mysetsockopt(SOCKET, int, int, char *, int); +extern int myshutdown(SOCKET, int); +extern SOCKET mysocket(int, int, int); +extern struct hostent * mygethostbyaddr(char *, int, int); +extern struct hostent * mygethostbyname(char *); +extern int mygethostname(char *, int); +extern struct protoent * mygetprotobyname(char *); +extern struct protoent * mygetprotobynumber(int); +extern struct servent * mygetservbyname(char *, char *); +extern struct servent * mygetservbyport(int, char *); + +// +// define this so we can do inplace editing +// + +#define SUFFIX + +// +// stubs +// +// extern int ioctl (int, unsigned int, char *); +extern int ioctl (int, unsigned int, long); +#if 0 +extern void sleep (unsigned int); +#else +#define sleep(x) Sleep(x*1000) +#endif + +extern UIDTYPE getuid (void); +extern UIDTYPE geteuid (void); +extern GIDTYPE getgid (void); +extern GIDTYPE getegid (void); +extern int setuid (int); +extern int setgid (int); + + +#undef IN /* confict in parse.c */ + +#if 0 +extern int sys_nerr; +extern char *sys_errlist[]; +#endif +extern char *mystrerror(int); + +#define strerror(e) mystrerror(e) + +#define PIPE_BUF 1024 + +#define HAVE_STDLIB_H 1 +#define HAVE_GETLOGIN 1 +#define HAVE_WAITPID 1 +#define HAVE_GETCWD 1 + +#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 + +#define O_BINARY 0x8000 + +#ifdef popen +#undef popen +#define popen mypopen +#endif +#ifdef pclose +#undef pclose +#define pclose mypclose +#endif + +/* #undef va_start */ +/* #undef va_end */ + +#ifdef fdopen +#undef fdopen +#endif +#define fdopen myfdopen + +#ifdef accept +#undef accept +#endif +#define accept myaccept + +#ifdef bind +#undef bind +#endif +#define bind mybind + +#ifdef connect +#undef connect +#endif +#define connect myconnect + +#ifdef getpeername +#undef getpeername +#endif +#define getpeername mygetpeername + +#ifdef getsockname +#undef getsockname +#endif +#define getsockname mygetsockname + +#ifdef getsockopt +#undef getsockopt +#endif +#define getsockopt mygetsockopt + +#ifdef ioctlsocket +#undef ioctlsocket +#endif +#define ioctlsocket myioctlsocket + +#ifdef listen +#undef listen +#endif +#define listen mylisten + +#ifdef recv +#undef recv +#endif +#define recv myrecv + +#ifdef recvfrom +#undef recvfrom +#endif +#define recvfrom myrecvfrom + +#ifdef send +#undef send +#endif +#define send mysend + +#ifdef sendto +#undef sendto +#endif +#define sendto mysendto + +#ifdef setsockopt +#undef setsockopt +#endif +#define setsockopt mysetsockopt + +#ifdef shutdown +#undef shutdown +#endif +#define shutdown myshutdown + +#ifdef socket +#undef socket +#endif +#define socket mysocket + +#ifdef gethostbyaddr +#undef gethostbyaddr +#endif +#define gethostbyaddr mygethostbyaddr + +#ifdef gethostbyname +#undef gethostbyname +#endif +#define gethostbyname mygethostbyname + +#ifdef gethostname +#undef gethostname +#endif +#define gethostname mygethostname + +#ifdef getprotobyname +#undef getprotobyname +#endif +#define getprotobyname mygetprotobyname + +#ifdef getprotobynumber +#undef getprotobynumber +#endif +#define getprotobynumber mygetprotobynumber + +#ifdef getservbyname +#undef getservbyname +#endif +#define getservbyname mygetservbyname + +#ifdef getservbyport +#undef getservbyport +#endif +#define getservbyport mygetservbyport +#endif -- cgit v1.2.3