/* -*-C-*-
-$Id: nt.h,v 1.4 1993/08/03 08:29:54 gjr Exp $
+$Id: nt.h,v 1.5 1993/08/21 02:35:30 gjr Exp $
Copyright (c) 1993 Massachusetts Institute of Technology
#include <windows.h>
#include <sys/types.h>
-#ifdef WINNT
-#else
-#include <sys/times.h>
-#endif
-
-#include <dos.h>
#include <io.h>
#include <conio.h>
#include <sys/stat.h>
#include <signal.h>
#include <errno.h>
-#include <fcntl.h> /*SRA*/
+#include <fcntl.h>
-/* We fake these for console I/O in DOS */
-#ifndef ESTALE
-#define ESTALE 1997
-#endif
#ifndef ERRNO_NONBLOCK
#define ERRNO_NONBLOCK 1998
#endif
#include "syscall.h"
#include <limits.h>
#include <time.h>
-/*#include <termio.h>*/
-
-#define HAVE_MKDIR
-#define HAVE_RMDIR
-#define HAVE_GETCWD
-
-/* #define HAVE_DUP2 */
-/* #define HAVE_FCNTL */
-#define VOID_SIGNAL_HANDLERS
-
-/*#include <sys/dir.h>*/
-\f
-typedef void Tsignal_handler_result;
-#define SIGNAL_HANDLER_RETURN() return
-
-typedef Tsignal_handler_result (*Tsignal_handler) ();
-
-#ifndef SIG_ERR
-#define SIG_ERR ((Tsignal_handler) (-1))
-#endif
-
-#if !defined(SIGCHLD) && defined(SIGCLD)
-#define SIGCHLD SIGCLD
-#endif
-#if !defined(SIGABRT) && defined(SIGIOT)
-#define SIGABRT SIGIOT
-#endif
/* Crufty, but it will work here. */
#ifndef ENOSYS
#define ENOSYS 0
#endif
-
-#ifdef UNION_WAIT_STATUS
-
-typedef union wait wait_status_t;
-
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(_X) ((_X) . w_retcode)
-#endif
-
-#ifndef WTERMSIG
-#define WTERMSIG(_X) ((_X) . w_termsig)
-#endif
-
-#ifndef WSTOPSIG
-#define WSTOPSIG(_X) ((_X) . w_stopsig)
-#endif
-
-#else /* not UNION_WAIT_STATUS */
-
-typedef int wait_status_t;
-
-#ifndef WIFEXITED
-#define WIFEXITED(_X) (((_X) & 0377) == 0)
-#endif
-
-#ifndef WIFSTOPPED
-#define WIFSTOPPED(_X) (((_X) & 0377) == 0177)
-#endif
-
-#ifndef WIFSIGNALED
-#define WIFSIGNALED(_X) ((((_X) & 0377) != 0) && (((_X) & 0377) != 0177))
-#endif
-
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(_X) (((_X) >> 8) & 0377)
-#endif
-
-#ifndef WTERMSIG
-#define WTERMSIG(_X) ((_X) & 0177)
-#endif
-
-#ifndef WSTOPSIG
-#define WSTOPSIG(_X) (((_X) >> 8) & 0377)
-#endif
-
-#endif /* UNION_WAIT_STATUS */
-\f
-/* Provide null defaults for all the signals we're likely to use so we
- aren't continually testing to see if they're defined. */
-
-#ifndef SIGLOST
-#define SIGLOST 0
-#endif
-#ifndef SIGWINCH
-#define SIGWINCH 0
-#endif
-#ifndef SIGURG
-#define SIGURG 0
-#endif
-#ifndef SIGIO
-#define SIGIO 0
-#endif
-#ifndef SIGUSR1
-#define SIGUSR1 0
-#endif
-#ifndef SIGUSR2
-#define SIGUSR2 0
-#endif
-#ifndef SIGVTALRM
-#define SIGVTALRM 0
-#endif
-#ifndef SIGABRT
-#define SIGABRT 0
-#endif
-#ifndef SIGPWR
-#define SIGPWR 0
-#endif
-#ifndef SIGPROF
-#define SIGPROF 0
-#endif
-#ifndef SIGSTOP
-#define SIGSTOP 0
-#endif
-#ifndef SIGTSTP
-#define SIGTSTP 0
-#endif
-#ifndef SIGCONT
-#define SIGCONT 0
-#endif
-#ifndef SIGCHLD
-#define SIGCHLD 0
-#endif
-#ifndef SIGTTIN
-#define SIGTTIN 0
-#endif
-#ifndef SIGTTOU
-#define SIGTTOU 0
-#endif
\f
/* constants for access() */
#ifndef R_OK
#define ALERT_STRING "\007"
#endif
-//#ifndef STDIN_FILENO
-//#define STDIN_FILENO 0
-//#define STDOUT_FILENO 1
-//#define STDERR_FILENO 2
-//#endif
-
-extern HANDLE STDIN_HANDLE, STDOUT_HANDLE, STDERR_HANDLE;
+#ifndef GUI
+ extern HANDLE STDIN_HANDLE, STDOUT_HANDLE, STDERR_HANDLE;
+#endif
/* constants for open() and fcntl() */
#ifndef O_RDONLY
extern char * EXFUN (getlogin, (void));
#endif
-#define DOS_abort abort
-#define DOS_access access
-#define DOS_alarm alarm
-#define DOS_chdir chdir
-#define DOS_chmod chmod
-#define DOS_close close
-#define DOS_ctime ctime
-#define DOS_dup dup
-#define DOS_free free
-#define DOS_fstat fstat
-#define DOS_getcwd getcwd
-#define DOS_getenv getenv
-#define DOS_getegid getegid
-#define DOS_geteuid geteuid
-#define DOS_getgrgid getgrgid
-#define DOS_gethostname gethostname
-#define DOS_getlogin getlogin
-#define DOS_getpid getpid
-#define DOS_getpwnam getpwnam
-#define DOS_getpwuid getpwuid
-#define DOS_ioctl ioctl
-#define DOS_link link
-#define DOS_localtime localtime
-#define DOS_lseek lseek
-#define DOS_malloc malloc
-#define DOS_mknod mknod
-#define DOS_mktime mktime
-#define DOS_pause pause
-#define DOS_pipe pipe
-#define DOS_read read
-#define DOS_realloc realloc
-#define DOS_signal signal
-#define DOS_sleep sleep
-#define DOS_stat stat
-#define DOS_system system
-#define DOS_time time
-#define DOS_unlink unlink
-#define DOS_write write
-#define DOS_wait wait
+#define NT_abort abort
+#define NT_access access
+#define NT_alarm alarm
+#define NT_chdir chdir
+#define NT_chmod chmod
+#define NT_close close
+#define NT_ctime ctime
+#define NT_dup dup
+#define NT_free free
+#define NT_fstat fstat
+#define NT_getcwd getcwd
+#define NT_getenv getenv
+#define NT_getegid getegid
+#define NT_geteuid geteuid
+#define NT_getgrgid getgrgid
+#define NT_gethostname gethostname
+#define NT_getlogin getlogin
+#define NT_getpid getpid
+#define NT_getpwnam getpwnam
+#define NT_getpwuid getpwuid
+#define NT_ioctl ioctl
+#define NT_link link
+#define NT_localtime localtime
+#define NT_lseek lseek
+#define NT_malloc malloc
+#define NT_mkdir mkdir
+#define NT_mknod mknod
+#define NT_mktime mktime
+#define NT_open open
+#define NT_pause pause
+#define NT_pipe pipe
+#define NT_read read
+#define NT_realloc realloc
+#define NT_rename rename
+#define NT_rmdir RemoveDirectory
+#define NT_signal signal
+#define NT_sleep sleep
+#define NT_stat stat
+#define NT_system system
+#define NT_time time
+#define NT_unlink unlink
+#define NT_write write
+#define NT_wait wait
#ifndef WINNT
extern PTR EXFUN (malloc, (unsigned int size));
extern PTR EXFUN (realloc, (PTR ptr, unsigned int size));
extern int EXFUN (gethostname, (char * name, unsigned int size));
#endif
-
-#ifdef HAVE_FCNTL
-#define DOS_fcntl fcntl
-#endif
-
-#ifdef HAVE_TRUNCATE
-#define DOS_ftruncate ftruncate
-#define DOS_truncate truncate
-#endif
-
-#ifdef HAVE_VFORK
-#define DOS_vfork vfork
-#else
-#define DOS_vfork fork
-#endif
-
-#ifdef HAVE_SYMBOLIC_LINKS
-#define DOS_lstat lstat
-#define DOS_readlink readlink
-#define DOS_symlink symlink
-#else
-#define DOS_lstat stat
-#endif
\f
-extern void EXFUN (DOS_prim_check_errno, (enum syscall_names name));
+extern void EXFUN (NT_prim_check_errno, (enum syscall_names name));
#define STD_VOID_SYSTEM_CALL(name, expression) \
{ \
while ((expression) < 0) \
if (errno != EINTR) \
- error_system_call (errno, (name)); \
+ error_system_call (errno, (name)); \
}
#define STD_BOOL_SYSTEM_CALL(name, expression) \
{ \
while (! (expression)) \
- error_system_call (GetLastError(), (name)); \
+ error_system_call ((GetLastError ()), (name)); \
}
#define STD_HANDLE_SYSTEM_CALL(name, result, expression) \
{ \
while (((result) = (expression)) == INVALID_HANDLE_VALUE) \
- error_system_call (GetLastError(), (name)); \
+ error_system_call ((GetLastError ()), (name)); \
}
#define STD_UINT_SYSTEM_CALL(name, result, expression) \
while (((result) = (expression)) == 0) \
error_system_call (errno, (name)); \
}
-\f
-#ifdef HAVE_GETTIMEOFDAY
-#define DOS_gettimeofday gettimeofday
-#endif
-#ifdef HAVE_ITIMER
-#define DOS_setitimer setitimer
-#endif
-#ifdef HAVE_RMDIR
-#define DOS_rmdir rmdir
-#endif
-#ifdef HAVE_TIMES
-#define DOS_times times
-#endif
-
-#ifdef HAVE_DUMB_OPEN
-extern int EXFUN (DOS_open, (CONST char * name, int oflag, mode_t mode));
-#else
-#define DOS_open open
-#endif
-
-#ifdef HAVE_GETCWD
-#define DOS_getcwd getcwd
-#else
-#define EMULATE_GETCWD
-#define HAVE_GETCWD
-extern char * EXFUN (DOS_getcwd, (char * buffer, size_t length));
-#endif
-
-#ifdef HAVE_MKDIR
-#define DOS_mkdir mkdir
-#else
-#define EMULATE_MKDIR
-#define HAVE_MKDIR
-extern int EXFUN (DOS_mkdir, (CONST char * name, mode_t mode));
-#endif
-
-#ifdef HAVE_RENAME
-#define DOS_rename rename
-#else
-#define DOS_rename dos_rename_file
-#endif
-
-#ifdef HAVE_WAITPID
-#define DOS_waitpid waitpid
-#else /* not HAVE_WAITPID */
-#ifdef HAVE_WAIT3
-#define EMULATE_WAITPID
-#define HAVE_WAITPID
-extern int EXFUN
- (DOS_waitpid, (pid_t pid, wait_status_t * stat_loc, int options));
-#endif /* HAVE_WAIT3 */
-#endif /* HAVE_WAITPID */
-
-#ifndef WUNTRACED
-#define WUNTRACED 0
-#endif
-
-#ifdef HAVE_SELECT
-#define DOS_select select
-#endif /* HAVE_SELECT */
#ifdef _NFILE
-#define DOS_SC_OPEN_MAX() _NFILE
+#define NT_SC_OPEN_MAX() _NFILE
#else
-#define DOS_SC_OPEN_MAX() 16
+#define NT_SC_OPEN_MAX() 16
#endif
-/* Interrupts */
-
-#define int10h(in,out) int86 (0x10, in, out)
-#define intDPMI(in,out) int86 (0x31, in, out)
-#define intDPMIx(in,out,seg) int86x (0x31, in, out, seg)
-
-/* Doesn't really go anywhere */
-#define INTERRUPT_CHAIN_NEXT 0
-#define INTERRUPT_RETURN 1
-
#endif /* SCM_NT_H */