Mercurial > hg > xemacs-beta
diff src/dump-data.c @ 2015:2364237fbc0f
[xemacs-hg @ 2004-04-15 20:56:17 by olivierg]
Moving the dump file inside the executable
author | olivierg |
---|---|
date | Thu, 15 Apr 2004 20:56:23 +0000 |
parents | |
children | aaa6e4c4e653 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/dump-data.c Thu Apr 15 20:56:23 2004 +0000 @@ -0,0 +1,83 @@ +/* Static array to put the dumped data in and its management + Copyright (C) 2003 Olivier Galibert + +This file is part of XEmacs. + +XEmacs is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +XEmacs is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with XEmacs; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* Synched up with: Not in FSF. */ + +/* Mule-ized? Mwahahahahahaha */ + +/* Magic values by Larry McVoy to prevent every known compiler, including + an especially perverse HP-UX one, from putting the array in BSS. +*/ + + +#include <config.h> +#include "lisp.h" +#include "dump-data.h" + +/* 4 bytes for the data size, 4096 for alignment */ + +static unsigned char dumped_data[MAX_SIZE+4096+4] = { + 255, + 6, + 1, + 2, + 3, + 4, + 255, + 3, + 9, + 62, + 255, + 10, + 4, + 61, + 255 +}; + +size_t +dumped_data_size(void) +{ + return dumped_data[0] | (dumped_data[1] << 8) | (dumped_data[2] << 16) | (dumped_data[3] << 24); +} + +size_t +dumped_data_max_size(void) +{ + return MAX_SIZE; +} + +size_t +dumped_data_align_offset(void) +{ + EMACS_INT iptr = (EMACS_INT)dumped_data; + EMACS_INT iptr2; + iptr2 = (iptr+4+4095) & ~(EMACS_INT)4095; + + return iptr2-iptr; +} + +unsigned char * +dumped_data_get(void) +{ + EMACS_INT iptr = (EMACS_INT)dumped_data; + iptr = (iptr+4+4095) & ~(EMACS_INT)4095; + return (unsigned char *)iptr; +} +