/*
** Automatically generated from `ssdb.m'
** by the Mercury compiler,
** version 14.01.1, configured for x86_64--netbsd.
** Do not edit.
**
** The autoconfigured grade settings governing
** the generation of this C file were
**
** TAG_BITS=3
** UNBOXED_FLOAT=yes
** PREGENERATED_DIST=no
** HIGHLEVEL_CODE=yes
**
** END_OF_C_GRADE_INFO
*/


/* :- module ssdb. */
/* :- interface. */

#ifndef MR_HEADER_GUARD_ssdb
#define MR_HEADER_GUARD_ssdb

#ifdef __cplusplus
extern "C" {
#endif

#include "mercury.h"


#ifndef SSDB_DECL_GUARD
#define SSDB_DECL_GUARD
#line 166 "ssdb.m"

    #include "mercury_signal.h"
    static void MR_ssdb_sigint_handler(void);

#line 287 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_String ssdb__mutable_variable_cur_filename;
#else
    extern MR_Word ssdb__mutable_variable_cur_filename;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_cur_filename_lock;
#endif

#line 289 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Integer ssdb__mutable_variable_cur_line_number;
#else
    extern MR_Word ssdb__mutable_variable_cur_line_number;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_cur_line_number_lock;
#endif

#line 292 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Integer ssdb__mutable_variable_cur_ssdb_event_number;
#else
    extern MR_Word ssdb__mutable_variable_cur_ssdb_event_number;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_cur_ssdb_event_number_lock;
#endif

#line 295 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Integer ssdb__mutable_variable_cur_ssdb_csn;
#else
    extern MR_Word ssdb__mutable_variable_cur_ssdb_csn;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_cur_ssdb_csn_lock;
#endif

#line 298 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Word ssdb__mutable_variable_cur_ssdb_next_stop;
#else
    extern MR_Word ssdb__mutable_variable_cur_ssdb_next_stop;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_cur_ssdb_next_stop_lock;
#endif

#line 301 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Word ssdb__mutable_variable_shadow_stack;
#else
    extern MR_Word ssdb__mutable_variable_shadow_stack;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_shadow_stack_lock;
#endif

#line 303 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Integer ssdb__mutable_variable_shadow_stack_depth;
#else
    extern MR_Word ssdb__mutable_variable_shadow_stack_depth;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_shadow_stack_depth_lock;
#endif

#line 306 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Word ssdb__mutable_variable_nondet_shadow_stack;
#else
    extern MR_Word ssdb__mutable_variable_nondet_shadow_stack;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_nondet_shadow_stack_lock;
#endif

#line 308 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Integer ssdb__mutable_variable_nondet_shadow_stack_depth;
#else
    extern MR_Word ssdb__mutable_variable_nondet_shadow_stack_depth;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_nondet_shadow_stack_depth_lock;
#endif

#line 311 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Word ssdb__mutable_variable_command_queue;
#else
    extern MR_Word ssdb__mutable_variable_command_queue;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_command_queue_lock;
#endif

#line 314 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Word ssdb__mutable_variable_aliases;
#else
    extern MR_Word ssdb__mutable_variable_aliases;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_aliases_lock;
#endif

#line 317 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Word ssdb__mutable_variable_breakpoints_map;
#else
    extern MR_Word ssdb__mutable_variable_breakpoints_map;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_breakpoints_map_lock;
#endif

#line 319 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_BitmapPtr ssdb__mutable_variable_breakpoints_filter;
#else
    extern MR_Word ssdb__mutable_variable_breakpoints_filter;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_breakpoints_filter_lock;
#endif

#line 324 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Word ssdb__mutable_variable_browser_state;
#else
    extern MR_Word ssdb__mutable_variable_browser_state;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_browser_state_lock;
#endif

#line 333 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Word ssdb__mutable_variable_list_params;
#else
    extern MR_Word ssdb__mutable_variable_list_params;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_list_params_lock;
#endif

#line 342 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Word ssdb__mutable_variable_tty_in;
#else
    extern MR_Word ssdb__mutable_variable_tty_in;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_tty_in_lock;
#endif

#line 344 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Word ssdb__mutable_variable_tty_out;
#else
    extern MR_Word ssdb__mutable_variable_tty_out;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_tty_out_lock;
#endif

#line 347 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Word ssdb__mutable_variable_saved_input_stream;
#else
    extern MR_Word ssdb__mutable_variable_saved_input_stream;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_saved_input_stream_lock;
#endif

#line 349 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Word ssdb__mutable_variable_saved_output_stream;
#else
    extern MR_Word ssdb__mutable_variable_saved_output_stream;
#endif
#ifdef MR_THREAD_SAFE
    extern MercuryLock ssdb__mutable_variable_saved_output_stream_lock;
#endif

#line 357 "ssdb.m"
#ifdef MR_HIGHLEVEL_CODE
    extern MR_Unsigned ssdb__mutable_variable_debugger_state;
#else
    extern MR_Unsigned ssdb__mutable_variable_debugger_state;
#endif

#endif




#line 242 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_bp_state_0;

#line 245 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_breakpoint_0;

#line 248 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_breakpoints_map_0;

#line 251 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_debugger_state_0;

#line 254 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_debugging_paused_0;

#line 257 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_format_config_0;

#line 260 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_list_params_0;

#line 263 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_list_var_value_0;

#line 266 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_next_stop_0;

#line 269 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_pos_0;

#line 272 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_ssdb_cmd_0;

#line 275 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_ssdb_event_type_0;

#line 278 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_ssdb_proc_id_0;

#line 281 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_ssdb_retry_0;

#line 284 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_ssdb_tracing_level_0;

#line 287 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_stack_frame_0;

#line 290 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_var_name_0;

#line 293 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_var_value_0;

#line 296 "ssdb.mih.tmp"
extern const MR_TypeCtorInfo_Struct ssdb__ssdb__type_ctor_info_what_next_0;

#line 63 "ssdb.m"
void MR_CALL 
ssdb____Compare____var_value_0_0(
#line 63 "ssdb.m"
  MR_Word * ssdb__param_1,
#line 63 "ssdb.m"
  MR_Word ssdb__param_2,
#line 63 "ssdb.m"
  MR_Word ssdb__param_3);

#line 63 "ssdb.m"
MR_bool MR_CALL 
ssdb____Unify____var_value_0_0(
#line 63 "ssdb.m"
  MR_Word ssdb__param_1,
#line 63 "ssdb.m"
  MR_Word ssdb__param_2);

#line 70 "ssdb.m"
void MR_CALL 
ssdb____Compare____var_name_0_0(
#line 70 "ssdb.m"
  MR_Word * ssdb__param_1,
#line 70 "ssdb.m"
  MR_String ssdb__param_2,
#line 70 "ssdb.m"
  MR_String ssdb__param_3);

#line 70 "ssdb.m"
MR_bool MR_CALL 
ssdb____Unify____var_name_0_0(
#line 70 "ssdb.m"
  MR_String ssdb__param_1,
#line 70 "ssdb.m"
  MR_String ssdb__param_2);

#line 45 "ssdb.m"
void MR_CALL 
ssdb____Compare____ssdb_tracing_level_0_0(
#line 45 "ssdb.m"
  MR_Word * ssdb__param_1,
#line 45 "ssdb.m"
  MR_Word ssdb__param_2,
#line 45 "ssdb.m"
  MR_Word ssdb__param_3);

#line 45 "ssdb.m"
MR_bool MR_CALL 
ssdb____Unify____ssdb_tracing_level_0_0(
#line 45 "ssdb.m"
  MR_Word ssdb__param_1,
#line 45 "ssdb.m"
  MR_Word ssdb__param_2);

#line 52 "ssdb.m"
void MR_CALL 
ssdb____Compare____ssdb_retry_0_0(
#line 52 "ssdb.m"
  MR_Word * ssdb__param_1,
#line 52 "ssdb.m"
  MR_Word ssdb__param_2,
#line 52 "ssdb.m"
  MR_Word ssdb__param_3);

#line 52 "ssdb.m"
MR_bool MR_CALL 
ssdb____Unify____ssdb_retry_0_0(
#line 52 "ssdb.m"
  MR_Word ssdb__param_1,
#line 52 "ssdb.m"
  MR_Word ssdb__param_2);

#line 29 "ssdb.m"
void MR_CALL 
ssdb____Compare____ssdb_proc_id_0_0(
#line 29 "ssdb.m"
  MR_Word * ssdb__param_1,
#line 29 "ssdb.m"
  MR_Word ssdb__param_2,
#line 29 "ssdb.m"
  MR_Word ssdb__param_3);

#line 29 "ssdb.m"
MR_bool MR_CALL 
ssdb____Unify____ssdb_proc_id_0_0(
#line 29 "ssdb.m"
  MR_Word ssdb__param_1,
#line 29 "ssdb.m"
  MR_Word ssdb__param_2);

#line 35 "ssdb.m"
void MR_CALL 
ssdb____Compare____ssdb_event_type_0_0(
#line 35 "ssdb.m"
  MR_Word * ssdb__param_1,
#line 35 "ssdb.m"
  MR_Word ssdb__param_2,
#line 35 "ssdb.m"
  MR_Word ssdb__param_3);

#line 35 "ssdb.m"
MR_bool MR_CALL 
ssdb____Unify____ssdb_event_type_0_0(
#line 35 "ssdb.m"
  MR_Word ssdb__param_1,
#line 35 "ssdb.m"
  MR_Word ssdb__param_2);

#line 75 "ssdb.m"
void MR_CALL 
ssdb____Compare____pos_0_0(
#line 75 "ssdb.m"
  MR_Word * ssdb__param_1,
#line 75 "ssdb.m"
  MR_Integer ssdb__param_2,
#line 75 "ssdb.m"
  MR_Integer ssdb__param_3);

#line 75 "ssdb.m"
MR_bool MR_CALL 
ssdb____Unify____pos_0_0(
#line 75 "ssdb.m"
  MR_Integer ssdb__param_1,
#line 75 "ssdb.m"
  MR_Integer ssdb__param_2);

#line 58 "ssdb.m"
void MR_CALL 
ssdb____Compare____list_var_value_0_0(
#line 58 "ssdb.m"
  MR_Word * ssdb__param_1,
#line 58 "ssdb.m"
  MR_Word ssdb__param_2,
#line 58 "ssdb.m"
  MR_Word ssdb__param_3);

#line 58 "ssdb.m"
MR_bool MR_CALL 
ssdb____Unify____list_var_value_0_0(
#line 58 "ssdb.m"
  MR_Word ssdb__param_1,
#line 58 "ssdb.m"
  MR_Word ssdb__param_2);

#line 184 "ssdb.m"
void MR_CALL 
ssdb____Compare____debugging_paused_0_0(
#line 184 "ssdb.m"
  MR_Word * ssdb__param_1,
#line 184 "ssdb.m"
  MR_Word ssdb__param_2,
#line 184 "ssdb.m"
  MR_Word ssdb__param_3);

#line 184 "ssdb.m"
MR_bool MR_CALL 
ssdb____Unify____debugging_paused_0_0(
#line 184 "ssdb.m"
  MR_Word ssdb__param_1,
#line 184 "ssdb.m"
  MR_Word ssdb__param_2);

#line 180 "ssdb.m"
void MR_CALL 
ssdb____Compare____debugger_state_0_0(
#line 180 "ssdb.m"
  MR_Word * ssdb__param_1,
#line 180 "ssdb.m"
  MR_Word ssdb__param_2,
#line 180 "ssdb.m"
  MR_Word ssdb__param_3);

#line 180 "ssdb.m"
MR_bool MR_CALL 
ssdb____Unify____debugger_state_0_0(
#line 180 "ssdb.m"
  MR_Word ssdb__param_1,
#line 180 "ssdb.m"
  MR_Word ssdb__param_2);

#line 140 "ssdb.m"
void MR_CALL 
ssdb__enable_debugging_2_p_0(void);

#line 134 "ssdb.m"
void MR_CALL 
ssdb__resume_debugging_3_p_0(
#line 134 "ssdb.m"
  MR_Word ssdb__param_1);

#line 133 "ssdb.m"
void MR_CALL 
ssdb__pause_debugging_3_p_0(
#line 133 "ssdb.m"
  MR_Word * ssdb__param_1);

#line 113 "ssdb.m"
void MR_CALL 
ssdb__handle_event_redo_nondet_2_p_0(
#line 113 "ssdb.m"
  MR_Word ssdb__param_1,
#line 113 "ssdb.m"
  MR_Word ssdb__param_2);

#line 108 "ssdb.m"
void MR_CALL 
ssdb__handle_event_fail_nondet_3_p_0(
#line 108 "ssdb.m"
  MR_Word ssdb__param_1,
#line 108 "ssdb.m"
  MR_Word ssdb__param_2,
#line 108 "ssdb.m"
  MR_Word * ssdb__param_3);

#line 103 "ssdb.m"
void MR_CALL 
ssdb__handle_event_fail_3_p_0(
#line 103 "ssdb.m"
  MR_Word ssdb__param_1,
#line 103 "ssdb.m"
  MR_Word ssdb__param_2,
#line 103 "ssdb.m"
  MR_Word * ssdb__param_3);

#line 98 "ssdb.m"
void MR_CALL 
ssdb__handle_event_exit_nondet_2_p_0(
#line 98 "ssdb.m"
  MR_Word ssdb__param_1,
#line 98 "ssdb.m"
  MR_Word ssdb__param_2);

#line 93 "ssdb.m"
void MR_CALL 
ssdb__handle_event_exit_3_p_0(
#line 93 "ssdb.m"
  MR_Word ssdb__param_1,
#line 93 "ssdb.m"
  MR_Word ssdb__param_2,
#line 93 "ssdb.m"
  MR_Word * ssdb__param_3);

#line 88 "ssdb.m"
void MR_CALL 
ssdb__handle_event_call_nondet_3_p_0(
#line 88 "ssdb.m"
  MR_Word ssdb__param_1,
#line 88 "ssdb.m"
  MR_Word ssdb__param_2,
#line 88 "ssdb.m"
  MR_Word ssdb__param_3);

#line 83 "ssdb.m"
void MR_CALL 
ssdb__handle_event_call_3_p_0(
#line 83 "ssdb.m"
  MR_Word ssdb__param_1,
#line 83 "ssdb.m"
  MR_Word ssdb__param_2,
#line 83 "ssdb.m"
  MR_Word ssdb__param_3);

#line 79 "ssdb.m"
void MR_CALL 
ssdb__set_context_2_p_0(
#line 79 "ssdb.m"
  MR_String ssdb__param_1,
#line 79 "ssdb.m"
  MR_Integer ssdb__param_2);

void mercury__ssdb__init(void);
void mercury__ssdb__init_type_tables(void);
void mercury__ssdb__init_debugger(void);
void mercury__ssdb__required_init(void);

#ifdef __cplusplus
}
#endif

#endif /* MR_HEADER_GUARD_ssdb */

/* :- end_interface ssdb. */
