* environ.h, expression.h, frame.h, gdbcmd.h, gdbcore.h,

inferior.h, language.h, signame.h, target.h, terminal.h,
tm-68k.h, tm-i386v.h, tm-sparc.h, tm-sun386.h, tm-symmetry.h,
xm-i386v.h, xm-sparc.h: Prototypes for all external functions.
Lint.
This commit is contained in:
John Gilmore 1992-02-21 01:31:56 +00:00
parent 088c3a0b74
commit 75af490bd2
11 changed files with 370 additions and 212 deletions

View File

@ -1,4 +1,29 @@
Thu Feb 20 09:04:18 1992 John Gilmore (gnu at cygnus.com)
Thu Feb 20 16:43:13 1992 Fred Fish (fnf at cygnus.com)
* environ.h, expression.h, frame.h, gdbcmd.h, gdbcore.h,
inferior.h, language.h, signame.h, target.h, terminal.h,
tm-68k.h, tm-i386v.h, tm-sparc.h, tm-sun386.h, tm-symmetry.h,
xm-i386v.h, xm-sparc.h: Prototypes for all external functions.
Lint.
* core.c, exec.c, infrun.c, inftarg.c, language.c, remote.c,
signame.c, sparc-xdep.c: Prototypes for all static functions.
Lint.
* core.c, eval.c, exec.c, inftarg.c, remote-adapt.c, remote-eb.c,
remote-hms.c, remote-mm.c, remote-nindy.c, remote-vx.c, remote.c,
target.c, target.h, valarith.c, valops.c, value.h, xcoffexec.c:
Remove to_call_function and target_call_function, since it
always calls the same thing (call_function_by_hand).
* core.c, exec.c, solib.c: Rename target_ops sections =>
to_sections, etc.
* infcmd.c, inflow.c, infptrace.c, infrun.c, main.c, target.c,
target.h: target_kill takes no args.
* language.c (language_info): Scaffolding to allow briefer
messages when the current language changes. FIXME.
* xm-amix.h, xm-i386v4.h, xm-stratus.h: Define NORETURN to avoid
complaints about volatile functions.
* xm-sysv4.h (HAVE_MMAP): Define.
Thu Feb 20 09:04:18 1992 Fred Fish (fnf at cygnus.com)
* defs.h: Include ansidecl.h and PARAMS macro. Use PARAMS
to make prototypes for all functions declared here.

View File

