/* Interface to bare machine for GDB running as kernel debugger.
- Copyright (C) 1986 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1989, 1991 Free Software Foundation, Inc.
-GDB is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY. No author or distributor accepts responsibility to anyone
-for the consequences of using it or for whether it serves any
-particular purpose or works at all, unless he says so in writing.
-Refer to the GDB General Public License for full details.
+ This file is part of GDB.
-Everyone is granted permission to copy, modify and redistribute GDB,
-but only under the conditions described in the GDB General Public
-License. A copy of this license is supposed to have been given to you
-along with GDB so you can know your rights and responsibilities. It
-should be in a file named COPYING. Among other things, the copyright
-notice and this notice must be preserved on all copies.
+ 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.
-In other words, go ahead and share GDB, but don't try to stop
-anyone else from sharing it farther. Help stamp out software hoarding!
-*/
+ 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 <stdio.h>
#include <sys/ioctl.h>
-#include <signal.h>
#include <errno.h>
#include <sys/types.h>
-#include <sys/stat.h>
+#include "gdb_stat.h"
#if defined (SIGTSTP) && defined (SIGIO)
#include <sys/time.h>
#endif /* SIGTSTP and SIGIO defined (must be 4.2) */
#include "defs.h"
-#include "initialize.h"
-#include "param.h"
+#include "signals.h"
#include "symtab.h"
#include "frame.h"
#include "inferior.h"
-#include "wait.h"
-
-START_FILE
+#include "gdb_wait.h"
\f
+
/* Random system calls, mostly no-ops to prevent link problems */
ioctl (desc, code, arg)
-{}
+{
+}
-int (* signal ()) ()
-{}
+int (*signal ()) ()
+{
+}
kill ()
-{}
+{
+}
getpid ()
{
}
sigsetmask ()
-{}
+{
+}
chdir ()
-{}
+{
+}
char *
-getwd (buf)
+getcwd (buf, len)
char *buf;
+ unsigned int len;
{
buf[0] = '/';
buf[1] = 0;
char[] name of the file, ending with a null.
padding to multiple of 4 boundary.
char[] file contents. The length can be deduced from what was
- specified before. There is no terminating null here.
+ specified before. There is no terminating null here.
If the int at the front is zero, it means there are no more files.
int modes;
{
register char *next;
- extern int errno;
if (modes)
{
return -1;
}
- for (next - files_start; * (int *) next;
- next += * (int *) next)
+ for (next = files_start; *(int *) next; next += *(int *) next)
{
- if (!strcmp (next + 4, filename))
+ if (!STRCMP (next + 4, filename))
{
sourcebeg = next + 4 + strlen (next + 4) + 1;
sourcebeg = (char *) (((int) sourcebeg + 3) & (-4));
sourceptr = sourcebeg;
- sourcesize = next + * (int *) next - sourceptr;
+ sourcesize = next + *(int *) next - sourceptr;
sourceleft = sourcesize;
return sourcedesc;
}
fstat (desc, statbuf)
struct stat *statbuf;
{
- extern int errno;
-
if (desc != sourcedesc)
{
errno = EBADF;
char *filename;
{
int len = min (sourceleft, size);
- extern int errno;
if (desc != sourcedesc)
{
return -1;
}
- bcopy (sourceptr, destptr, len);
+ memcpy (destptr, sourceptr, len);
sourceleft -= len;
return len;
}
{
register int elts = min (numelts, sourceleft / eltsize);
register int len = elts * eltsize;
- extern int errno;
if (stream != sourcedesc)
{
return -1;
}
- bcopy (sourceptr, bufp, len);
+ memcpy (bufp, sourceptr, len);
sourceleft -= len;
return elts;
}
fgetc (desc)
int desc;
{
- extern int errno;
if (desc == (int) stdin)
return tty_input ();
int desc;
int pos;
{
- extern int errno;
if (desc != sourcedesc)
{
/* Entries into core and inflow, needed only to make things link ok. */
exec_file_command ()
-{}
+{
+}
core_file_command ()
-{}
+{
+}
char *
get_exec_file (err)
return "run";
}
+/* Nonzero if there is a core file. */
+
have_core_file_p ()
{
return 0;
}
terminal_inferior ()
-{}
+{
+}
terminal_ours ()
-{}
+{
+}
terminal_init_inferior ()
-{}
+{
+}
write_inferior_register ()
-{}
+{
+}
read_inferior_register ()
-{}
+{
+}
read_memory (memaddr, myaddr, len)
CORE_ADDR memaddr;
char *myaddr;
int len;
{
- bcopy (memaddr, myaddr, len);
+ memcpy (myaddr, memaddr, len);
}
/* Always return 0 indicating success. */
char *myaddr;
int len;
{
- bcopy (myaddr, memaddr, len);
+ memcpy (memaddr, myaddr, len);
return 0;
}
and these definitions are so it will link without errors. */
ptrace ()
-{}
+{
+}
setpgrp ()
-{}
+{
+}
execle ()
-{}
+{
+}
_exit ()
-{}
+{
+}
\f
/* Malloc calls these. */
PUSH_FRAME_PTR;
save_frame_pointer ();
- bcopy (saved_regs, restore, sizeof restore);
+ memcpy (restore, saved_regs, sizeof restore);
POP_REGISTERS;
/* Control does not drop through here! */
}
save_registers (firstreg)
int firstreg;
{
- bcopy (&firstreg, saved_regs, sizeof saved_regs);
+ memcpy (saved_regs, &firstreg, sizeof saved_regs);
fault_code = (&firstreg)[NUM_REGS];
}
#define HEAP_SIZE 400000
#endif
-char heap[HEAP_SIZE] = {0};
+char heap[HEAP_SIZE] =
+{0};
#ifndef STACK_SIZE
#define STACK_SIZE 100000
int kdb_stack_beg[STACK_SIZE / sizeof (int)];
int kdb_stack_end;
-static
-initialize ()
+_initialize_standalone ()
{
register char *next;
/* Find the end of the data on files. */
- for (next - files_start; * (int *) next;
- next += * (int *) next)
- {}
+ for (next = files_start; *(int *) next; next += *(int *) next)
+ {
+ }
/* That is where free storage starts for sbrk to give out. */
next_free = next;
memory_limit = heap + sizeof heap;
}
-
-END_FILE