diff options
| author | Dan Nicolaescu | 2010-07-07 20:03:52 -0700 |
|---|---|---|
| committer | Dan Nicolaescu | 2010-07-07 20:03:52 -0700 |
| commit | 313d9eb21863418cb91328c3d5ef0c2d356fc483 (patch) | |
| tree | 87aa5f39b43cc9c308839047bc83345d518f5d0a /src/vm-limit.c | |
| parent | d734dbbd24fca96383d2583c36d2a805181cf306 (diff) | |
| download | emacs-313d9eb21863418cb91328c3d5ef0c2d356fc483.tar.gz emacs-313d9eb21863418cb91328c3d5ef0c2d356fc483.zip | |
Simplify start_of_data, start_of_text and related code.
* src/mem-limits.h: Remove !emacs and _LIBC conditional code.
(start_of_data): Merge into start_of_data function.
* src/sysdep.c (start_of_text): Remove. Move simplified versions of
it in the only users: src/unexaix.c and unexec.c.
(read_input_waiting): Remove local declaration of quit_char.
(start, etext): Remove declarations.
(start_of_data): Merge with the version in mem-limits.h and move
to vm-limits.c.
* src/vm-limit.c (start_of_data): Merged and simplified version of the
code formerly in mem-limits.h and sysdep.c.
* src/unexec.c (start): New declaration, moved from sysdep.c.
(start_of_text): Simplified version of the code formerly in sysdep.c.
* unexaix.c (start_of_text): Simplified version of the code
formerly in sysdep.c.
* src/m/alpha.h (HAVE_TEXT_START): Remove.
(TEXT_START): Move ...
* src/unexalpha.c (TEXT_START): ... here.
* src/s/hpux10-20.h (TEXT_START): Remove.
* src/s/darwin.h (TEXT_START):
* src/m/mips.h (TEXT_START):
* src/m/macppc.h (HAVE_TEXT_START):
* src/m/m68k.h (TEXT_START):
* src/m/iris4d.h (TEXT_START):
* src/m/intel386.h (TEXT_START):
* src/m/ibmrs6000.h (TEXT_START):
* src/m/ia64.h (HAVE_TEXT_START):
* src/s/msdos.h (TEXT_START): Likewise.
Diffstat (limited to 'src/vm-limit.c')
| -rw-r--r-- | src/vm-limit.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/vm-limit.c b/src/vm-limit.c index 00b041d8ef8..cb42f78701b 100644 --- a/src/vm-limit.c +++ b/src/vm-limit.c | |||
| @@ -244,6 +244,46 @@ check_memory_limits (void) | |||
| 244 | (*warn_function) ("Warning: memory in use exceeds lisp pointer size"); | 244 | (*warn_function) ("Warning: memory in use exceeds lisp pointer size"); |
| 245 | } | 245 | } |
| 246 | 246 | ||
| 247 | #if !defined(CANNOT_DUMP) || !defined(SYSTEM_MALLOC) | ||
| 248 | /* Some systems that cannot dump also cannot implement these. */ | ||
| 249 | |||
| 250 | /* | ||
| 251 | * Return the address of the start of the data segment prior to | ||
| 252 | * doing an unexec. After unexec the return value is undefined. | ||
| 253 | * See crt0.c for further information and definition of data_start. | ||
| 254 | * | ||
| 255 | * Apparently, on BSD systems this is etext at startup. On | ||
| 256 | * USG systems (swapping) this is highly mmu dependent and | ||
| 257 | * is also dependent on whether or not the program is running | ||
| 258 | * with shared text. Generally there is a (possibly large) | ||
| 259 | * gap between end of text and start of data with shared text. | ||
| 260 | * | ||
| 261 | */ | ||
| 262 | |||
| 263 | POINTER | ||
| 264 | start_of_data (void) | ||
| 265 | { | ||
| 266 | #ifdef BSD_SYSTEM | ||
| 267 | extern char etext; | ||
| 268 | return (POINTER)(&etext); | ||
| 269 | #elif defined DATA_START | ||
| 270 | return ((POINTER) DATA_START); | ||
| 271 | #elif defined ORDINARY_LINK | ||
| 272 | /* | ||
| 273 | * This is a hack. Since we're not linking crt0.c or pre_crt0.c, | ||
| 274 | * data_start isn't defined. We take the address of environ, which | ||
| 275 | * is known to live at or near the start of the system crt0.c, and | ||
| 276 | * we don't sweat the handful of bytes that might lose. | ||
| 277 | */ | ||
| 278 | extern char **environ; | ||
| 279 | return ((POINTER) &environ); | ||
| 280 | #else | ||
| 281 | extern int data_start; | ||
| 282 | return ((POINTER) &data_start); | ||
| 283 | #endif | ||
| 284 | } | ||
| 285 | #endif /* (not CANNOT_DUMP or not SYSTEM_MALLOC) */ | ||
| 286 | |||
| 247 | /* Enable memory usage warnings. | 287 | /* Enable memory usage warnings. |
| 248 | START says where the end of pure storage is. | 288 | START says where the end of pure storage is. |
| 249 | WARNFUN specifies the function to call to issue a warning. */ | 289 | WARNFUN specifies the function to call to issue a warning. */ |