+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.
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 */
#ifdef HAVE_SYS_REG_H
#include <sys/reg.h>
#endif
+#include <sys/syscall.h>
#include <sys/user.h>
#include <asm/ptrace_offsets.h>
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);
+}
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:
/* 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, ... */
};