@ -1,5 +1,5 @@
/* Source-language-related definitions for GDB.
Copyright 1991 Free Software Foundation, Inc.
Copyright 1991, 1992 Free Software Foundation, Inc.
Contributed by the Department of Computer Science at the State University
of New York at Buffalo.
@ -19,6 +19,14 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
#if !defined (LANGUAGE_H)
#define LANGUAGE_H 1
#ifdef __STDC__ /* Forward defs for prototypes */
struct value;
enum exp_opcode;
#endif
/* This used to be included to configure GDB for one or more specific
languages. Now it is shortcutted to configure for all of them. FIXME. */
/* #include "lang_def.h" */
@ -62,8 +70,8 @@ struct language_defn {
*la_builtin_type_vector; /* Its builtin types */
enum range_check la_range_check; /* Default range checking */
enum type_check la_type_check; /* Default type checking */
int (*la_parser)(); /* Parser function */
void (*la_error)(); /* Parser error function */
int (*la_parser) PARAMS((void)); /* Parser function */
void (*la_error) PARAMS ((char *)); /* Parser error function */
struct type **la_longest_int; /* Longest signed integral type */
struct type **la_longest_unsigned_int; /* Longest uns integral type */
struct type **la_longest_float; /* Longest floating point type */
@ -108,8 +116,12 @@ extern enum language_mode
/* FIXME -- should be a setting in language_defn */
#define CAST_IS_CONVERSION (current_language->la_language == language_c)
void language_info();
void set_language();
extern void
language_info PARAMS ((int));
extern void
set_language PARAMS ((enum language));
/* This page contains functions that return things that are
specific to languages. Each of these functions is based on
@ -120,7 +132,6 @@ void set_language();
#define longest_int() (*current_language->la_longest_int)
#define longest_unsigned_int() (*current_language->la_longest_unsigned_int)
#define longest_float() (*current_language->la_longest_float)
struct type *binop_result_type();
/* Hexadecimal number formatting is in defs.h because it is so common
throughout GDB. */
@ -131,40 +142,81 @@ struct type *binop_result_type();
options like "08" or "l" (to produce e.g. %08x or %lx). */
#define local_octal_format() (current_language->la_octal_format)
char *local_octal_format_custom();
extern char *
local_octal_format_custom PARAMS ((char *));
/* Type predicates */
int simple_type();
int ordered_type();
int same_type();
int integral_type();
int numeric_type();
int character_type();
int boolean_type();
int float_type();
int pointer_type();
int structured_type();
extern int
simple_type PARAMS ((struct type *));
extern int
ordered_type PARAMS ((struct type *));
extern int
same_type PARAMS ((struct type *, struct type *));
extern int
integral_type PARAMS ((struct type *));
extern int
numeric_type PARAMS ((struct type *));
extern int
character_type PARAMS ((struct type *));
extern int
boolean_type PARAMS ((struct type *));
extern int
float_type PARAMS ((struct type *));
extern int
pointer_type PARAMS ((struct type *));
extern int
structured_type PARAMS ((struct type *));
/* Checks Binary and Unary operations for semantic type correctness */
void binop_type_check();
/* FIXME: Does not appear to be used */
#define unop_type_check(v,o) binop_type_check((v),NULL,(o))
extern void
binop_type_check PARAMS ((struct value *, struct value *, int));
/* Error messages */
void op_error();
extern void
op_error PARAMS ((char *fmt, enum exp_opcode, int));
#define type_op_error(f,o) \
op_error((f),(o),type_check==type_check_on ? 1 : 0)
#define range_op_error(f,o) \
op_error((f),(o),range_check==range_check_on ? 1 : 0)
void type_error();
void range_error();
extern void
type_error ();
void
range_error ();
/* Data: Does this value represent "truth" to the current language? */
int value_true();
extern int
value_true PARAMS ((struct value *));
/* Misc: The string representing a particular enum language. */
char *language_str();
extern char *
language_str PARAMS ((enum language));
/* Add a language to the set known by GDB (at initialization time). */
void add_language (); /* Arg is &language_defn */
extern enum language get_frame_language (); /* In stack.c */
extern void
add_language PARAMS ((const struct language_defn *));
extern enum language
get_frame_language PARAMS ((void)); /* In stack.c */
#endif /* defined (LANGUAGE_H) */

View File

@ -1,5 +1,5 @@
/* Convert between signal names and numbers.
Copyright (C) 1990 Free Software Foundation, Inc.
Copyright 1990, 1992 Free Software Foundation, Inc.
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
@ -15,27 +15,29 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
#if !defined (SIGNAME_H)
#define SIGNAME_H 1
/* Names for signals from 0 to NSIG-1. */
extern char *sys_siglist[];
#ifdef __STDC__
/* Return the abbreviation (e.g. ABRT, FPE, etc.) for signal NUMBER.
Do not return this as a const char *. The caller might want to
assign it to a char *. */
char *sig_abbrev (int number);
extern char *
sig_abbrev PARAMS ((int));
/* Return the signal number for an ABBREV, or -1 if there is no
signal by that name. */
int sig_number (const char *abbrev);
extern int
sig_number PARAMS ((const char *));
/* Print to standard error the name of SIGNAL, preceded by MESSAGE and
a colon, and followed by a newline. */
void psignal (unsigned signal, const char *message);
#else
extern void
psignal PARAMS ((unsigned, const char *));
char *sig_abbrev ();
int sig_number ();
void psignal ();
#endif
#endif /* !defined (SIGNAME_H) */

View File

@ -1,22 +1,25 @@
/* Interface between GDB and target environments, including files and processes
Copyright 1990, 1991 Free Software Foundation, Inc.
Copyright 1990, 1991, 1992 Free Software Foundation, Inc.
Contributed by Cygnus Support. Written by John Gilmore.
This file is part of GDB.
GDB is free software; you can redistribute it and/or modify
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 1, or (at your option)
any later version.
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
GDB is distributed in the hope that it will be useful,
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 GDB; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#if !defined (TARGET_H)
#define TARGET_H
/* This include file defines the interface between the main part
of the debugger, and the part which is target-specific, or
@ -37,96 +40,62 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
it goes into the file stratum, which is always below the process
stratum. */
#include "bfd.h"
enum strata {
dummy_stratum, /* The lowest of the low */
file_stratum, /* Executable files, etc */
core_stratum, /* Core dump files */
process_stratum, /* Executing processes */
process_stratum /* Executing processes */
};
struct target_ops {
char *to_shortname; /* Name this target type */
char *to_longname; /* Name for printing */
/* Documentation. Does not include trailing newline, and
starts with a one-line description (probably similar to
to_longname). */
char *to_doc;
#ifdef __STDC__
void (*to_open) (char *name, int from_tty);
void (*to_close) (int quitting);
void (*to_attach) (char *name, int from_tty);
void (*to_detach) (char *args, int from_tty);
void (*to_resume) (int step, int siggnal);
int (*to_wait) (int *status);
int (*to_fetch_registers) (int regno);
int (*to_store_registers) (int regno);
void (*to_prepare_to_store) ();
void (*to_convert_to_virtual) (int regnum, char *from, char *to);
void (*to_convert_from_virtual) (int regnum, char *from, char *to);
int (*to_xfer_memory) (CORE_ADDR memaddr, char *myaddr, int len, int w);
void (*to_files_info) ();
int (*to_insert_breakpoint) (CORE_ADDR addr, char *save);
int (*to_remove_breakpoint) (CORE_ADDR addr, char *save);
void (*to_terminal_init) ();
void (*to_terminal_inferior) ();
void (*to_terminal_ours_for_output) ();
void (*to_terminal_ours) ();
void (*to_terminal_info) (char *arg, int from_tty);
void (*to_kill) (char *arg, int from_tty);
void (*to_load) (char *arg, int from_tty);
void (*to_add_syms) (char *arg, int from_tty);
struct value *(*to_call_function) (struct value *function,
int nargs, struct value **args);
int (*to_lookup_symbol) (char *name, CORE_ADDR *addrp);
void (*to_create_inferior) (char *exec, char *args, char **env);
void (*to_mourn_inferior) ();
enum strata to_stratum;
struct target_ops *to_next;
int to_has_all_memory;
int to_has_memory;
int to_has_stack;
int to_has_registers;
int to_has_execution;
int to_magic;
/* Need sub-structure for target machine related rather than comm related? */
#else /* STDC */
void (*to_open) ();
void (*to_close) ();
void (*to_attach) ();
void (*to_detach) ();
void (*to_resume) ();
int (*to_wait) ();
int (*to_fetch_registers) ();
int (*to_store_registers) ();
void (*to_prepare_to_store) ();
void (*to_convert_to_virtual) ();
void (*to_convert_from_virtual) ();
int (*to_xfer_memory) ();
void (*to_files_info) ();
int (*to_insert_breakpoint) ();
int (*to_remove_breakpoint) ();
void (*to_terminal_init) ();
void (*to_terminal_inferior) ();
void (*to_terminal_ours_for_output) ();
void (*to_terminal_ours) ();
void (*to_terminal_info) ();
void (*to_kill) ();
void (*to_load) ();
void (*to_add_syms) ();
struct value *(*to_call_function) ();
int (*to_lookup_symbol) ();
void (*to_create_inferior) ();
void (*to_mourn_inferior) ();
enum strata to_stratum;
struct target_ops *to_next;
int to_has_all_memory;
int to_has_memory;
int to_has_stack;
int to_has_registers;
int to_has_execution;
int to_magic;
/* Need sub-structure for target machine related rather than comm related? */
#endif
struct target_ops
{
char *to_shortname; /* Name this target type */
char *to_longname; /* Name for printing */
char *to_doc; /* Documentation. Does not include trailing
newline, and starts with a one-line descrip-
tion (probably similar to to_longname). */
void (*to_open) PARAMS ((char *, int));
void (*to_close) PARAMS ((int));
void (*to_attach) PARAMS ((char *, int));
void (*to_detach) PARAMS ((char *, int));
void (*to_resume) PARAMS ((int, int));
int (*to_wait) PARAMS ((int *));
void (*to_fetch_registers) PARAMS ((int));
void (*to_store_registers) PARAMS ((int));
void (*to_prepare_to_store) PARAMS ((void));
void (*to_convert_to_virtual) PARAMS ((int, char *, char *));
void (*to_convert_from_virtual) PARAMS ((int, char *, char *));
int (*to_xfer_memory) PARAMS ((CORE_ADDR, char *, int, int,
struct target_ops *));
void (*to_files_info) PARAMS ((struct target_ops *));
int (*to_insert_breakpoint) PARAMS ((CORE_ADDR, char *));
int (*to_remove_breakpoint) PARAMS ((CORE_ADDR, char *));
void (*to_terminal_init) PARAMS ((void));
void (*to_terminal_inferior) PARAMS ((void));
void (*to_terminal_ours_for_output) PARAMS ((void));
void (*to_terminal_ours) PARAMS ((void));
void (*to_terminal_info) PARAMS ((char *, int));
void (*to_kill) PARAMS ((void));
void (*to_load) PARAMS ((char *, int));
int (*to_lookup_symbol) PARAMS ((char *, CORE_ADDR *));
void (*to_create_inferior) PARAMS ((char *, char *, char **));
void (*to_mourn_inferior) PARAMS ((void));
enum strata to_stratum;
struct target_ops
*to_next;
int to_has_all_memory;
int to_has_memory;
int to_has_stack;
int to_has_registers;
int to_has_execution;
struct section_table
*to_sections;
struct section_table
*to_sections_end;
int to_magic;
/* Need sub-structure for target machine related rather than comm related? */
};
/* Magic number for checking ops size. If a struct doesn't end with this
@ -189,8 +158,7 @@ extern struct target_ops *current_target;
#define target_wait(status) \
(*current_target->to_wait) (status)
/* Fetch register REGNO, or all regs if regno == -1. Result is 0
for success, -1 for problems. */
/* Fetch register REGNO, or all regs if regno == -1. No result. */
#define target_fetch_registers(regno) \
(*current_target->to_fetch_registers) (regno)
@ -227,22 +195,33 @@ extern struct target_ops *current_target;
function which iterates across the various targets. Result is
0 for success, or an errno value. */
#ifdef __STDC__
/* Needs defs.h for CORE_ADDR */
extern int target_read_memory(CORE_ADDR memaddr, char *myaddr, int len);
extern int target_write_memory(CORE_ADDR memaddr, char *myaddr, int len);
extern int target_xfer_memory(CORE_ADDR memaddr, char *myaddr, int len,
int write);
#else
extern int target_read_memory();
extern int target_write_memory();
extern int target_xfer_memory();
#endif
extern int
target_read_string PARAMS ((CORE_ADDR, char *, int));
extern int
target_read_memory PARAMS ((CORE_ADDR, char *, int));
extern int
target_write_memory PARAMS ((CORE_ADDR, char *, int));
extern int
xfer_memory PARAMS ((CORE_ADDR, char *, int, int, struct target_ops *));
extern int
child_xfer_memory PARAMS ((CORE_ADDR, char *, int, int, struct target_ops *));
extern int
target_xfer_memory PARAMS ((CORE_ADDR, char *, int, int));
/* From exec.c */
extern void
print_section_info PARAMS ((struct target_ops *, bfd *));
/* Print a line about the current target. */
#define target_files_info() \
(*current_target->to_files_info) ()
(*current_target->to_files_info) (current_target)
/* Insert a breakpoint at address ADDR in the target machine.
SAVE is a pointer to memory allocated for saving the
@ -299,8 +278,8 @@ extern int target_xfer_memory();
/* Kill the inferior process. Make it go away. */
#define target_kill(arg, from_tty) \
(*current_target->to_kill) (arg, from_tty)
#define target_kill() \
(*current_target->to_kill) ()
/* Load an executable file into the target process. This is expected to
not only bring new code into the target process, but also to update
@ -309,23 +288,6 @@ extern int target_xfer_memory();
#define target_load(arg, from_tty) \
(*current_target->to_load) (arg, from_tty)
/* Add the symbols from an executable file into GDB's symbol table, as if
the file had been loaded at a particular address (or set of addresses).
This does not change any state in the target system, only in GDB. */
#define target_add_syms(arg, from_tty) \
(*current_target->to_add_syms) (arg, from_tty)
/* Perform a function call in the inferior.
ARGS is a vector of values of arguments (NARGS of them).
FUNCTION is a value, the function to be called.
Returns a value representing what the function returned.
May fail to return, if a breakpoint or signal is hit
during the execution of the function. */
#define target_call_function(function, nargs, args) \
(*current_target->to_call_function) (function, nargs, args)
/* Look up a symbol in the target's symbol table. NAME is the symbol
name. ADDRP is a CORE_ADDR * pointing to where the value of the symbol
should be returned. The result is 0 if successful, nonzero if the
@ -380,7 +342,7 @@ extern int target_xfer_memory();
(current_target->to_has_registers)
/* Does the target have execution? Can we make it jump (through hoops),
or pop its stack a few times, or set breakpoints? */
or pop its stack a few times? */
#define target_has_execution \
(current_target->to_has_execution)
@ -400,16 +362,53 @@ extern int target_xfer_memory();
pop_target: Remove the top thing on the stack of current targets. */
#ifdef __STDC__
void add_target (struct target_ops *);
int push_target (struct target_ops *);
int unpush_target (struct target_ops *);
void target_preopen (int);
void pop_target (void);
#else
void add_target ();
int push_target ();
int unpush_target ();
void target_preopen ();
void pop_target ();
#endif
extern void
add_target PARAMS ((struct target_ops *));
extern int
push_target PARAMS ((struct target_ops *));
extern int
unpush_target PARAMS ((struct target_ops *));
extern void
target_preopen PARAMS ((int));
extern void
pop_target PARAMS ((void));
/* Struct section_table maps address ranges to file sections. It is
mostly used with BFD files, but can be used without (e.g. for handling
raw disks, or files not in formats handled by BFD). */
struct section_table {
CORE_ADDR addr; /* Lowest address in section */
CORE_ADDR endaddr; /* 1+highest address in section */
sec_ptr sec_ptr; /* BFD section pointer */
bfd *bfd; /* BFD file pointer */
};
/* Builds a section table, given args BFD, SECTABLE_PTR, SECEND_PTR.
Returns 0 if OK, 1 on error. */
extern int
build_section_table PARAMS ((bfd *, struct section_table **,
struct section_table **));
/* From inftarg.c */
extern void
host_convert_from_virtual PARAMS ((int, char *, char *));
extern void
host_convert_to_virtual PARAMS ((int, char *, char *));
/* From mem-break.c */
extern int
memory_remove_breakpoint PARAMS ((CORE_ADDR, char *));
extern int
memory_insert_breakpoint PARAMS ((CORE_ADDR, char *));
#endif /* !defined (TARGET_H) */

View File

@ -1,5 +1,5 @@
/* Parameters for execution on a 68000 series machine.
Copyright (C) 1986, 1987, 1989, 1990 Free Software Foundation, Inc.
Copyright 1986, 1987, 1989, 1990, 1992 Free Software Foundation, Inc.
This file is part of GDB.
@ -37,7 +37,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#if !defined(SKIP_PROLOGUE)
#define SKIP_PROLOGUE(ip) {(ip) = m68k_skip_prologue(ip);}
extern CORE_ADDR m68k_skip_prologue ();
extern CORE_ADDR m68k_skip_prologue PARAMS ((CORE_ADDR ip));
#endif
/* Immediately after a function call, return the saved pc.
@ -142,7 +142,7 @@ read_memory_integer (read_register (SP_REGNUM), 4)
/* Put the declaration out here because if it's in the macros, PCC
will complain. */
extern struct ext_format ext_format_68881;
extern const struct ext_format ext_format_68881;
/* Convert data from raw format for register REGNUM
to virtual format for register REGNUM. */
@ -152,7 +152,7 @@ extern struct ext_format ext_format_68881;
if ((REGNUM) >= FP0_REGNUM && (REGNUM) < FPC_REGNUM) \
ieee_extended_to_double (&ext_format_68881, (FROM), (double *)(TO)); \
else \
bcopy ((FROM), (TO), 4); \
memcpy ((TO), (FROM), 4); \
}
/* Convert data from virtual format for register REGNUM
@ -163,7 +163,7 @@ extern struct ext_format ext_format_68881;
if ((REGNUM) >= FP0_REGNUM && (REGNUM) < FPC_REGNUM) \
double_to_ieee_extended (&ext_format_68881, (double *)(FROM), (TO)); \
else \
bcopy ((FROM), (TO), 4); \
memcpy ((TO), (FROM), 4); \
}
/* Return the GDB type object for the "standard" data type
@ -208,12 +208,12 @@ extern struct ext_format ext_format_68881;
/* Convert data from raw format for register REGNUM
to virtual format for register REGNUM. */
#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,FROM,TO) bcopy ((FROM), (TO), 4);
#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,FROM,TO) memcpy ((TO), (FROM), 4);
/* Convert data from virtual format for register REGNUM
to raw format for register REGNUM. */
#define REGISTER_CONVERT_TO_RAW(REGNUM,FROM,TO) bcopy ((FROM), (TO), 4);
#define REGISTER_CONVERT_TO_RAW(REGNUM,FROM,TO) memcpy ((TO), (FROM), 4);
/* Return the GDB type object for the "standard" data type
of data in register N. */
@ -264,9 +264,10 @@ extern struct ext_format ext_format_68881;
#if !defined (EXTRACT_RETURN_VALUE)
#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
bcopy ((char *)(REGBUF) + \
memcpy ((VALBUF), \
(char *)(REGBUF) + \
(TYPE_LENGTH(TYPE) >= 4 ? 0 : 4 - TYPE_LENGTH(TYPE)), \
VALBUF, TYPE_LENGTH(TYPE))
TYPE_LENGTH(TYPE))
#endif
/* Write into appropriate registers a function return value
@ -532,7 +533,12 @@ extern struct ext_format ext_format_68881;
#define PUSH_DUMMY_FRAME { m68k_push_dummy_frame (); }
extern void m68k_push_dummy_frame PARAMS ((void));
/* Discard from the stack the innermost frame, restoring all registers. */
#define POP_FRAME { m68k_pop_frame (); }
extern void m68k_pop_frame PARAMS ((void));

View File

@ -1,5 +1,5 @@
/* Macro definitions for i386, Unix System V.
Copyright (C) 1986, 1987, 1989, 1991 Free Software Foundation, Inc.
Copyright 1986, 1987, 1989, 1991, 1992 Free Software Foundation, Inc.
This file is part of GDB.
@ -17,6 +17,9 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
#if !defined (TM_I386V_H)
#define TM_I386V_H 1
/*
* Changes for 80386 by Pace Willisson (pace@prep.ai.mit.edu)
* July 1988
@ -56,6 +59,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define SKIP_PROLOGUE(frompc) {(frompc) = i386_skip_prologue((frompc));}
extern int
i386_skip_prologue PARAMS ((int));
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines
the new frame is not set up until the new function executes
@ -193,7 +199,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define STORE_STRUCT_RETURN(ADDR, SP) \
{ (SP) -= sizeof (ADDR); \
write_memory ((SP), &(ADDR), sizeof (ADDR)); }
write_memory ((SP), (char *) &(ADDR), sizeof (ADDR)); }
/* Extract from an array REGBUF containing the (raw) register state
a function return value of type TYPE, and copy that, in virtual format,
@ -251,6 +257,14 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define FRAME_NUM_ARGS(numargs, fi) (numargs) = i386_frame_num_args(fi)
#ifdef __STDC__ /* Forward decl's for prototypes */
struct frame_info;
struct frame_saved_regs;
#endif
extern int
i386_frame_num_args PARAMS ((struct frame_info *));
/* Return number of bytes at start of arglist that are not really args. */
#define FRAME_ARGS_SKIP 8
@ -264,6 +278,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \
{ i386_frame_find_saved_regs ((frame_info), &(frame_saved_regs)); }
extern void
i386_frame_find_saved_regs PARAMS ((struct frame_info *,
struct frame_saved_regs *));
/* Things needed for making the inferior call functions. */
@ -271,10 +289,16 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define PUSH_DUMMY_FRAME { i386_push_dummy_frame (); }
extern void
i386_push_dummy_frame PARAMS ((void));
/* Discard from the stack the innermost frame, restoring all registers. */
#define POP_FRAME { i386_pop_frame (); }
extern void
i386_pop_frame PARAMS ((void));
/* this is
* call 11223344 (32 bit relative)
* int3
@ -301,3 +325,11 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
*((char *)(dummyname) + 3) = ((delta >> 16) & 0xff); \
*((char *)(dummyname) + 4) = ((delta >> 24) & 0xff); \
}
extern void
print_387_control_word PARAMS ((unsigned int));
extern void
print_387_status_word PARAMS ((unsigned int));
#endif /* !defined (TM_I386V_H) */

View File

@ -1,5 +1,5 @@
/* Parameters for target machine of Sun 4, for GDB, the GNU debugger.
Copyright (C) 1986, 1987, 1989, 1991 Free Software Foundation, Inc.
/* Parameters for SPARC target machines, for GDB, the GNU debugger.
Copyright 1986, 1987, 1989, 1991, 1992 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@mcc.com)
This file is part of GDB.
@ -287,11 +287,9 @@ extern CORE_ADDR sparc_pc_adjust();
#define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
(sparc_extract_struct_value_address (REGBUF))
CORE_ADDR sparc_extract_struct_value_address (
#ifdef __STDC__
char [REGISTER_BYTES]
#endif
);
extern CORE_ADDR
sparc_extract_struct_value_address PARAMS ((char [REGISTER_BYTES]));
/* Describe the pointer in each stack frame to the previous stack frame

View File

@ -1,5 +1,5 @@
/* Parameters for execution on a Sun 386i, for GDB, the GNU debugger.
Copyright (C) 1986, 1987, 1991 Free Software Foundation, Inc.
/* Parameters for a Sun 386i target machine, for GDB, the GNU debugger.
Copyright 1986, 1987, 1991, 1992 Free Software Foundation, Inc.
This file is part of GDB.
@ -49,6 +49,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define SKIP_PROLOGUE(frompc) {(frompc) = i386_skip_prologue((frompc));}
extern int
i386_skip_prologue PARAMS ((int));
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines
the new frame is not set up until the new function executes
@ -174,6 +177,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
else \
bcopy ((FROM), (TO), 4); }
extern void
i387_to_double PARAMS ((char *, char *));
/* Convert data from virtual format for register REGNUM
to raw format for register REGNUM. */
@ -183,6 +189,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
else \
bcopy ((FROM), (TO), 4); }
extern void
double_to_i387 PARAMS ((char *, char *));
/* Return the GDB type object for the "standard" data type
of data in register N. */
@ -251,6 +260,14 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define FRAME_NUM_ARGS(numargs, fi) (numargs) = i386_frame_num_args(fi)
#ifdef __STDC__ /* Forward decl's for prototypes */
struct frame_info;
struct frame_saved_regs;
#endif
extern int
i386_frame_num_args PARAMS ((struct frame_info *));
/* Return number of bytes at start of arglist that are not really args. */
#define FRAME_ARGS_SKIP 8
@ -264,6 +281,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \
{ i386_frame_find_saved_regs ((frame_info), &(frame_saved_regs)); }
extern void
i386_frame_find_saved_regs PARAMS ((struct frame_info *,
struct frame_saved_regs *));
/* Things needed for making the inferior call functions. */
@ -271,10 +292,16 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define PUSH_DUMMY_FRAME { i386_push_dummy_frame (); }
extern void
i386_push_dummy_frame PARAMS ((void));
/* Discard from the stack the innermost frame, restoring all registers. */
#define POP_FRAME { i386_pop_frame (); }
extern void
i386_pop_frame PARAMS ((void));
/* this is
* call 11223344 (32 bit relative)
* int3

View File

@ -1,6 +1,7 @@
/* Definitions to make GDB run on a Sequent Symmetry under dynix 3.0,
/* Target machine definitions for GDB on a Sequent Symmetry under dynix 3.0,
with Weitek 1167 and i387 support.
Copyright (C) 1986, 1987, 1989, 1991 Free Software Foundation, Inc.
Copyright 1986, 1987, 1989, 1991, 1992 Free Software Foundation, Inc.
Symmetry version by Jay Vosburgh (uunet!sequent!fubar).
This file is part of GDB.
@ -18,8 +19,6 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
/* Symmetry version by Jay Vosburgh (uunet!sequent!fubar) */
/* I don't know if this will work for cross-debugging, even if you do get
a copy of the right include file. */
#include <machine/reg.h>
@ -41,6 +40,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define SKIP_PROLOGUE(frompc) {(frompc) = i386_skip_prologue((frompc));}
extern int
i386_skip_prologue PARAMS ((int));
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines
the new frame is not set up until the new function executes
@ -187,6 +189,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
(REGNUM < 14) ? i387_to_double((FROM), (TO)) : \
bcopy ((FROM), (TO), 4))
extern void
i387_to_double PARAMS ((char *, char *));
/* Convert data from virtual format for register REGNUM
to raw format for register REGNUM. */
@ -197,6 +202,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
(REGNUM < 14) ? double_to_i387((FROM), (TO)) : \
bcopy ((FROM), (TO), 4))
extern void
double_to_i387 PARAMS ((char *, char *));
/* Return the GDB type object for the "standard" data type
of data in register N. */
@ -314,6 +322,15 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \
{ i386_frame_find_saved_regs ((frame_info), &(frame_saved_regs)); }
#ifdef __STDC__ /* Forward decl's for prototypes */
struct frame_info;
struct frame_saved_regs;
#endif
extern void
i386_frame_find_saved_regs PARAMS ((struct frame_info *,
struct frame_saved_regs *));
/* Things needed for making the inferior call functions. */
@ -377,3 +394,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
delta = to - from; \
*(int *)((char *)(dummyname) + 1) = delta; \
}
extern void
print_387_control_word PARAMS ((unsigned int));
extern void
print_387_status_word PARAMS ((unsigned int));

