aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbtk-wrapper.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/gdbtk-wrapper.c')
-rw-r--r--gdb/gdbtk-wrapper.c475
1 files changed, 0 insertions, 475 deletions
diff --git a/gdb/gdbtk-wrapper.c b/gdb/gdbtk-wrapper.c
deleted file mode 100644
index 9d9a263..0000000
--- a/gdb/gdbtk-wrapper.c
+++ /dev/null
@@ -1,475 +0,0 @@
-/* longjmp-free interface between gdb and gdbtk.
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#include "defs.h"
-#include "frame.h"
-#include "value.h"
-#include "gdbtk-wrapper.h"
-
-/*
- * Wrapper functions exported to the world
- */
-
-gdb_result GDB_value_fetch_lazy PARAMS ((value_ptr));
-
-gdb_result GDB_evaluate_expression PARAMS ((struct expression *, value_ptr *));
-
-gdb_result GDB_type_print PARAMS ((value_ptr, char *, GDB_FILE *, int));
-
-gdb_result GDB_val_print PARAMS ((struct type *type, char *valaddr,
- CORE_ADDR address, GDB_FILE *stream,
- int format, int deref_ref, int recurse,
- enum val_prettyprint pretty));
-
-gdb_result GDB_select_frame PARAMS ((struct frame_info *, int));
-
-gdb_result GDB_value_equal PARAMS ((value_ptr, value_ptr, int *));
-
-gdb_result GDB_parse_exp_1 PARAMS ((char **stringptr, struct block *block, int comma,
- struct expression **result));
-
-gdb_result GDB_evaluate_type PARAMS ((struct expression *exp, value_ptr *result));
-
-gdb_result GDB_block_for_pc PARAMS ((CORE_ADDR pc, struct block **result));
-
-gdb_result GDB_block_innermost_frame PARAMS ((struct block *block,
- struct frame_info **result));
-
-gdb_result GDB_reinit_frame_cache PARAMS ((void));
-
-gdb_result GDB_find_frame_addr_in_frame_chain PARAMS ((CORE_ADDR addr,
- struct frame_info **result));
-
-/*
- * Private functions for this file
- */
-static gdb_result call_wrapped_function PARAMS ((catch_errors_ftype *,
- struct gdb_wrapper_arguments *));
-
-static int wrap_type_print PARAMS ((char *));
-
-static int wrap_evaluate_expression PARAMS ((char *));
-
-static int wrap_value_fetch_lazy PARAMS ((char *));
-
-static int wrap_val_print PARAMS ((char*));
-
-static int wrap_select_frame PARAMS ((char *));
-
-static int wrap_value_equal PARAMS ((char *));
-
-static int wrap_parse_exp_1 PARAMS ((char *opaque_arg));
-
-static int wrap_evaluate_type PARAMS ((char *opaque_arg));
-
-static int wrap_block_for_pc PARAMS ((char *opaque_arg));
-
-static int wrap_block_innermost_frame PARAMS ((char *opaque_arg));
-
-static int wrap_reinit_frame_cache PARAMS ((char *opaque_arg));
-
-static int wrap_find_frame_addr_in_frame_chain PARAMS ((char *opaque_arg));
-
-static gdb_result
-call_wrapped_function (fn, arg)
- catch_errors_ftype *fn;
- struct gdb_wrapper_arguments *arg;
-{
- if (!catch_errors (fn, (char *) &arg, "", RETURN_MASK_ERROR))
- {
- /* An error occurred */
- return GDB_ERROR;
- }
-
- return GDB_OK;
-}
-
-gdb_result
-GDB_type_print (val, varstring, stream, show)
- value_ptr val;
- char *varstring;
- GDB_FILE *stream;
- int show;
-{
- struct gdb_wrapper_arguments args;
-
- args.args[0] = (char *) val;
- args.args[1] = varstring;
- args.args[2] = (char *) stream;
- args.args[3] = (char *) show;
- return call_wrapped_function ((catch_errors_ftype *) wrap_type_print, &args);
-}
-
-static int
-wrap_type_print (a)
- char *a;
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) a;
- value_ptr val = (value_ptr) (*args)->args[0];
- char *varstring = (*args)->args[1];
- GDB_FILE *stream = (GDB_FILE *) (*args)->args[2];
- int show = (int) (*args)->args[3];
- type_print (VALUE_TYPE (val), varstring, stream, show);
- return 1;
-}
-
-gdb_result
-GDB_val_print (type, valaddr, address, stream, format, deref_ref,
- recurse, pretty)
- struct type *type;
- char *valaddr;
- CORE_ADDR address;
- GDB_FILE *stream;
- int format;
- int deref_ref;
- int recurse;
- enum val_prettyprint pretty;
-{
- struct gdb_wrapper_arguments args;
-
- args.args[0] = (char *) type;
- args.args[1] = (char *) valaddr;
- args.args[2] = (char *) address;
- args.args[3] = (char *) stream;
- args.args[4] = (char *) format;
- args.args[5] = (char *) deref_ref;
- args.args[6] = (char *) recurse;
- args.args[7] = (char *) pretty;
-
- return call_wrapped_function ((catch_errors_ftype *) wrap_val_print, &args);
-}
-
-static int
-wrap_val_print (a)
- char *a;
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) a;
- struct type *type;
- char *valaddr;
- CORE_ADDR address;
- GDB_FILE *stream;
- int format;
- int deref_ref;
- int recurse;
- enum val_prettyprint pretty;
-
- type = (struct type *) (*args)->args[0];
- valaddr = (char *) (*args)->args[1];
- address = (CORE_ADDR) (*args)->args[2];
- stream = (GDB_FILE *) (*args)->args[3];
- format = (int) (*args)->args[4];
- deref_ref = (int) (*args)->args[5];
- recurse = (int) (*args)->args[6];
- pretty = (enum val_prettyprint) (*args)->args[7];
-
- val_print (type, valaddr, 0, address, stream, format, deref_ref,
- recurse, pretty);
- return 1;
-}
-
-gdb_result
-GDB_value_fetch_lazy (value)
- value_ptr value;
-{
- struct gdb_wrapper_arguments args;
-
- args.args[0] = (char *) value;
- return call_wrapped_function ((catch_errors_ftype *) wrap_value_fetch_lazy, &args);
-}
-
-static int
-wrap_value_fetch_lazy (a)
- char *a;
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) a;
-
- value_fetch_lazy ((value_ptr) (*args)->args[0]);
- return 1;
-}
-
-gdb_result
-GDB_evaluate_expression (exp, value)
- struct expression *exp;
- value_ptr *value;
-{
- struct gdb_wrapper_arguments args;
- gdb_result result;
- args.args[0] = (char *) exp;
-
- result = call_wrapped_function ((catch_errors_ftype *) wrap_evaluate_expression, &args);
- if (result != GDB_OK)
- return result;
-
- *value = (value_ptr) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_evaluate_expression (a)
- char *a;
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) a;
-
- (*args)->result =
- (char *) evaluate_expression ((struct expression *) (*args)->args[0]);
- return 1;
-}
-
-gdb_result
-GDB_select_frame (fi, level)
- struct frame_info *fi;
- int level;
-{
- struct gdb_wrapper_arguments args;
-
- args.args[0] = (char *) fi;
- args.args[1] = (char *) &level;
-
- return call_wrapped_function ((catch_errors_ftype *) wrap_select_frame, &args);
-}
-
-static int
-wrap_select_frame (a)
- char *a;
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) a;
- int level = * (int *) (*args)->args[1];
- struct frame_info *fi = (struct frame_info *) (*args)->args[0];
-
- select_frame (fi, level);
- return 1;
-}
-
-gdb_result
-GDB_value_equal (val1, val2, result)
- value_ptr val1;
- value_ptr val2;
- int *result;
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) val1;
- args.args[1] = (char *) val2;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_value_equal, &args);
- if (r != GDB_OK)
- return r;
-
- *result = (int) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_value_equal (a)
- char *a;
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) a;
- value_ptr val1, val2;
-
- val1 = (value_ptr) (*args)->args[0];
- val2 = (value_ptr) (*args)->args[1];
-
- (*args)->result = (char *) value_equal (val1, val2);
- return 1;
-}
-
-gdb_result
-GDB_parse_exp_1 (stringptr, block, comma, result)
- char **stringptr;
- struct block *block;
- int comma;
- struct expression **result;
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) stringptr;
- args.args[1] = (char *) block;
- args.args[2] = (char *) comma;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_parse_exp_1, &args);
- if (r != GDB_OK)
- return r;
-
- *result = (struct expression *) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_parse_exp_1 (opaque_arg)
- char *opaque_arg;
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- struct block *block;
- char **stringptr;
- int comma;
-
- stringptr = (char **) (*args)->args[0];
- block = (struct block *) (*args)->args[1];
- comma = (int) (*args)->args[2];
-
- (*args)->result = (char *) parse_exp_1 (stringptr, block, comma);
- return 1;
-}
-
-gdb_result
-GDB_evaluate_type (exp, result)
- struct expression *exp;
- value_ptr *result;
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) exp;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_evaluate_type, &args);
- if (r != GDB_OK)
- return r;
-
- *result = (value_ptr) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_evaluate_type (opaque_arg)
- char *opaque_arg;
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- struct expression *exp;
-
- exp = (struct expression *) (*args)->args[0];
- (*args)->result = (char *) evaluate_type (exp);
- return 1;
-}
-
-gdb_result
-GDB_block_for_pc (pc, result)
- CORE_ADDR pc;
- struct block **result;
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) pc;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_block_for_pc, &args);
- if (r != GDB_OK)
- return r;
-
- *result = (struct block *) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_block_for_pc (opaque_arg)
- char *opaque_arg;
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- CORE_ADDR pc;
-
- pc = (CORE_ADDR) (*args)->args[0];
- (*args)->result = (char *) block_for_pc (pc);
- return 1;
-}
-
-gdb_result
-GDB_block_innermost_frame (block, result)
- struct block *block;
- struct frame_info **result;
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) block;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_block_innermost_frame, &args);
- if (r != GDB_OK)
- return r;
-
- *result = (struct frame_info *) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_block_innermost_frame (opaque_arg)
- char *opaque_arg;
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- struct block *block;
-
- block = (struct block *) (*args)->args[0];
- (*args)->result = (char *) block_innermost_frame (block);
- return 1;
-}
-
-gdb_result
-GDB_reinit_frame_cache ()
-{
- gdb_result r;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_reinit_frame_cache, NULL);
- if (r != GDB_OK)
- return r;
-
- return GDB_OK;
-}
-
-static int
-wrap_reinit_frame_cache (opaque_arg)
- char *opaque_arg;
-{
- reinit_frame_cache ();
- return 1;
-}
-
-gdb_result
-GDB_find_frame_addr_in_frame_chain (addr, result)
- CORE_ADDR addr;
- struct frame_info **result;
-{
- struct gdb_wrapper_arguments args;
- gdb_result r;
-
- args.args[0] = (char *) addr;
-
- r = call_wrapped_function ((catch_errors_ftype *) wrap_find_frame_addr_in_frame_chain, &args);
- if (r != GDB_OK)
- return r;
-
- *result = (struct frame_info *) args.result;
- return GDB_OK;
-}
-
-static int
-wrap_find_frame_addr_in_frame_chain (opaque_arg)
- char *opaque_arg;
-{
- struct gdb_wrapper_arguments **args = (struct gdb_wrapper_arguments **) opaque_arg;
- CORE_ADDR addr;
-
- addr = (CORE_ADDR) (*args)->args[0];
- (*args)->result = (char *) find_frame_addr_in_frame_chain (addr);
- return 1;
-}
-
-
-/* Local variables: */
-/* change-log-default-name: "ChangeLog-gdbtk" */
-/* End: */