comparison src/vm-limit.c @ 109168:fb5779a6cf4b

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.
author Dan Nicolaescu <dann@ics.uci.edu>
date Wed, 07 Jul 2010 20:03:52 -0700
parents d0090a8b66c3
children e856a274549b
comparison
equal deleted inserted replaced
109167:ec5aba8edfaa 109168:fb5779a6cf4b
242 242
243 if (EXCEEDS_LISP_PTR (cp)) 243 if (EXCEEDS_LISP_PTR (cp))
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. */
250 290
251 void 291 void