2015
+ − 1 /* Static array to put the dumped data in and its management
+ − 2 Copyright (C) 2003 Olivier Galibert
+ − 3
+ − 4 This file is part of XEmacs.
+ − 5
+ − 6 XEmacs is free software; you can redistribute it and/or modify it
+ − 7 under the terms of the GNU General Public License as published by the
+ − 8 Free Software Foundation; either version 2, or (at your option) any
+ − 9 later version.
+ − 10
+ − 11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ − 12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ − 13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ − 14 for more details.
+ − 15
+ − 16 You should have received a copy of the GNU General Public License
+ − 17 along with XEmacs; see the file COPYING. If not, write to
+ − 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ − 19 Boston, MA 02111-1307, USA. */
+ − 20
+ − 21 /* Synched up with: Not in FSF. */
+ − 22
+ − 23 /* Mule-ized? Mwahahahahahaha */
+ − 24
+ − 25 /* Magic values by Larry McVoy to prevent every known compiler, including
+ − 26 an especially perverse HP-UX one, from putting the array in BSS.
+ − 27 */
+ − 28
+ − 29
+ − 30 #include <config.h>
+ − 31 #include "lisp.h"
+ − 32 #include "dump-data.h"
+ − 33
+ − 34 /* 4 bytes for the data size, 4096 for alignment */
+ − 35
2367
+ − 36 static Rawbyte dumped_data[MAX_SIZE+4096+4] = {
2015
+ − 37 255,
+ − 38 6,
+ − 39 1,
+ − 40 2,
+ − 41 3,
+ − 42 4,
+ − 43 255,
+ − 44 3,
+ − 45 9,
+ − 46 62,
+ − 47 255,
+ − 48 10,
+ − 49 4,
+ − 50 61,
+ − 51 255
+ − 52 };
+ − 53
+ − 54 size_t
2367
+ − 55 dumped_data_size (void)
2015
+ − 56 {
2367
+ − 57 return dumped_data[0] | (dumped_data[1] << 8) | (dumped_data[2] << 16) |
+ − 58 (dumped_data[3] << 24);
2015
+ − 59 }
+ − 60
+ − 61 size_t
2367
+ − 62 dumped_data_max_size (void)
2015
+ − 63 {
+ − 64 return MAX_SIZE;
+ − 65 }
+ − 66
+ − 67 size_t
2367
+ − 68 dumped_data_align_offset (void)
2015
+ − 69 {
2367
+ − 70 EMACS_INT iptr = (EMACS_INT) dumped_data;
2015
+ − 71 EMACS_INT iptr2;
2367
+ − 72 iptr2 = (iptr + 4 + 4095) & ~(EMACS_INT) 4095;
2015
+ − 73
2367
+ − 74 return iptr2 - iptr;
2015
+ − 75 }
+ − 76
2367
+ − 77 Rawbyte *
+ − 78 dumped_data_get (void)
2015
+ − 79 {
2367
+ − 80 EMACS_INT iptr = (EMACS_INT) dumped_data;
+ − 81 iptr = (iptr + 4 + 4095) & ~(EMACS_INT) 4095;
+ − 82 return (Rawbyte *) iptr;
2015
+ − 83 }
+ − 84