View File

@ -1,5 +1,6 @@
/* Macro defintions for i386.
Copyright (C) 1986, 1987, 1989 Free Software Foundation, Inc.
Copyright 1986, 1987, 1989, 1992 Free Software Foundation, Inc.
Changes for 80386 by Pace Willisson (pace@prep.ai.mit.edu), July 1988.
This file is part of GDB.
@ -17,11 +18,6 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
/*
* Changes for 80386 by Pace Willisson (pace@prep.ai.mit.edu)
* July 1988
*/
#define HOST_BYTE_ORDER LITTLE_ENDIAN
/* I'm running gdb 3.4 under 386/ix 2.0.2, which is a derivative of AT&T's
@ -42,10 +38,6 @@ on those where it does, it occurs quite reliably. */
#define HAVE_TERMIO
/* Get rid of any system-imposed stack limit if possible. */
/* #define SET_STACK_LIMIT_HUGE not in sys5 */
/* This is the amount to subtract from u.u_ar0
to get the offset in the core file of the register values. */
@ -53,3 +45,6 @@ on those where it does, it occurs quite reliably. */
#define REGISTER_U_ADDR(addr, blockend, regno) \
(addr) = i386_register_u_addr ((blockend),(regno));
extern int
i386_register_u_addr PARAMS ((int, int));

View File

@ -1,6 +1,6 @@
/* Parameters for execution on a Sun 4, for GDB, the GNU debugger.
Copyright 1986, 1987, 1989, 1991 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@mcc.com)
Copyright 1986, 1987, 1989, 1991, 1992 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@mcc.com).
This file is part of GDB.
@ -53,7 +53,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
FIXME, this does not handle remote debugging cleanly. */
extern int deferred_stores;
extern int store_inferior_registers ();
#define DO_DEFERRED_STORES \
if (deferred_stores) \
store_inferior_registers (-2);