(INTERRUPT_INPUT): Don't define.
(bcopy): Use memmove instead of memcpy. (GAP_USE_BCOPY, BCOPY_UPWARD_SAFE, BCOPY_DOWNWARD_SAFE): Define. Undef system calls before redefining. Emulated calls redefined to sys_*, real calls redefined to _*. (DebPrint): Macro defined. Use pragmas to place Emacs initialized data in EMDATA segment, and Emacs uninitialized data in EMBSS segment.
This commit is contained in:
parent
4a83117466
commit
7f470effe9
1 changed files with 65 additions and 16 deletions
|
@ -85,7 +85,7 @@ Boston, MA 02111-1307, USA. */
|
|||
to read the input and send it to the true Emacs process
|
||||
through a pipe. */
|
||||
|
||||
#define INTERRUPT_INPUT
|
||||
/* #define INTERRUPT_INPUT */
|
||||
|
||||
/* Letter to use in finding device name of first pty,
|
||||
if system supports pty's. 'a' means it is /dev/ptya0 */
|
||||
|
@ -140,9 +140,14 @@ Boston, MA 02111-1307, USA. */
|
|||
|
||||
#define BSTRING
|
||||
#define bzero(b, l) memset(b, 0, l)
|
||||
#define bcopy(s, d, l) memcpy(d, s, l)
|
||||
#define bcopy(s, d, l) memmove(d, s, l)
|
||||
#define bcmp(a, b, l) memcmp(a, b, l)
|
||||
|
||||
/* bcopy (aka memmove aka memcpy at least on x86) under MSVC is quite safe */
|
||||
#define GAP_USE_BCOPY
|
||||
#define BCOPY_UPWARD_SAFE 1
|
||||
#define BCOPY_DOWNWARD_SAFE 1
|
||||
|
||||
/* subprocesses should be defined if you want to
|
||||
have code for asynchronous subprocesses
|
||||
(as used in M-x compile and M-x shell).
|
||||
|
@ -293,42 +298,40 @@ Boston, MA 02111-1307, USA. */
|
|||
/* get some redefinitions in place */
|
||||
|
||||
/* IO calls that are emulated or shadowed */
|
||||
#undef access
|
||||
#define access sys_access
|
||||
#undef chdir
|
||||
#define chdir sys_chdir
|
||||
#undef chmod
|
||||
#define chmod sys_chmod
|
||||
#undef close
|
||||
#define close sys_close
|
||||
#undef creat
|
||||
#define creat sys_creat
|
||||
#define ctime sys_ctime
|
||||
#undef dup
|
||||
#define dup sys_dup
|
||||
#undef dup2
|
||||
#define dup2 sys_dup2
|
||||
#define fopen sys_fopen
|
||||
#define link sys_link
|
||||
#define mkdir sys_mkdir
|
||||
#undef mktemp
|
||||
#define mktemp sys_mktemp
|
||||
#undef open
|
||||
#define open sys_open
|
||||
#define pipe sys_pipe
|
||||
#undef read
|
||||
#define read sys_read
|
||||
#define rename sys_rename
|
||||
#define rmdir sys_rmdir
|
||||
#define select sys_select
|
||||
#define sleep sys_sleep
|
||||
#undef unlink
|
||||
#define unlink sys_unlink
|
||||
#undef write
|
||||
#define write sys_write
|
||||
|
||||
/* this is hacky, but is necessary to avoid warnings about macro
|
||||
redefinitions using the SDK compilers */
|
||||
#ifndef __STDC__
|
||||
#define __STDC__ 1
|
||||
#define MUST_UNDEF__STDC__
|
||||
#endif
|
||||
#include <direct.h>
|
||||
#include <io.h>
|
||||
#include <stdio.h>
|
||||
#ifdef MUST_UNDEF__STDC__
|
||||
#undef __STDC__
|
||||
#undef MUST_UNDEF__STDC__
|
||||
#endif
|
||||
|
||||
/* subprocess calls that are emulated */
|
||||
#define spawnve sys_spawnve
|
||||
#define wait sys_wait
|
||||
|
@ -344,6 +347,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#define fileno _fileno
|
||||
#define flushall _flushall
|
||||
#define fputchar _fputchar
|
||||
#define getcwd _getcwd
|
||||
#define getw _getw
|
||||
#define getpid _getpid
|
||||
#define isatty _isatty
|
||||
|
@ -362,6 +366,20 @@ Boston, MA 02111-1307, USA. */
|
|||
#define abort w32_abort
|
||||
#endif
|
||||
|
||||
/* this is hacky, but is necessary to avoid warnings about macro
|
||||
redefinitions using the SDK compilers */
|
||||
#ifndef __STDC__
|
||||
#define __STDC__ 1
|
||||
#define MUST_UNDEF__STDC__
|
||||
#endif
|
||||
#include <direct.h>
|
||||
#include <io.h>
|
||||
#include <stdio.h>
|
||||
#ifdef MUST_UNDEF__STDC__
|
||||
#undef __STDC__
|
||||
#undef MUST_UNDEF__STDC__
|
||||
#endif
|
||||
|
||||
/* Defines that we need that aren't in the standard signal.h */
|
||||
#define SIGHUP 1 /* Hang up */
|
||||
#define SIGQUIT 3 /* Quit process */
|
||||
|
@ -411,4 +429,35 @@ Boston, MA 02111-1307, USA. */
|
|||
/* We need a little extra space, see ../../lisp/loadup.el */
|
||||
#define SYSTEM_PURESIZE_EXTRA 25000
|
||||
|
||||
/* For unexec to work on Alpha systems, we need to put Emacs'
|
||||
initialized data into a separate section from the CRT initialized
|
||||
data (because the Alpha linker freely reorders data variables, even
|
||||
across libraries, so our data and the CRT data get intermingled).
|
||||
|
||||
Starting with MSVC 5.0, we must also place the uninitialized data
|
||||
into its own section. VC5 intermingles uninitialized data from the CRT
|
||||
between Emacs' static uninitialized data and its public uninitialized
|
||||
data. A separate .bss section for Emacs groups both static and
|
||||
public uninitalized together.
|
||||
|
||||
Note that unexnt.c relies on this fact, and must be modified
|
||||
accordingly if this section name is changed, or if this pragma is
|
||||
removed. Also, obviously, all files that define initialized data
|
||||
must include config.h to pick up this pragma. */
|
||||
|
||||
/* Names must be < 8 bytes */
|
||||
#pragma data_seg("EMDATA")
|
||||
#pragma bss_seg("EMBSS")
|
||||
|
||||
/* #define FULL_DEBUG */
|
||||
/* #define EMACSDEBUG */
|
||||
|
||||
#ifdef EMACSDEBUG
|
||||
extern void _DebPrint (const char *fmt, ...);
|
||||
#define DebPrint(stuff) _DebPrint stuff
|
||||
#else
|
||||
#define DebPrint(stuff)
|
||||
#endif
|
||||
|
||||
|
||||
/* ============================================================ */
|
||||
|
|
Loading…
Add table
Reference in a new issue