1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
|
/* intern.h: Functions and variables that are used by more than one source
* file of the kernel. Not available to extensions and applications.
*
* $Id: intern.h 158 2003-09-15 12:53:36Z sam $
*
* Copyright 1990, 1991, 1992, 1993, 1994, 1995, Oliver Laumann, Berlin
* Copyright 2002, 2003 Sam Hocevar <sam@zoy.org>, Paris
*
* This software was derived from Elk 1.2, which was Copyright 1987, 1988,
* 1989, Nixdorf Computer AG and TELES GmbH, Berlin (Elk 1.2 has been written
* by Oliver Laumann for TELES Telematic Services, Berlin, in a joint project
* between TELES and Nixdorf Microprocessor Engineering, Berlin).
*
* Oliver Laumann, TELES GmbH, Nixdorf Computer AG and Sam Hocevar, as co-
* owners or individual owners of copyright in this software, grant to any
* person or company a worldwide, royalty free, license to
*
* i) copy this software,
* ii) prepare derivative works based on this software,
* iii) distribute copies of this software or derivative works,
* iv) perform this software, or
* v) display this software,
*
* provided that this notice is not removed and that neither Oliver Laumann
* nor Teles nor Nixdorf are deemed to have made any representations as to
* the suitability of this software for any purpose nor are held responsible
* for any defects of this software.
*
* THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
*/
C_LINKAGE_BEGIN
/* autoload.c
*/
extern Object V_Autoload_Notifyp;
extern Object Do_Autoload P_((Object, Object));
/* bignum.c
*/
extern int Bignum_Zero P_((Object));
extern int Bignum_Positive P_((Object));
extern int Bignum_Negative P_((Object));
extern int Bignum_Even P_((Object));
extern Object Make_Bignum P_((const char*, int, int));
extern Object Integer_To_Bignum P_((int));
extern Object Bignum_Divide P_((Object, Object));
extern Object Bignum_Abs P_((Object));
extern Object Bignum_Plus P_((Object, Object));
extern Object Bignum_Minus P_((Object, Object));
extern Object Bignum_Fixnum_Multiply P_((Object, Object));
extern Object Bignum_Multiply P_((Object, Object));
extern Object Bignum_Fixnum_Divide P_((Object, Object));
extern Object Double_To_Bignum P_((double));
extern Object Unsigned_To_Bignum P_((unsigned));
extern Object Long_To_Bignum P_((long));
extern Object Unsigned_Long_To_Bignum P_((unsigned long));
extern unsigned Bignum_To_Unsigned P_((Object));
extern unsigned long Bignum_To_Unsigned_Long P_((Object));
extern long Bignum_To_Long P_((Object));
extern Object Bignum_To_String P_((Object, int));
extern int Bignum_Equal P_((Object, Object));
extern int Bignum_Greater P_((Object, Object));
extern int Bignum_Less P_((Object, Object));
extern int Bignum_Eq_Less P_((Object, Object));
extern int Bignum_Eq_Greater P_((Object, Object));
/* cont.c
*/
extern WIND *First_Wind, *Last_Wind;
extern Object Internal_Call_CC P_((int, Object));
/* dump.c
*/
extern Object Dump_Control_Point;
/* env.c
*/
extern Object Add_Binding P_((Object, Object, Object));
extern Object Lookup_Symbol P_((Object, int));
/* error.c
*/
extern Object Arg_True;
extern char *appname;
/* exception.c
*/
extern void Install_Intr_Handler P_((void));
/* heap.c
*/
#ifndef GENERATIONAL_GC
extern char *Hp, *Heap_Start, *Heap_End, *Free_Start, *Free_End;
#endif
extern int GC_In_Progress;
/* io.c
*/
extern Object General_Open_File P_((Object, int, Object));
/* load.c
*/
extern char *Loader_Input;
extern Object V_Load_Path, V_Load_Noisilyp, V_Load_Libraries;
extern void Check_Loadarg P_((Object));
extern Object General_Load P_((Object, Object));
/* list.c
*/
extern Object General_Assoc P_((Object, Object, int));
/* libelk.c
*/
extern char *stkbase, *A_Out_Name;
extern int Stack_Grows_Down;
extern unsigned int Max_Stack;
extern int Interpreter_Initialized, Was_Dumped;
extern char *Brk_On_Dump;
extern int Verb_Load, Verb_Init, Case_Insensitive;
extern SYMTAB *The_Symbols;
extern char *Scm_Dir;
extern char *Lib_Dir;
#ifndef HAVE_ATEXIT
extern void exit P_((int));
#endif
/* math.c
*/
extern char *Flonum_To_String P_((Object));
/* proc.c
*/
extern Object Sym_Lambda, Sym_Macro;
extern void Funcall_Control_Point P_((Object, Object, int));
extern Object Make_Primitive
P_((Object(*)(ELLIPSIS), const char*, int, int, enum discipline));
/* read.c
*/
extern Object Sym_Quote;
extern Object Sym_Quasiquote, Sym_Unquote, Sym_Unquote_Splicing;
extern Object Parse_Number P_((Object, const char*, int));
/* stab.c
*/
extern SYMTAB *Snarf_Symbols P_((ELLIPSIS)); /* varying args */
extern SYMTAB *Open_File_And_Snarf_Symbols P_((char *));
/* stkmem.c
*/
#ifndef HAVE_ALLOCA
extern Object Save_GC_Nodes P_((void));
#endif
/* string.c
*/
extern char Char_Map[];
extern Object General_Make_String P_((const char*, unsigned int, int));
/* symbol.c
*/
extern Object Unbound, Special, Zero, One;
/* type.c
*/
extern int Num_Types, Max_Type;
/* vector.c
*/
extern Object List_To_Vector P_((Object, int));
C_LINKAGE_END
|