annotate lisp/play/spook.el @ 24102:1086aa5db591

Major rewrite to support cleaner method of dumping; a static "bss" section is used for heap space during preload, and bss data is now written to the proper section area when dumping. (need_to_recreate_heap): Renamed to using_dynamic_heap. (heap_index_in_executable): Obsolete variable removed. (data_section): New variable. (data_start_va): Renamed to data_start. (data_start_file): Obsolete variable removed. (bss_section): (extra_bss_size): (bss_section_static): (bss_start_static): (bss_size_static): (extra_bss_size_static): (heap_section): New variables. (_start): Remove code based on old unexec method. Call init_heap to initialize sbrk heap. (close_file_data): Update size of file when closing, so that unexec doesn't have to work out exact size in advance. (get_bss_info_from_map_file): (get_section_size): Obsolete functions removed. (rva_to_section): Fix minor bug, and add a work-around for a bug in very old linkers. (offset_to_section): (relocate_offset): New functions. (OFFSET_TO_RVA): (RVA_TO_OFFSET): (RVA_TO_SECTION_OFFSET): (PTR_TO_RVA): (PTR_TO_OFFSET): (OFFSET_TO_PTR): New macros. (get_section_info): Modify to support new unexec method; determines address ranges in process that need dumping, and COFF sections where data will be dumped. Allows for static and global bss data to be in separate ranges. No longer relies on knowledge of section names. (copy_executable_and_dump_data_section): Renamed copy_executable_and_dump_data. Completely rewritten to copy executable section by section, so that raw data areas can be expanded to hold dumped data as necessary. Allows for bss data to be in same section as initialized data. Reduces size of static heap section to that used during preload. (dump_bss_and_heap): (w32_fatal_reload_error): (read_in_bss): (map_in_heap): Obsolete functions removed. (unexec): Rounds off preload heap to nearest page rather than virtual allocation unit. Modified to match other changes.
author Andrew Innes <andrewi@gnu.org>
date Sun, 17 Jan 1999 19:21:24 +0000
parents f1fc193b6958
children dbb638e8f5d5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
658
7cbd4fcd8b0f *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 444
diff changeset
1 ;;; spook.el --- spook phrase utility for overloading the NSA line eater
7cbd4fcd8b0f *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 444
diff changeset
2
4091
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
3 ;; Copyright (C) 1988, 1993 Free Software Foundation, Inc.
841
2cdce064065f entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 814
diff changeset
4
814
38b2499cb3e9 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
5 ;; Maintainer: FSF
38b2499cb3e9 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
6 ;; Keywords: games
2315
9e7ec92a4fdf Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1219
diff changeset
7 ;; Created: May 1987
787
3cece0106722 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 658
diff changeset
8
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
10
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
11 ;; GNU Emacs is free software; you can redistribute it and/or modify
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 787
diff changeset
13 ;; the Free Software Foundation; either version 2, or (at your option)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
14 ;; any later version.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
15
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
19 ;; GNU General Public License for more details.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
20
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 4091
diff changeset
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 4091
diff changeset
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 4091
diff changeset
24 ;; Boston, MA 02111-1307, USA.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
25
787
3cece0106722 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 658
diff changeset
26 ;;; Commentary:
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
27
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 4091
diff changeset
28 ;; Steve Strassmann <straz@media-lab.media.mit.edu> didn't write
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 4091
diff changeset
29 ;; this, and even if he did, he really didn't mean for you to use it
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 4091
diff changeset
30 ;; in an anarchistic way.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 4091
diff changeset
31 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 4091
diff changeset
32 ;; To use this:
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 4091
diff changeset
33 ;; Just before sending mail, do M-x spook.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 4091
diff changeset
34 ;; A number of phrases will be inserted into your buffer, to help
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 4091
diff changeset
35 ;; give your message that extra bit of attractiveness for automated
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 4091
diff changeset
36 ;; keyword scanners. Help defeat the NSA trunk trawler!
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
37
787
3cece0106722 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 658
diff changeset
38 ;;; Code:
3cece0106722 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 658
diff changeset
39
3384
55e7bbf78b1a Use cookie1.el.
Richard M. Stallman <rms@gnu.org>
parents: 2320
diff changeset
40 (require 'cookie1)
2320
ee096523431c Modified to use cookie.el
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2315
diff changeset
41
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
42 ; Variables
21363
f1fc193b6958 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 18383
diff changeset
43 (defgroup spook nil
f1fc193b6958 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 18383
diff changeset
44 "Spook phrase utility for overloading the NSA line eater."
f1fc193b6958 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 18383
diff changeset
45 :prefix "spook-"
f1fc193b6958 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 18383
diff changeset
46 :group 'games)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
47
21363
f1fc193b6958 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 18383
diff changeset
48 (defcustom spook-phrases-file (concat data-directory "spook.lines")
f1fc193b6958 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 18383
diff changeset
49 "Keep your favorite phrases here."
f1fc193b6958 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 18383
diff changeset
50 :type 'file
f1fc193b6958 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 18383
diff changeset
51 :group 'spook)
f1fc193b6958 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 18383
diff changeset
52
f1fc193b6958 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 18383
diff changeset
53 (defcustom spook-phrase-default-count 15
f1fc193b6958 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 18383
diff changeset
54 "Default number of phrases to insert."
f1fc193b6958 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 18383
diff changeset
55 :type 'integer
f1fc193b6958 Customized.
Stephen Eglen <stephen@gnu.org>
parents: 18383
diff changeset
56 :group 'spook)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
57
1219
3e9034e7bebf (spook): Make it autoload.
Richard M. Stallman <rms@gnu.org>
parents: 841
diff changeset
58 ;;;###autoload
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
59 (defun spook ()
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
60 "Adds that special touch of class to your outgoing mail."
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
61 (interactive)
4091
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
62 (cookie-insert spook-phrases-file
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
63 spook-phrase-default-count
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
64 "Checking authorization..."
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
65 "Checking authorization...Approved"))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
66
4091
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
67 ;;;###autoload
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
68 (defun snarf-spooks ()
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
69 "Return a vector containing the lines from `spook-phrases-file'."
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
70 (cookie-snarf spook-phrases-file
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
71 "Checking authorization..."
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
72 "Checking authorization...Approved"))
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
73
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
74 ;; Note: the implementation that used to take up most of this file has been
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
75 ;; cleaned up, generalized, gratuitously broken by esr, and now resides in
51d19cce579f (snarf-spooks): Restore function.
Roland McGrath <roland@gnu.org>
parents: 3384
diff changeset
76 ;; cookie1.el.
658
7cbd4fcd8b0f *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 444
diff changeset
77
18383
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
78 (provide 'spook)
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
79
658
7cbd4fcd8b0f *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 444
diff changeset
80 ;;; spook.el ends here