486
|
1 /* Includes for memory limit warnings.
|
75227
|
2 Copyright (C) 1990, 1993, 1994, 1995, 1996, 2001, 2002, 2003, 2004,
|
100951
|
3 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
486
|
4
|
|
5 This file is part of GNU Emacs.
|
|
6
|
94994
|
7 GNU Emacs is free software: you can redistribute it and/or modify
|
486
|
8 it under the terms of the GNU General Public License as published by
|
94994
|
9 the Free Software Foundation, either version 3 of the License, or
|
|
10 (at your option) any later version.
|
486
|
11
|
|
12 GNU Emacs is distributed in the hope that it will be useful,
|
|
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15 GNU General Public License for more details.
|
|
16
|
|
17 You should have received a copy of the GNU General Public License
|
94994
|
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
486
|
19
|
5497
|
20 #ifdef MSDOS
|
|
21 #include <dpmi.h>
|
46950
|
22 extern int etext;
|
5497
|
23 #endif
|
|
24
|
5547
|
25 /* Some systems need this before <sys/resource.h>. */
|
|
26 #include <sys/types.h>
|
|
27
|
4229
edf8c9e14e02
[_LIBC]: Just include <sys/resource.h>, and skip hairy #ifdef mess.
Roland McGrath <roland@gnu.org>
diff
changeset
|
28 #ifdef _LIBC
|
edf8c9e14e02
[_LIBC]: Just include <sys/resource.h>, and skip hairy #ifdef mess.
Roland McGrath <roland@gnu.org>
diff
changeset
|
29
|
edf8c9e14e02
[_LIBC]: Just include <sys/resource.h>, and skip hairy #ifdef mess.
Roland McGrath <roland@gnu.org>
diff
changeset
|
30 #include <sys/resource.h>
|
4254
|
31 #define BSD4_2 /* Tell code below to use getrlimit. */
|
4229
edf8c9e14e02
[_LIBC]: Just include <sys/resource.h>, and skip hairy #ifdef mess.
Roland McGrath <roland@gnu.org>
diff
changeset
|
32
|
13563
c011026c071d
[_LIBC] (start_of_data): Use weak ref to __data_start; use &etext if not
Roland McGrath <roland@gnu.org>
diff
changeset
|
33 /* Old Linux startup code won't define __data_start. */
|
15634
08bcd5d2c8ab
[_LIBC]: Use weak_extern instead of weak_symbol for __data_start.
Roland McGrath <roland@gnu.org>
diff
changeset
|
34 extern int etext, __data_start; weak_extern (__data_start)
|
13563
c011026c071d
[_LIBC] (start_of_data): Use weak ref to __data_start; use &etext if not
Roland McGrath <roland@gnu.org>
diff
changeset
|
35 #define start_of_data() (&__data_start ?: &etext)
|
12197
|
36
|
12216
|
37 #else /* not _LIBC */
|
4229
edf8c9e14e02
[_LIBC]: Just include <sys/resource.h>, and skip hairy #ifdef mess.
Roland McGrath <roland@gnu.org>
diff
changeset
|
38
|
51399
|
39 #ifdef HAVE_SYS_RESOURCE_H
|
|
40 # include <sys/time.h>
|
|
41 # include <sys/resource.h>
|
|
42 #else
|
|
43 # if HAVE_SYS_VLIMIT_H
|
|
44 # include <sys/vlimit.h> /* Obsolete, says glibc */
|
|
45 # endif
|
3055
|
46 #endif
|
|
47
|
49549
|
48 #ifdef CYGWIN
|
|
49 #define BSD4_2
|
|
50 #endif
|
|
51
|
486
|
52 #ifndef BSD4_2
|
|
53 #ifndef USG
|
5497
|
54 #ifndef MSDOS
|
9791
|
55 #ifndef WINDOWSNT
|
486
|
56 #include <sys/vlimit.h>
|
9791
|
57 #endif /* not WINDOWSNT */
|
5497
|
58 #endif /* not MSDOS */
|
486
|
59 #endif /* not USG */
|
|
60 #else /* if BSD4_2 */
|
|
61 #include <sys/time.h>
|
|
62 #include <sys/resource.h>
|
|
63 #endif /* BSD4_2 */
|
|
64
|
1393
|
65 #ifdef emacs
|
575
|
66 /* The important properties of this type are that 1) it's a pointer, and
|
|
67 2) arithmetic on it should work as if the size of the object pointed
|
|
68 to has a size of 1. */
|
28055
|
69 typedef POINTER_TYPE *POINTER;
|
486
|
70
|
|
71 typedef unsigned long SIZE;
|
|
72
|
|
73 #ifdef NULL
|
|
74 #undef NULL
|
|
75 #endif
|
|
76 #define NULL ((POINTER) 0)
|
|
77
|
|
78 extern POINTER start_of_data ();
|
55875
|
79 #if defined USE_LSB_TAG
|
|
80 #define EXCEEDS_LISP_PTR(ptr) 0
|
|
81 #elif defined DATA_SEG_BITS
|
1592
|
82 #define EXCEEDS_LISP_PTR(ptr) \
|
8830
|
83 (((EMACS_UINT) (ptr) & ~DATA_SEG_BITS) >> VALBITS)
|
1592
|
84 #else
|
8830
|
85 #define EXCEEDS_LISP_PTR(ptr) ((EMACS_UINT) (ptr) >> VALBITS)
|
1592
|
86 #endif
|
486
|
87
|
46652
|
88 #ifdef DATA_START
|
|
89 #define start_of_data() ((char *)DATA_START)
|
|
90 #endif
|
|
91
|
16220
|
92 #ifdef BSD_SYSTEM
|
486
|
93 #ifndef DATA_SEG_BITS
|
46652
|
94 #ifndef DATA_START
|
734
|
95 extern char etext;
|
486
|
96 #define start_of_data() &etext
|
|
97 #endif
|
|
98 #endif
|
46652
|
99 #endif
|
486
|
100
|
13563
c011026c071d
[_LIBC] (start_of_data): Use weak ref to __data_start; use &etext if not
Roland McGrath <roland@gnu.org>
diff
changeset
|
101 #else /* not emacs */
|
734
|
102 extern char etext;
|
486
|
103 #define start_of_data() &etext
|
12216
|
104 #endif /* not emacs */
|
486
|
105
|
12216
|
106 #endif /* not _LIBC */
|
12197
|
107
|
486
|
108
|
52401
|
109 /* arch-tag: fe39244e-e54f-4208-b7aa-02556f7841c5
|
|
110 (do not change this comment) */
|