* __scm.h, alist.h, arbiters.h, async.h, backtrace.h, boolean.h,
authorMarius Vollmer <mvo@zagadka.de>
Fri, 2 Nov 2001 00:08:41 +0000 (00:08 +0000)
committerMarius Vollmer <mvo@zagadka.de>
Fri, 2 Nov 2001 00:08:41 +0000 (00:08 +0000)
chars.h, continuations.h, coop-defs.h, coop-threads.h,
debug-malloc.h, debug.h, deprecation.h, dynl.h, dynwind.h,
environments.h, eq.h, error.h, eval.h, evalext.h, extensions.h,
feature.h, filesys.h, fluids.h, fports.h, gc.h, gdb_interface.h,
gdbint.h, gh.h, goops.h, gsubr.h, guardians.h, hash.h, hashtab.h,
hooks.h, init.h, ioext.h, iselect.h, keywords.h, lang.h, list.h,
load.h, macros.h, mallocs.h, modules.h, net_db.h, numbers.h,
objects.h, objprop.h, options.h, pairs.h, ports.h, posix.h, print.h,
procprop.h, procs.h, properties.h, ramap.h, random.h, rdelim.h,
read.h, regex-posix.h, root.h, rw.h, scmsigs.h, script.h, simpos.h,
smob.h, socket.h, sort.h, srcprop.h, stackchk.h, stacks.h, stime.h,
strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
tags.h, threads.h, throw.h, unif.h, values.h, variable.h, vectors.h,
vports.h, weaks.h:
Prefixed each each exported symbol with SCM_API.

* continuations.c: Added comment about the use of the extern
declarations of {get,set}context() functions used in the ia64 port.

* continuations.h, gc.c: `__libc_ia64_register_backing_store_base'
is meant to be a `unsigned long *'.

libguile/continuations.c
libguile/continuations.h

index 586ab1f..769bbfc 100644 (file)
@@ -115,6 +115,9 @@ continuation_print (SCM obj, SCM port, scm_print_state *state SCM_UNUSED)
 }
 
 #ifdef __ia64__
+/* Extern declaration of getcontext()/setcontext() in order to redefine
+   getcontext() since on ia64-linux the second return value indicates whether
+   it returned from getcontext() itself or by running setcontext(). */
 struct rv
 {
   long retval;
@@ -138,7 +141,7 @@ scm_make_continuation (int *first)
   SCM_STACKITEM * src;
 #ifdef __ia64__
   struct rv rv;
-#endif
+#endif /* __ia64__ */
 
   SCM_ENTER_A_SECTION;
   SCM_FLUSH_REGISTER_WINDOWS;
@@ -168,7 +171,7 @@ scm_make_continuation (int *first)
     {
       continuation->backing_store_size = 
         continuation->ctx.uc_mcontext.sc_ar_bsp - 
-        __libc_ia64_register_backing_store_base;
+        (unsigned long) __libc_ia64_register_backing_store_base;
       continuation->backing_store = NULL;
       continuation->backing_store = 
         scm_must_malloc (continuation->backing_store_size, FUNC_NAME);
index 4a0c55c..d8db12f 100644 (file)
@@ -50,8 +50,8 @@
 
 #ifdef __ia64__
 #include <sys/ucontext.h>
-extern unsigned long  __libc_ia64_register_backing_store_base;
-#endif
+extern unsigned long * __libc_ia64_register_backing_store_base;
+#endif /* __ia64__ */
 \f
 
 /* a continuation SCM is a non-immediate pointing to a heap cell with:
@@ -62,7 +62,7 @@ extern unsigned long  __libc_ia64_register_backing_store_base;
           in the num_stack_items field of the structure.
 */
 
-extern scm_t_bits scm_tc16_continuation;
+SCM_API scm_t_bits scm_tc16_continuation;
 
 typedef struct 
 {
@@ -102,8 +102,8 @@ typedef struct
 
 \f
 
-extern SCM scm_make_continuation (int *first);
-extern void scm_init_continuations (void);
+SCM_API SCM scm_make_continuation (int *first);
+SCM_API void scm_init_continuations (void);
 
 #endif  /* SCM_CONTINUATIONS_H */