+/* Destructor for dummy_frame. DATA is supplied by registrant.
+ REGISTERS_VALID is 1 for dummy_frame_pop, 0 for dummy_frame_discard. */
+typedef void (dummy_frame_dtor_ftype) (void *data, int registers_valid);
+
+/* Call DTOR with DTOR_DATA when DUMMY_ID frame of thread THREAD gets
+ discarded. Dummy frame with DUMMY_ID must exist. Multiple
+ destructors may be registered, they will be called in the reverse
+ order of registrations (LIFO). */
+extern void register_dummy_frame_dtor (frame_id dummy_id,
+ thread_info *thread,
+ dummy_frame_dtor_ftype *dtor,
+ void *dtor_data);
+
+/* Return 1 if there exists any dummy frame with any of its registered
+ destructors equal to both DTOR and DTOR_DATA. Return 0 otherwise. */
+extern int find_dummy_frame_dtor (dummy_frame_dtor_ftype *dtor,
+ void *dtor_data);
+
+/* Default implementation of gdbarch_dummy_id. Generate a dummy frame_id
+ for THIS_FRAME assuming that the frame is a dummy frame. */
+
+extern struct frame_id default_dummy_id (struct gdbarch *gdbarch,
+ struct frame_info *this_frame);
+