diff options
Diffstat (limited to 'libguile/loader.h')
-rw-r--r-- | libguile/loader.h | 77 |
1 files changed, 51 insertions, 26 deletions
diff --git a/libguile/loader.h b/libguile/loader.h index 5c719cbce..979d56085 100644 --- a/libguile/loader.h +++ b/libguile/loader.h @@ -1,39 +1,64 @@ -/* Copyright (C) 2001, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 3 of - * the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - * 02110-1301 USA - */ +/* Copyright 2001,2009-2015,2018 + Free Software Foundation, Inc. + + This file is part of Guile. + + Guile is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Guile 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 Lesser General Public + License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with Guile. If not, see + <https://www.gnu.org/licenses/>. */ #ifndef _SCM_LOADER_H_ #define _SCM_LOADER_H_ -#include <libguile.h> +#include <libguile/scm.h> + +#ifdef BUILDING_LIBGUILE + +/* The endianness marker in objcode. */ +#ifdef WORDS_BIGENDIAN +# define SCM_OBJCODE_ENDIANNESS "BE" +#else +# define SCM_OBJCODE_ENDIANNESS "LE" +#endif + +#define _SCM_CPP_STRINGIFY(x) # x +#define SCM_CPP_STRINGIFY(x) _SCM_CPP_STRINGIFY (x) + +/* The word size marker in objcode. */ +#define SCM_OBJCODE_WORD_SIZE SCM_CPP_STRINGIFY (SIZEOF_VOID_P) + +/* Major and minor versions must be single characters. */ +#define SCM_OBJCODE_MAJOR_VERSION 4 +#define SCM_OBJCODE_MINIMUM_MINOR_VERSION 1 +#define SCM_OBJCODE_MINOR_VERSION 1 +#define SCM_OBJCODE_MAJOR_VERSION_STRING \ + SCM_CPP_STRINGIFY(SCM_OBJCODE_MAJOR_VERSION) +#define SCM_OBJCODE_MINOR_VERSION_STRING \ + SCM_CPP_STRINGIFY(SCM_OBJCODE_MINOR_VERSION) +#define SCM_OBJCODE_VERSION_STRING \ + SCM_OBJCODE_MAJOR_VERSION_STRING "." SCM_OBJCODE_MINOR_VERSION_STRING +#define SCM_OBJCODE_MACHINE_VERSION_STRING \ + SCM_OBJCODE_ENDIANNESS "-" SCM_OBJCODE_WORD_SIZE "-" SCM_OBJCODE_VERSION_STRING + +#endif SCM_API SCM scm_load_thunk_from_file (SCM filename); SCM_API SCM scm_load_thunk_from_memory (SCM bv); -SCM_INTERNAL const scm_t_uint8 * -scm_find_slot_map_unlocked (const scm_t_uint32 *ip); +SCM_INTERNAL const uint8_t * +scm_find_slot_map_unlocked (const uint32_t *ip); SCM_INTERNAL void scm_bootstrap_loader (void); SCM_INTERNAL void scm_init_loader (void); #endif /* _SCM_LOADER_H_ */ - -/* - Local Variables: - c-file-style: "gnu" - End: -*/ |