diff --git a/C/alloc.c b/C/alloc.c index d354f418d..e7217edbb 100644 --- a/C/alloc.c +++ b/C/alloc.c @@ -12,7 +12,7 @@ * Last rev: * * mods: * * comments: allocating space * -* version:$Id: alloc.c,v 1.23 2002-10-10 05:58:48 vsc Exp $ * +* version:$Id: alloc.c,v 1.24 2002-10-17 01:37:46 vsc Exp $ * *************************************************************************/ #ifdef SCCS static char SccsId[] = "%W% %G%"; @@ -48,13 +48,14 @@ static char SccsId[] = "%W% %G%"; #endif #endif -#if !HAVE_SNPRINTF -#define snprintf(A,B,C) sprintf(A,C) -#define snprintf(A,B,C,D) sprintf(A,C,D) -#define snprintf(A,B,C,D,E) sprintf(A,C,D,E) -#define snprintf(A,B,C,D,E,F) sprintf(A,C,D,E,F) -#define snprintf(A,B,C,D,E,F,G) sprintf(A,C,D,E,F,G) -#define snprintf(A,B,C,D,E,F,G,H) sprintf(A,C,D,E,F,G,H) +#if HAVE_SNPRINTF +#define snprintf3(A,B,C) snprintf(A,B,C) +#define snprintf4(A,B,C,D) snprintf(A,B,C,D) +#define snprintf5(A,B,C,D,E) snprintf(A,B,C,D,E) +#else +#define snprintf3(A,B,C) sprintf(A,C) +#define snprintf4(A,B,C,D) sprintf(A,C,D) +#define snprintf5(A,B,C,D,E) sprintf(A,C,D,E) #endif STATIC_PROTO(void FreeBlock, (BlockHeader *)); @@ -391,7 +392,8 @@ AllocCodeSpace(unsigned int size) #include "windows.h" #define BASE_ADDRESS ((LPVOID) MMAP_ADDR) -#define MAX_WORKSPACE 0x80000000L +/* #define MAX_WORKSPACE 0x40000000L */ +#define MAX_WORKSPACE 0x20000000L static LPVOID brk; @@ -410,14 +412,9 @@ ExtendWorkSpace(Int s) return TRUE; } ErrorMessage = ErrorSay; -#if HAVE_STRERROR - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, "VirtualAlloc could not commit %ld bytes", - s); -#else - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, - "mkstemp could not create temporary file %s", file); -#endif /* HAVE_STRERROR */ + (long int)s); PrologMode = OldPrologMode; return FALSE; } @@ -432,19 +429,20 @@ InitWorkSpace(Int s) page_size = si.dwPageSize; b = VirtualAlloc(BASE_ADDRESS, MAX_WORKSPACE, MEM_RESERVE, PAGE_NOACCESS); if (b==NULL) { - YP_fprintf(YP_stderr,"[ Warning: YAP reserving space at a variable address ]\n"); + fprintf(stderr,"[ Warning: YAP reserving space at a variable address ]\n"); b = VirtualAlloc(0x0, MAX_WORKSPACE, MEM_RESERVE, PAGE_NOACCESS); if (b == NULL) { - Error(FATAL_ERROR,"VirtualAlloc failed"); + Error(FATAL_ERROR,TermNil,"VirtualAlloc failed"); return(0); } + } brk = BASE_ADDRESS; if (ExtendWorkSpace(s)) { return BASE_ADDRESS; } else { - Error(FATAL_ERROR,"VirtualAlloc Failed"); + Error(FATAL_ERROR,TermNil,"VirtualAlloc Failed"); return(0); } } @@ -611,11 +609,11 @@ ExtendWorkSpace(Int s) if (mkstemp(file) == -1) { ErrorMessage = ErrorSay; #if HAVE_STRERROR - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf5(ErrorMessage, MAX_ERROR_MSG_SIZE, "mkstemp could not create temporary file %s (%s)", file, strerror(errno)); #else - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, "mkstemp could not create temporary file %s", file); #endif /* HAVE_STRERROR */ PrologMode = OldPrologMode; @@ -633,14 +631,14 @@ ExtendWorkSpace(Int s) fd = open(file, O_CREAT|O_RDWR); if (fd < 0) { ErrorMessage = ErrorSay; - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, "mmap could not open %s", file); PrologMode = OldPrologMode; return FALSE; } if (lseek(fd, s, SEEK_SET) < 0) { ErrorMessage = ErrorSay; - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, "mmap could not lseek in mmapped file %s", file); PrologMode = OldPrologMode; close(fd); @@ -648,7 +646,7 @@ ExtendWorkSpace(Int s) } if (write(fd, "", 1) < 0) { ErrorMessage = ErrorSay; - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, "mmap could not write in mmapped file %s", file); PrologMode = OldPrologMode; close(fd); @@ -656,7 +654,7 @@ ExtendWorkSpace(Int s) } if (unlink(file) < 0) { ErrorMessage = ErrorSay; - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, "mmap could not unlink mmapped file %s", file); PrologMode = OldPrologMode; close(fd); @@ -673,10 +671,10 @@ ExtendWorkSpace(Int s) if (close(fd) == -1) { ErrorMessage = ErrorSay; #if HAVE_STRERROR - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, "mmap could not close file (%s) ]\n", strerror(errno)); #else - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf3(ErrorMessage, MAX_ERROR_MSG_SIZE, "mmap could not close file ]\n"); #endif PrologMode = OldPrologMode; @@ -686,10 +684,10 @@ ExtendWorkSpace(Int s) if (a == (MALLOC_T) - 1) { ErrorMessage = ErrorSay; #if HAVE_STRERROR - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf5(ErrorMessage, MAX_ERROR_MSG_SIZE, "could not allocate %d bytes (%s)", (int)s, strerror(errno)); #else - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, "could not allocate %d bytes", (int)s); #endif PrologMode = OldPrologMode; @@ -697,7 +695,7 @@ ExtendWorkSpace(Int s) } if (a != WorkSpaceTop) { ErrorMessage = ErrorSay; - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf5(ErrorMessage, MAX_ERROR_MSG_SIZE, "mmap could not grow memory at %p, got %p", WorkSpaceTop, a ); PrologMode = OldPrologMode; return FALSE; @@ -761,21 +759,21 @@ ExtendWorkSpace(Int s) /* mapping heap area */ if((shm_id = shmget(IPC_PRIVATE, (size_t)s, SHM_R|SHM_W)) == -1) { ErrorMessage = ErrorSay; - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, "could not shmget %d bytes", s); PrologMode = OldPrologMode; return(FALSE); } if((ptr = (MALLOC_T)shmat(shm_id, WorkSpaceTop, 0)) == (MALLOC_T) -1) { ErrorMessage = ErrorSay; - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, "could not shmat at %p", MMAP_ADDR); PrologMode = OldPrologMode; return(FALSE); } if (shmctl(shm_id, IPC_RMID, 0) != 0) { ErrorMessage = ErrorSay; - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, "could not remove shm segment", shm_id); PrologMode = OldPrologMode; return(FALSE); @@ -835,8 +833,8 @@ ExtendWorkSpace(Int s) PrologMode = ExtendStackMode; if (ptr == ((MALLOC_T) - 1)) { ErrorMessage = ErrorSay; - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, - , "could not expand stacks over %d bytes", s); + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, + "could not expand stacks over %d bytes", s); PrologMode = OldPrologMode; return(FALSE); } @@ -968,21 +966,21 @@ ExtendWorkSpace(Int s) ptr = (MALLOC_T)realloc((void *)HeapBase, total_space); if (ptr == NULL) { ErrorMessage = ErrorSay; - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, "could not allocate %d bytes", s); PrologMode = OldPrologMode; return(FALSE); } if (ptr != (MALLOC_T)HeapBase) { ErrorMessage = ErrorSay; - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf4(ErrorMessage, MAX_ERROR_MSG_SIZE, "could not expand contiguous stacks %d bytes", s); PrologMode = OldPrologMode; return(FALSE); } if ((CELL)ptr & MBIT) { ErrorMessage = ErrorSay; - snprintf(ErrorMessage, MAX_ERROR_MSG_SIZE, + snprintf5(ErrorMessage, MAX_ERROR_MSG_SIZE, "memory at %p conflicts with MBIT %lx", ptr, MBIT); PrologMode = OldPrologMode; return(FALSE); diff --git a/C/sysbits.c b/C/sysbits.c index bd60961e5..dba13302c 100644 --- a/C/sysbits.c +++ b/C/sysbits.c @@ -30,8 +30,11 @@ static char SccsId[] = "%W% %G%"; #if _MSC_VER || defined(__MINGW32__) #define _WIN32_WINNT 0x0400 #endif -#include "absmi.h" +#include "Yap.h" +#include "Yatom.h" +#include "Heap.h" #include "yapio.h" +#include "eval.h" #include "alloc.h" #include #if STDC_HEADERS @@ -135,7 +138,7 @@ dir_separator (int ch) return (ch == ':'); #elif ATARI || _MSC_VER return (ch == '\\'); -#elif defined(__MINGW32__) +#elif defined(__MINGW32__) || defined(__CYGWIN__) return (ch == '\\' || ch == '/'); #else return (ch == '/'); diff --git a/H/Foreign.h b/H/Foreign.h index 0b9d310ef..6013836b9 100644 --- a/H/Foreign.h +++ b/H/Foreign.h @@ -54,7 +54,7 @@ #endif #endif -#if defined(_WIN32) || defined(__CYGWIN__) +#if defined(_WIN32) #ifdef NO_DYN #undef NO_DYN #define LOAD_DLL 1 diff --git a/m4/Yap.h.m4 b/m4/Yap.h.m4 index c9fa920a3..fc8cc2f16 100644 --- a/m4/Yap.h.m4 +++ b/m4/Yap.h.m4 @@ -10,7 +10,7 @@ * File: Yap.h.m4 * * mods: * * comments: main header file for YAP * -* version: $Id: Yap.h.m4,v 1.32 2002-10-10 05:58:49 vsc Exp $ * +* version: $Id: Yap.h.m4,v 1.33 2002-10-17 01:37:46 vsc Exp $ * *************************************************************************/ #include "config.h" @@ -257,8 +257,10 @@ extern char Option[20]; #endif #elif __svr4__ || defined(__SVR4) #define MMAP_ADDR 0x02000000 -#elif defined(_WIN32) || defined(__CYGWIN__) -#define MMAP_ADDR 0x30000000L +#elif defined(_WIN32) +#define MMAP_ADDR 0x18000000L +#elif defined(__CYGWIN__) +#define MMAP_ADDR 0x20040000L #endif #endif /* !IN_SECOND_QUADRANT */