summaryrefslogtreecommitdiffstats
path: root/unwind.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-10-15 22:28:38 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-10-15 22:28:38 -0700
commit2956fe44fc0e17c69f3caec5a56397dd74765772 (patch)
treea97866a33d337066f32ce415f785e4f90a78ffd6 /unwind.h
parentec8beb7bc3ba88d45c8db70391bc79a16b01b4aa (diff)
downloadtxr-2956fe44fc0e17c69f3caec5a56397dd74765772.tar.gz
txr-2956fe44fc0e17c69f3caec5a56397dd74765772.tar.bz2
txr-2956fe44fc0e17c69f3caec5a56397dd74765772.zip
Introspection over catch and handle frames.
* unwind.c (types_s, jump_s): New symbol variables. (frame_type, catch_frame_type, handle_frame_type): New globals denoting struct types. (uw_get_frames, uw_invoke_catch): New functions. (uw_late_init): Initialize new global variables. Register get-frames and invoke-catch intrinsics. * unwind.h (uw_get_frames, uw_invoke_catch): Declared. * txr.1: Documented frame, catch-frame, handle-frame, get-frames and invoke-catch.
Diffstat (limited to 'unwind.h')
-rw-r--r--unwind.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/unwind.h b/unwind.h
index 207b8ce9..3dc9c387 100644
--- a/unwind.h
+++ b/unwind.h
@@ -126,6 +126,8 @@ void uw_pop_frame(uw_frame_t *);
void uw_pop_until(uw_frame_t *);
uw_frame_t *uw_current_frame(void);
uw_frame_t *uw_current_exit_point(void);
+val uw_get_frames(void);
+val uw_invoke_catch(val catch_frame, val sym, struct args *);
void uw_init(void);
void uw_late_init(void);