2003-11-14 Jeff Johnston <jjohnstn@redhat.com>

* config/ia64/nm-linux.h (NATIVE_XFER_UNWIND_TABLE): New macro to
        set up the ia64 linux native target method for getting the kernel
        unwind table.
        * ia64-linux-nat.c (ia64_linux_xfer_unwind_table): New function.
        * inftarg.c (child_xfer_partial): Enable section of code to
        handle TARGET_OBJECT_UNWIND_TABLE.
        * target.h (target_object): Add new TARGET_OBJECT_UNWIND_TABLE macro.
This commit is contained in:
Jeff Johnston 2003-11-14 20:49:23 +00:00
parent 140be7b810
commit 287a334e72
5 changed files with 36 additions and 4 deletions

View File

@ -1,3 +1,13 @@
2003-11-14 Jeff Johnston <jjohnstn@redhat.com>
* config/ia64/nm-linux.h (NATIVE_XFER_UNWIND_TABLE): New macro to
set up the ia64 linux native target method for getting the kernel
unwind table.
* ia64-linux-nat.c (ia64_linux_xfer_unwind_table): New function.
* inftarg.c (child_xfer_partial): Enable section of code to
handle TARGET_OBJECT_UNWIND_TABLE.
* target.h (target_object): Add new TARGET_OBJECT_UNWIND_TABLE macro.
2003-11-14 Ian Lance Taylor <ian@wasabisystems.com>
* config/arm/nbsd.mt (TM_FILE): Define.

View File

@ -69,4 +69,15 @@ extern int ia64_linux_insert_watchpoint (ptid_t ptid, CORE_ADDR addr,
extern int ia64_linux_remove_watchpoint (ptid_t ptid, CORE_ADDR addr,
int len);
#include "target.h"
#define NATIVE_XFER_UNWIND_TABLE ia64_linux_xfer_unwind_table
extern LONGEST ia64_linux_xfer_unwind_table (struct target_ops *ops,
enum target_object object,
const char *annex,
void *readbuf,
const void *writebuf,
ULONGEST offset,
LONGEST len);
#endif /* #ifndef NM_LINUX_H */

View File

@ -34,6 +34,7 @@
#ifdef HAVE_SYS_REG_H
#include <sys/reg.h>
#endif
#include <sys/syscall.h>
#include <sys/user.h>
#include <asm/ptrace_offsets.h>
@ -645,3 +646,13 @@ ia64_linux_stopped_by_watchpoint (ptid_t ptid)
return (CORE_ADDR) siginfo.si_addr;
}
LONGEST
ia64_linux_xfer_unwind_table (struct target_ops *ops,
enum target_object object,
const char *annex,
void *readbuf, const void *writebuf,
ULONGEST offset, LONGEST len)
{
return syscall (__NR_getunwind, readbuf, len);
}

View File

@ -571,14 +571,12 @@ child_xfer_partial (struct target_ops *ops, enum target_object object,
NULL, ops);
return -1;
#if 0
case TARGET_OBJECT_UNWIND_TABLE:
#ifndef NATIVE_XFER_UNWIND_TABLE
#define NATIVE_XFER_UNWIND_TABLE(OPS,OBJECT,ANNEX,WRITEBUF,READBUF,OFFSET,LEN) (-1)
#endif
return NATIVE_XFER_UNWIND_TABLE (ops, object, annex, readbuf, writebuf,
offset, len);
#endif
#if 0
case TARGET_OBJECT_AUXV:

View File

@ -223,8 +223,10 @@ enum target_object
/* AVR target specific transfer. See "avr-tdep.c" and "remote.c". */
TARGET_OBJECT_AVR,
/* Transfer up-to LEN bytes of memory starting at OFFSET. */
TARGET_OBJECT_MEMORY
/* Possible future ojbects: TARGET_OJBECT_FILE, TARGET_OBJECT_PROC,
TARGET_OBJECT_MEMORY,
/* Kernel Unwind Table. See "ia64-tdep.c". */
TARGET_OBJECT_UNWIND_TABLE,
/* Possible future objects: TARGET_OBJECT_FILE, TARGET_OBJECT_PROC,
TARGET_OBJECT_AUXV, ... */
};