summaryrefslogtreecommitdiff
path: root/src/x86
diff options
context:
space:
mode:
authorArun Sharma <arun@sharma-home.net>2014-09-20 09:03:10 -0700
committerArun Sharma <arun@sharma-home.net>2014-09-27 09:47:23 -0700
commit781d5d526361504143e4b19c3e911fc71fca95ba (patch)
treecb3c6089e652063c4028add3a989a8539806db77 /src/x86
parent06e608d0437fe7c33469236622457296d8bfe7a4 (diff)
downloadlibunwind-781d5d526361504143e4b19c3e911fc71fca95ba.tar.gz
One time whitespace fixup.
for f in $(find src include -name '*.[ch]'); do expand -t 8 $f > $tmp; mv $tmp $f; done
Diffstat (limited to 'src/x86')
-rw-r--r--src/x86/Gcreate_addr_space.c2
-rw-r--r--src/x86/Gget_proc_info.c6
-rw-r--r--src/x86/Gget_save_loc.c4
-rw-r--r--src/x86/Gglobal.c4
-rw-r--r--src/x86/Ginit.c22
-rw-r--r--src/x86/Ginit_local.c2
-rw-r--r--src/x86/Ginit_remote.c2
-rw-r--r--src/x86/Gos-freebsd.c54
-rw-r--r--src/x86/Gos-linux.c34
-rw-r--r--src/x86/Gregs.c30
-rw-r--r--src/x86/Gresume.c24
-rw-r--r--src/x86/Gstep.c86
-rw-r--r--src/x86/init.h4
-rw-r--r--src/x86/is_fpreg.c6
-rw-r--r--src/x86/offsets.h232
-rw-r--r--src/x86/unwind_i.h42
16 files changed, 277 insertions, 277 deletions
diff --git a/src/x86/Gcreate_addr_space.c b/src/x86/Gcreate_addr_space.c
index 5b07940d..45fec6da 100644
--- a/src/x86/Gcreate_addr_space.c
+++ b/src/x86/Gcreate_addr_space.c
@@ -1,6 +1,6 @@
/* libunwind - a platform-independent unwind library
Copyright (C) 2003 Hewlett-Packard Co
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind.
diff --git a/src/x86/Gget_proc_info.c b/src/x86/Gget_proc_info.c
index a5334830..45b4cd5b 100644
--- a/src/x86/Gget_proc_info.c
+++ b/src/x86/Gget_proc_info.c
@@ -1,6 +1,6 @@
/* libunwind - a platform-independent unwind library
Copyright (c) 2002-2003 Hewlett-Packard Development Company, L.P.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind.
@@ -33,8 +33,8 @@ unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
if (dwarf_make_proc_info (&c->dwarf) < 0)
{
/* On x86, it's relatively common to be missing DWARF unwind
- info. We don't want to fail in that case, because the
- frame-chain still would let us do a backtrace at least. */
+ info. We don't want to fail in that case, because the
+ frame-chain still would let us do a backtrace at least. */
memset (pi, 0, sizeof (*pi));
pi->start_ip = c->dwarf.ip;
pi->end_ip = c->dwarf.ip + 1;
diff --git a/src/x86/Gget_save_loc.c b/src/x86/Gget_save_loc.c
index e8cc79ee..d440f9ec 100644
--- a/src/x86/Gget_save_loc.c
+++ b/src/x86/Gget_save_loc.c
@@ -1,6 +1,6 @@
/* libunwind - a platform-independent unwind library
Copyright (C) 2004 Hewlett-Packard Co
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind.
@@ -31,7 +31,7 @@ unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
struct cursor *c = (struct cursor *) cursor;
dwarf_loc_t loc;
- loc = DWARF_NULL_LOC; /* default to "not saved" */
+ loc = DWARF_NULL_LOC; /* default to "not saved" */
switch (reg)
{
diff --git a/src/x86/Gglobal.c b/src/x86/Gglobal.c
index 033a788b..132b8249 100644
--- a/src/x86/Gglobal.c
+++ b/src/x86/Gglobal.c
@@ -1,6 +1,6 @@
/* libunwind - a platform-independent unwind library
Copyright (c) 2003, 2005 Hewlett-Packard Development Company, L.P.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind.
@@ -60,7 +60,7 @@ tdep_init (void)
#ifndef UNW_REMOTE_ONLY
x86_local_addr_space_init ();
#endif
- tdep_init_done = 1; /* signal that we're initialized... */
+ tdep_init_done = 1; /* signal that we're initialized... */
}
out:
lock_release (&x86_lock, saved_mask);
diff --git a/src/x86/Ginit.c b/src/x86/Ginit.c
index b8890a3c..b05a08ed 100644
--- a/src/x86/Ginit.c
+++ b/src/x86/Ginit.c
@@ -1,7 +1,7 @@
/* libunwind - a platform-independent unwind library
Copyright (C) 2002 Hewlett-Packard Co
Copyright (C) 2007 David Mosberger-Tang
- Contributed by David Mosberger-Tang <dmosberger@gmail.com>
+ Contributed by David Mosberger-Tang <dmosberger@gmail.com>
This file is part of libunwind.
@@ -69,14 +69,14 @@ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
static int
get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
- void *arg)
+ void *arg)
{
*dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
return 0;
}
#define PAGE_SIZE 4096
-#define PAGE_START(a) ((a) & ~(PAGE_SIZE-1))
+#define PAGE_START(a) ((a) & ~(PAGE_SIZE-1))
/* Cache of already validated addresses */
#define NLGA 4
@@ -105,7 +105,7 @@ validate_mem (unw_word_t addr)
for (i = 0; i < NLGA; i++)
{
if (last_good_addr[i] && (addr == last_good_addr[i]))
- return 0;
+ return 0;
}
#ifdef HAVE_MINCORE
@@ -134,7 +134,7 @@ validate_mem (unw_word_t addr)
static int
access_mem (unw_addr_space_t as, unw_word_t addr, unw_word_t *val, int write,
- void *arg)
+ void *arg)
{
if (write)
{
@@ -155,7 +155,7 @@ access_mem (unw_addr_space_t as, unw_word_t addr, unw_word_t *val, int write,
static int
access_reg (unw_addr_space_t as, unw_regnum_t reg, unw_word_t *val, int write,
- void *arg)
+ void *arg)
{
unw_word_t *addr;
ucontext_t *uc = ((struct cursor *)arg)->uc;
@@ -185,7 +185,7 @@ access_reg (unw_addr_space_t as, unw_regnum_t reg, unw_word_t *val, int write,
static int
access_fpreg (unw_addr_space_t as, unw_regnum_t reg, unw_fpreg_t *val,
- int write, void *arg)
+ int write, void *arg)
{
ucontext_t *uc = ((struct cursor *)arg)->uc;
unw_fpreg_t *addr;
@@ -199,14 +199,14 @@ access_fpreg (unw_addr_space_t as, unw_regnum_t reg, unw_fpreg_t *val,
if (write)
{
Debug (12, "%s <- %08lx.%08lx.%08lx\n", unw_regname (reg),
- ((long *)val)[0], ((long *)val)[1], ((long *)val)[2]);
+ ((long *)val)[0], ((long *)val)[1], ((long *)val)[2]);
*(unw_fpreg_t *) addr = *val;
}
else
{
*val = *(unw_fpreg_t *) addr;
Debug (12, "%s -> %08lx.%08lx.%08lx\n", unw_regname (reg),
- ((long *)val)[0], ((long *)val)[1], ((long *)val)[2]);
+ ((long *)val)[0], ((long *)val)[1], ((long *)val)[2]);
}
return 0;
@@ -218,8 +218,8 @@ access_fpreg (unw_addr_space_t as, unw_regnum_t reg, unw_fpreg_t *val,
static int
get_static_proc_name (unw_addr_space_t as, unw_word_t ip,
- char *buf, size_t buf_len, unw_word_t *offp,
- void *arg)
+ char *buf, size_t buf_len, unw_word_t *offp,
+ void *arg)
{
return _Uelf32_get_proc_name (as, getpid (), ip, buf, buf_len, offp);
}
diff --git a/src/x86/Ginit_local.c b/src/x86/Ginit_local.c
index 412663be..02fb994e 100644
--- a/src/x86/Ginit_local.c
+++ b/src/x86/Ginit_local.c
@@ -1,6 +1,6 @@
/* libunwind - a platform-independent unwind library
Copyright (c) 2002-2003 Hewlett-Packard Development Company, L.P.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind.
diff --git a/src/x86/Ginit_remote.c b/src/x86/Ginit_remote.c
index c8899054..16b63954 100644
--- a/src/x86/Ginit_remote.c
+++ b/src/x86/Ginit_remote.c
@@ -1,6 +1,6 @@
/* libunwind - a platform-independent unwind library
Copyright (c) 2003 Hewlett-Packard Development Company, L.P.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind.
diff --git a/src/x86/Gos-freebsd.c b/src/x86/Gos-freebsd.c
index 284148c2..cf05f078 100644
--- a/src/x86/Gos-freebsd.c
+++ b/src/x86/Gos-freebsd.c
@@ -51,21 +51,21 @@ unw_is_signal_frame (unw_cursor_t *cursor)
/* Check if EIP points at sigreturn() sequence. It can be:
sigcode+4: from amd64 freebsd32 environment
-8d 44 24 20 lea 0x20(%esp),%eax
-50 push %eax
-b8 a1 01 00 00 mov $0x1a1,%eax
-50 push %eax
-cd 80 int $0x80
+8d 44 24 20 lea 0x20(%esp),%eax
+50 push %eax
+b8 a1 01 00 00 mov $0x1a1,%eax
+50 push %eax
+cd 80 int $0x80
sigcode+4: from real i386
-8d 44 24 20 lea 0x20(%esp),%eax
-50 push %eax
-f7 40 54 00 02 00 testl $0x20000,0x54(%eax)
-75 03 jne sigcode+21
-8e 68 14 mov 0x14(%eax),%gs
-b8 a1 01 00 00 mov $0x1a1,%eax
-50 push %eax
-cd 80 int $0x80
+8d 44 24 20 lea 0x20(%esp),%eax
+50 push %eax
+f7 40 54 00 02 00 testl $0x20000,0x54(%eax)
+75 03 jne sigcode+21
+8e 68 14 mov 0x14(%eax),%gs
+b8 a1 01 00 00 mov $0x1a1,%eax
+50 push %eax
+cd 80 int $0x80
freebsd4_sigcode+4:
XXX
@@ -85,10 +85,10 @@ XXX
ret = X86_SCF_FREEBSD_SIGFRAME;
else {
if ((*a->access_mem) (as, ip + 16, &w4, 0, arg) < 0 ||
- (*a->access_mem) (as, ip + 20, &w5, 0, arg) < 0)
+ (*a->access_mem) (as, ip + 20, &w5, 0, arg) < 0)
return ret;
if (w0 == 0x2024448d && w1 == 0x5440f750 && w2 == 0x75000200 &&
- w3 == 0x14688e03 && w4 == 0x0001a1b8 && w5 == 0x80cd5000)
+ w3 == 0x14688e03 && w4 == 0x0001a1b8 && w5 == 0x80cd5000)
ret = X86_SCF_FREEBSD_SIGFRAME;
}
@@ -120,8 +120,8 @@ unw_handle_signal_frame (unw_cursor_t *cursor)
ret = dwarf_get (&c->dwarf, esp_loc, &c->dwarf.cfa);
if (ret < 0)
{
- Debug (2, "returning 0\n");
- return 0;
+ Debug (2, "returning 0\n");
+ return 0;
}
c->dwarf.loc[EIP] = DWARF_LOC (uc_addr + FREEBSD_UC_MCONTEXT_EIP_OFF, 0);
@@ -290,20 +290,20 @@ x86_get_scratch_loc (struct cursor *c, unw_regnum_t reg)
if (is_fpstate)
{
if ((ret = dwarf_get (&c->dwarf,
- DWARF_MEM_LOC (&c->dwarf, addr + FREEBSD_UC_MCONTEXT_FPSTATE_OFF),
- &fpstate)) < 0)
- return DWARF_NULL_LOC;
+ DWARF_MEM_LOC (&c->dwarf, addr + FREEBSD_UC_MCONTEXT_FPSTATE_OFF),
+ &fpstate)) < 0)
+ return DWARF_NULL_LOC;
if (fpstate == FREEBSD_UC_MCONTEXT_FPOWNED_NONE)
- return DWARF_NULL_LOC;
+ return DWARF_NULL_LOC;
if ((ret = dwarf_get (&c->dwarf,
- DWARF_MEM_LOC (&c->dwarf, addr + FREEBSD_UC_MCONTEXT_FPFORMAT_OFF),
- &fpformat)) < 0)
- return DWARF_NULL_LOC;
+ DWARF_MEM_LOC (&c->dwarf, addr + FREEBSD_UC_MCONTEXT_FPFORMAT_OFF),
+ &fpformat)) < 0)
+ return DWARF_NULL_LOC;
if (fpformat == FREEBSD_UC_MCONTEXT_FPFMT_NODEV ||
- (is_xmmstate && fpformat != FREEBSD_UC_MCONTEXT_FPFMT_XMM))
- return DWARF_NULL_LOC;
+ (is_xmmstate && fpformat != FREEBSD_UC_MCONTEXT_FPFMT_XMM))
+ return DWARF_NULL_LOC;
if (is_xmmstate)
- off = xmm_off;
+ off = xmm_off;
}
return DWARF_MEM_LOC (c, addr + off);
diff --git a/src/x86/Gos-linux.c b/src/x86/Gos-linux.c
index 8bc24a8c..17aebc29 100644
--- a/src/x86/Gos-linux.c
+++ b/src/x86/Gos-linux.c
@@ -1,6 +1,6 @@
/* libunwind - a platform-independent unwind library
Copyright (C) 2002-2004 Hewlett-Packard Co
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind.
@@ -43,9 +43,9 @@ unw_is_signal_frame (unw_cursor_t *cursor)
/* Check if EIP points at sigreturn() sequence. On Linux, this is:
__restore:
- 0x58 pop %eax
- 0xb8 0x77 0x00 0x00 0x00 movl 0x77,%eax
- 0xcd 0x80 int 0x80
+ 0x58 pop %eax
+ 0xb8 0x77 0x00 0x00 0x00 movl 0x77,%eax
+ 0xcd 0x80 int 0x80
without SA_SIGINFO, and
@@ -62,7 +62,7 @@ unw_is_signal_frame (unw_cursor_t *cursor)
ret = 0;
else
ret = ((w0 == 0x0077b858 && w1 == 0x80cd0000)
- || (w0 == 0x0000adb8 && (w1 & 0xffffff) == 0x80cd00));
+ || (w0 == 0x0000adb8 && (w1 & 0xffffff) == 0x80cd00));
Debug (16, "returning %d\n", ret);
return ret;
}
@@ -87,7 +87,7 @@ unw_handle_signal_frame (unw_cursor_t *cursor)
siginfo_ptr_loc = DWARF_LOC (siginfo_ptr_addr, 0);
sigcontext_ptr_loc = DWARF_LOC (sigcontext_ptr_addr, 0);
ret = (dwarf_get (&c->dwarf, siginfo_ptr_loc, &siginfo_ptr)
- | dwarf_get (&c->dwarf, sigcontext_ptr_loc, &sigcontext_ptr));
+ | dwarf_get (&c->dwarf, sigcontext_ptr_loc, &sigcontext_ptr));
if (ret < 0)
{
Debug (2, "returning 0\n");
@@ -105,10 +105,10 @@ unw_handle_signal_frame (unw_cursor_t *cursor)
else
{
/* If SA_SIGINFO were not specified, we actually read
- various segment pointers instead. We believe that at
- least fs and _fsh are always zero for linux, so it is
- not just unlikely, but impossible that we would end
- up here. */
+ various segment pointers instead. We believe that at
+ least fs and _fsh are always zero for linux, so it is
+ not just unlikely, but impossible that we would end
+ up here. */
c->sigcontext_format = X86_SCF_LINUX_RT_SIGFRAME;
c->sigcontext_addr = sigcontext_ptr;
sc_addr = sigcontext_ptr + LINUX_UC_MCONTEXT_OFF;
@@ -180,8 +180,8 @@ x86_get_scratch_loc (struct cursor *c, unw_regnum_t reg)
case UNW_X86_SS: off = LINUX_SC_SS_OFF; break;
/* The following is probably not correct for all possible cases.
- Somebody who understands this better should review this for
- correctness. */
+ Somebody who understands this better should review this for
+ correctness. */
case UNW_X86_FCW: is_fpstate = 1; off = LINUX_FPSTATE_CW_OFF; break;
case UNW_X86_FSW: is_fpstate = 1; off = LINUX_FPSTATE_SW_OFF; break;
@@ -233,13 +233,13 @@ x86_get_scratch_loc (struct cursor *c, unw_regnum_t reg)
if (is_fpstate)
{
if ((ret = dwarf_get (&c->dwarf,
- DWARF_MEM_LOC (&c->dwarf,
- addr + LINUX_SC_FPSTATE_OFF),
- &fpstate_addr)) < 0)
- return DWARF_NULL_LOC;
+ DWARF_MEM_LOC (&c->dwarf,
+ addr + LINUX_SC_FPSTATE_OFF),
+ &fpstate_addr)) < 0)
+ return DWARF_NULL_LOC;
if (!fpstate_addr)
- return DWARF_NULL_LOC;
+ return DWARF_NULL_LOC;
return DWARF_MEM_LOC (c, fpstate_addr + off);
}
diff --git a/src/x86/Gregs.c b/src/x86/Gregs.c
index 05bc1a30..4a959261 100644
--- a/src/x86/Gregs.c
+++ b/src/x86/Gregs.c
@@ -1,6 +1,6 @@
/* libunwind - a platform-independent unwind library
Copyright (c) 2002-2004 Hewlett-Packard Development Company, L.P.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind.
@@ -37,7 +37,7 @@ x86_scratch_loc (struct cursor *c, unw_regnum_t reg)
HIDDEN int
tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp,
- int write)
+ int write)
{
dwarf_loc_t loc = DWARF_NULL_LOC;
unsigned int mask;
@@ -48,14 +48,14 @@ tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp,
case UNW_X86_EIP:
if (write)
- c->dwarf.ip = *valp; /* also update the EIP cache */
+ c->dwarf.ip = *valp; /* also update the EIP cache */
loc = c->dwarf.loc[EIP];
break;
case UNW_X86_CFA:
case UNW_X86_ESP:
if (write)
- return -UNW_EREADONLYREG;
+ return -UNW_EREADONLYREG;
*valp = c->dwarf.cfa;
return 0;
@@ -64,18 +64,18 @@ tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp,
arg_num = reg - UNW_X86_EAX;
mask = (1 << arg_num);
if (write)
- {
- c->dwarf.eh_args[arg_num] = *valp;
- c->dwarf.eh_valid_mask |= mask;
- return 0;
- }
+ {
+ c->dwarf.eh_args[arg_num] = *valp;
+ c->dwarf.eh_valid_mask |= mask;
+ return 0;
+ }
else if ((c->dwarf.eh_valid_mask & mask) != 0)
- {
- *valp = c->dwarf.eh_args[arg_num];
- return 0;
- }
+ {
+ *valp = c->dwarf.eh_args[arg_num];
+ return 0;
+ }
else
- loc = c->dwarf.loc[(reg == UNW_X86_EAX) ? EAX : EDX];
+ loc = c->dwarf.loc[(reg == UNW_X86_EAX) ? EAX : EDX];
break;
case UNW_X86_ECX: loc = c->dwarf.loc[ECX]; break;
@@ -120,7 +120,7 @@ tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp,
HIDDEN int
tdep_access_fpreg (struct cursor *c, unw_regnum_t reg, unw_fpreg_t *valp,
- int write)
+ int write)
{
struct dwarf_loc loc = DWARF_NULL_LOC;
diff --git a/src/x86/Gresume.c b/src/x86/Gresume.c
index c39c5884..cb3fb31e 100644
--- a/src/x86/Gresume.c
+++ b/src/x86/Gresume.c
@@ -1,6 +1,6 @@
/* libunwind - a platform-independent unwind library
Copyright (c) 2002-2004 Hewlett-Packard Development Company, L.P.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind.
@@ -35,9 +35,9 @@ static inline int
establish_machine_state (struct cursor *c)
{
int (*access_reg) (unw_addr_space_t, unw_regnum_t, unw_word_t *,
- int write, void *);
+ int write, void *);
int (*access_fpreg) (unw_addr_space_t, unw_regnum_t, unw_fpreg_t *,
- int write, void *);
+ int write, void *);
unw_addr_space_t as = c->dwarf.as;
void *arg = c->dwarf.as_arg;
unw_fpreg_t fpval;
@@ -53,15 +53,15 @@ establish_machine_state (struct cursor *c)
{
Debug (16, "copying %s %d\n", unw_regname (reg), reg);
if (unw_is_fpreg (reg))
- {
- if (tdep_access_fpreg (c, reg, &fpval, 0) >= 0)
- (*access_fpreg) (as, reg, &fpval, 1, arg);
- }
+ {
+ if (tdep_access_fpreg (c, reg, &fpval, 0) >= 0)
+ (*access_fpreg) (as, reg, &fpval, 1, arg);
+ }
else
- {
- if (tdep_access_reg (c, reg, &val, 0) >= 0)
- (*access_reg) (as, reg, &val, 1, arg);
- }
+ {
+ if (tdep_access_reg (c, reg, &val, 0) >= 0)
+ (*access_reg) (as, reg, &val, 1, arg);
+ }
}
return 0;
}
@@ -78,5 +78,5 @@ unw_resume (unw_cursor_t *cursor)
return ret;
return (*c->dwarf.as->acc.resume) (c->dwarf.as, (unw_cursor_t *) c,
- c->dwarf.as_arg);
+ c->dwarf.as_arg);
}
diff --git a/src/x86/Gstep.c b/src/x86/Gstep.c
index fb1d6a26..10e2cbc8 100644
--- a/src/x86/Gstep.c
+++ b/src/x86/Gstep.c
@@ -1,6 +1,6 @@
/* libunwind - a platform-independent unwind library
Copyright (C) 2002-2004 Hewlett-Packard Co
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind.
@@ -46,7 +46,7 @@ unw_step (unw_cursor_t *cursor)
if (unlikely (ret < 0))
{
/* DWARF failed, let's see if we can follow the frame-chain
- or skip over the signal trampoline. */
+ or skip over the signal trampoline. */
struct dwarf_loc ebp_loc, eip_loc;
/* We could get here because of missing/bad unwind information.
@@ -58,57 +58,57 @@ unw_step (unw_cursor_t *cursor)
if (unw_is_signal_frame (cursor))
{
ret = unw_handle_signal_frame(cursor);
- if (ret < 0)
- {
- Debug (2, "returning 0\n");
- return 0;
- }
+ if (ret < 0)
+ {
+ Debug (2, "returning 0\n");
+ return 0;
+ }
}
else
- {
- ret = dwarf_get (&c->dwarf, c->dwarf.loc[EBP], &c->dwarf.cfa);
- if (ret < 0)
- {
- Debug (2, "returning %d\n", ret);
- return ret;
- }
-
- Debug (13, "[EBP=0x%x] = 0x%x\n", DWARF_GET_LOC (c->dwarf.loc[EBP]),
- c->dwarf.cfa);
-
- ebp_loc = DWARF_LOC (c->dwarf.cfa, 0);
- eip_loc = DWARF_LOC (c->dwarf.cfa + 4, 0);
- c->dwarf.cfa += 8;
-
- /* Mark all registers unsaved, since we don't know where
- they are saved (if at all), except for the EBP and
- EIP. */
- for (i = 0; i < DWARF_NUM_PRESERVED_REGS; ++i)
- c->dwarf.loc[i] = DWARF_NULL_LOC;
+ {
+ ret = dwarf_get (&c->dwarf, c->dwarf.loc[EBP], &c->dwarf.cfa);
+ if (ret < 0)
+ {
+ Debug (2, "returning %d\n", ret);
+ return ret;
+ }
+
+ Debug (13, "[EBP=0x%x] = 0x%x\n", DWARF_GET_LOC (c->dwarf.loc[EBP]),
+ c->dwarf.cfa);
+
+ ebp_loc = DWARF_LOC (c->dwarf.cfa, 0);
+ eip_loc = DWARF_LOC (c->dwarf.cfa + 4, 0);
+ c->dwarf.cfa += 8;
+
+ /* Mark all registers unsaved, since we don't know where
+ they are saved (if at all), except for the EBP and
+ EIP. */
+ for (i = 0; i < DWARF_NUM_PRESERVED_REGS; ++i)
+ c->dwarf.loc[i] = DWARF_NULL_LOC;
c->dwarf.loc[EBP] = ebp_loc;
c->dwarf.loc[EIP] = eip_loc;
c->dwarf.use_prev_instr = 1;
- }
+ }
c->dwarf.ret_addr_column = EIP;
if (!DWARF_IS_NULL_LOC (c->dwarf.loc[EBP]))
- {
- ret = dwarf_get (&c->dwarf, c->dwarf.loc[EIP], &c->dwarf.ip);
- if (ret < 0)
- {
- Debug (13, "dwarf_get([EIP=0x%x]) failed\n", DWARF_GET_LOC (c->dwarf.loc[EIP]));
- Debug (2, "returning %d\n", ret);
- return ret;
- }
- else
- {
- Debug (13, "[EIP=0x%x] = 0x%x\n", DWARF_GET_LOC (c->dwarf.loc[EIP]),
- c->dwarf.ip);
- }
- }
+ {
+ ret = dwarf_get (&c->dwarf, c->dwarf.loc[EIP], &c->dwarf.ip);
+ if (ret < 0)
+ {
+ Debug (13, "dwarf_get([EIP=0x%x]) failed\n", DWARF_GET_LOC (c->dwarf.loc[EIP]));
+ Debug (2, "returning %d\n", ret);
+ return ret;
+ }
+ else
+ {
+ Debug (13, "[EIP=0x%x] = 0x%x\n", DWARF_GET_LOC (c->dwarf.loc[EIP]),
+ c->dwarf.ip);
+ }
+ }
else
- c->dwarf.ip = 0;
+ c->dwarf.ip = 0;
}
ret = (c->dwarf.ip == 0) ? 0 : 1;
Debug (2, "returning %d\n", ret);
diff --git a/src/x86/init.h b/src/x86/init.h
index f35387d4..027aedc3 100644
--- a/src/x86/init.h
+++ b/src/x86/init.h
@@ -1,6 +1,6 @@
/* libunwind - a platform-independent unwind library
Copyright (C) 2002 Hewlett-Packard Co
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind.
@@ -50,7 +50,7 @@ common_init (struct cursor *c, unsigned use_prev_instr)
return ret;
ret = dwarf_get (&c->dwarf, DWARF_REG_LOC (&c->dwarf, UNW_X86_ESP),
- &c->dwarf.cfa);
+ &c->dwarf.cfa);
if (ret < 0)
return ret;
diff --git a/src/x86/is_fpreg.c b/src/x86/is_fpreg.c
index 8f1536d1..addf9bca 100644
--- a/src/x86/is_fpreg.c
+++ b/src/x86/is_fpreg.c
@@ -1,6 +1,6 @@
/* libunwind - a platform-independent unwind library
Copyright (c) 2004-2005 Hewlett-Packard Development Company, L.P.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind.
@@ -29,6 +29,6 @@ PROTECTED int
unw_is_fpreg (int regnum)
{
return ((regnum >= UNW_X86_ST0 && regnum <= UNW_X86_ST7)
- || (regnum >= UNW_X86_XMM0_lo && regnum <= UNW_X86_XMM7_hi)
- || (regnum >= UNW_X86_XMM0 && regnum <= UNW_X86_XMM7));
+ || (regnum >= UNW_X86_XMM0_lo && regnum <= UNW_X86_XMM7_hi)
+ || (regnum >= UNW_X86_XMM0 && regnum <= UNW_X86_XMM7));
}
diff --git a/src/x86/offsets.h b/src/x86/offsets.h
index e8a255cd..e5aec7f5 100644
--- a/src/x86/offsets.h
+++ b/src/x86/offsets.h
@@ -4,137 +4,137 @@
/* Offsets for x86 Linux "ucontext_t": */
-#define LINUX_UC_FLAGS_OFF 0x00
-#define LINUX_UC_LINK_OFF 0x04
-#define LINUX_UC_STACK_OFF 0x08
-#define LINUX_UC_MCONTEXT_OFF 0x14
-#define LINUX_UC_SIGMASK_OFF 0x6c
-#define LINUX_UC_FPREGS_MEM_OFF 0xec
+#define LINUX_UC_FLAGS_OFF 0x00
+#define LINUX_UC_LINK_OFF 0x04
+#define LINUX_UC_STACK_OFF 0x08
+#define LINUX_UC_MCONTEXT_OFF 0x14
+#define LINUX_UC_SIGMASK_OFF 0x6c
+#define LINUX_UC_FPREGS_MEM_OFF 0xec
/* The struct sigcontext is located at an offset of 4
from the stack pointer in the signal frame. */
/* Offsets for x86 Linux "struct sigcontext": */
-#define LINUX_SC_GS_OFF 0x00
-#define LINUX_SC_GSH_OFF 0x02
-#define LINUX_SC_FS_OFF 0x04
-#define LINUX_SC_FSH_OFF 0x06
-#define LINUX_SC_ES_OFF 0x08
-#define LINUX_SC_ESH_OFF 0x0a
-#define LINUX_SC_DS_OFF 0x0c
-#define LINUX_SC_DSH_OFF 0x0e
-#define LINUX_SC_EDI_OFF 0x10
-#define LINUX_SC_ESI_OFF 0x14
-#define LINUX_SC_EBP_OFF 0x18
-#define LINUX_SC_ESP_OFF 0x1c
-#define LINUX_SC_EBX_OFF 0x20
-#define LINUX_SC_EDX_OFF 0x24
-#define LINUX_SC_ECX_OFF 0x28
-#define LINUX_SC_EAX_OFF 0x2c
-#define LINUX_SC_TRAPNO_OFF 0x30
-#define LINUX_SC_ERR_OFF 0x34
-#define LINUX_SC_EIP_OFF 0x38
-#define LINUX_SC_CS_OFF 0x3c
-#define LINUX_SC_CSH_OFF 0x3e
-#define LINUX_SC_EFLAGS_OFF 0x40
-#define LINUX_SC_ESP_AT_SIGNAL_OFF 0x44
-#define LINUX_SC_SS_OFF 0x48
-#define LINUX_SC_SSH_OFF 0x4a
-#define LINUX_SC_FPSTATE_OFF 0x4c
-#define LINUX_SC_OLDMASK_OFF 0x50
-#define LINUX_SC_CR2_OFF 0x54
+#define LINUX_SC_GS_OFF 0x00
+#define LINUX_SC_GSH_OFF 0x02
+#define LINUX_SC_FS_OFF 0x04
+#define LINUX_SC_FSH_OFF 0x06
+#define LINUX_SC_ES_OFF 0x08
+#define LINUX_SC_ESH_OFF 0x0a
+#define LINUX_SC_DS_OFF 0x0c
+#define LINUX_SC_DSH_OFF 0x0e
+#define LINUX_SC_EDI_OFF 0x10
+#define LINUX_SC_ESI_OFF 0x14
+#define LINUX_SC_EBP_OFF 0x18
+#define LINUX_SC_ESP_OFF 0x1c
+#define LINUX_SC_EBX_OFF 0x20
+#define LINUX_SC_EDX_OFF 0x24
+#define LINUX_SC_ECX_OFF 0x28
+#define LINUX_SC_EAX_OFF 0x2c
+#define LINUX_SC_TRAPNO_OFF 0x30
+#define LINUX_SC_ERR_OFF 0x34
+#define LINUX_SC_EIP_OFF 0x38
+#define LINUX_SC_CS_OFF 0x3c
+#define LINUX_SC_CSH_OFF 0x3e
+#define LINUX_SC_EFLAGS_OFF 0x40
+#define LINUX_SC_ESP_AT_SIGNAL_OFF 0x44
+#define LINUX_SC_SS_OFF 0x48
+#define LINUX_SC_SSH_OFF 0x4a
+#define LINUX_SC_FPSTATE_OFF 0x4c
+#define LINUX_SC_OLDMASK_OFF 0x50
+#define LINUX_SC_CR2_OFF 0x54
/* Offsets for x86 Linux "struct _fpstate": */
-#define LINUX_FPSTATE_CW_OFF 0x000
-#define LINUX_FPSTATE_SW_OFF 0x004
-#define LINUX_FPSTATE_TAG_OFF 0x008
-#define LINUX_FPSTATE_IPOFF_OFF 0x00c
-#define LINUX_FPSTATE_CSSEL_OFF 0x010
-#define LINUX_FPSTATE_DATAOFF_OFF 0x014
-#define LINUX_FPSTATE_DATASEL_OFF 0x018
-#define LINUX_FPSTATE_ST0_OFF 0x01c
-#define LINUX_FPSTATE_ST1_OFF 0x026
-#define LINUX_FPSTATE_ST2_OFF 0x030
-#define LINUX_FPSTATE_ST3_OFF 0x03a
-#define LINUX_FPSTATE_ST4_OFF 0x044
-#define LINUX_FPSTATE_ST5_OFF 0x04e
-#define LINUX_FPSTATE_ST6_OFF 0x058
-#define LINUX_FPSTATE_ST7_OFF 0x062
-#define LINUX_FPSTATE_STATUS_OFF 0x06c
-#define LINUX_FPSTATE_MAGIC_OFF 0x06e
-#define LINUX_FPSTATE_FXSR_ENV_OFF 0x070
-#define LINUX_FPSTATE_MXCSR_OFF 0x088
-#define LINUX_FPSTATE_FXSR_ST0_OFF 0x090
-#define LINUX_FPSTATE_FXSR_ST1_OFF 0x0a0
-#define LINUX_FPSTATE_FXSR_ST2_OFF 0x0b0
-#define LINUX_FPSTATE_FXSR_ST3_OFF 0x0c0
-#define LINUX_FPSTATE_FXSR_ST4_OFF 0x0d0
-#define LINUX_FPSTATE_FXSR_ST5_OFF 0x0e0
-#define LINUX_FPSTATE_FXSR_ST6_OFF 0x0f0
-#define LINUX_FPSTATE_FXSR_ST7_OFF 0x100
-#define LINUX_FPSTATE_XMM0_OFF 0x110
-#define LINUX_FPSTATE_XMM1_OFF 0x120
-#define LINUX_FPSTATE_XMM2_OFF 0x130
-#define LINUX_FPSTATE_XMM3_OFF 0x140
-#define LINUX_FPSTATE_XMM4_OFF 0x150
-#define LINUX_FPSTATE_XMM5_OFF 0x160
-#define LINUX_FPSTATE_XMM6_OFF 0x170
-#define LINUX_FPSTATE_XMM7_OFF 0x180
+#define LINUX_FPSTATE_CW_OFF 0x000
+#define LINUX_FPSTATE_SW_OFF 0x004
+#define LINUX_FPSTATE_TAG_OFF 0x008
+#define LINUX_FPSTATE_IPOFF_OFF 0x00c
+#define LINUX_FPSTATE_CSSEL_OFF 0x010
+#define LINUX_FPSTATE_DATAOFF_OFF 0x014
+#define LINUX_FPSTATE_DATASEL_OFF 0x018
+#define LINUX_FPSTATE_ST0_OFF 0x01c
+#define LINUX_FPSTATE_ST1_OFF 0x026
+#define LINUX_FPSTATE_ST2_OFF 0x030
+#define LINUX_FPSTATE_ST3_OFF 0x03a
+#define LINUX_FPSTATE_ST4_OFF 0x044
+#define LINUX_FPSTATE_ST5_OFF 0x04e
+#define LINUX_FPSTATE_ST6_OFF 0x058
+#define LINUX_FPSTATE_ST7_OFF 0x062
+#define LINUX_FPSTATE_STATUS_OFF 0x06c
+#define LINUX_FPSTATE_MAGIC_OFF 0x06e
+#define LINUX_FPSTATE_FXSR_ENV_OFF 0x070
+#define LINUX_FPSTATE_MXCSR_OFF 0x088
+#define LINUX_FPSTATE_FXSR_ST0_OFF 0x090
+#define LINUX_FPSTATE_FXSR_ST1_OFF 0x0a0
+#define LINUX_FPSTATE_FXSR_ST2_OFF 0x0b0
+#define LINUX_FPSTATE_FXSR_ST3_OFF 0x0c0
+#define LINUX_FPSTATE_FXSR_ST4_OFF 0x0d0
+#define LINUX_FPSTATE_FXSR_ST5_OFF 0x0e0
+#define LINUX_FPSTATE_FXSR_ST6_OFF 0x0f0
+#define LINUX_FPSTATE_FXSR_ST7_OFF 0x100
+#define LINUX_FPSTATE_XMM0_OFF 0x110
+#define LINUX_FPSTATE_XMM1_OFF 0x120
+#define LINUX_FPSTATE_XMM2_OFF 0x130
+#define LINUX_FPSTATE_XMM3_OFF 0x140
+#define LINUX_FPSTATE_XMM4_OFF 0x150
+#define LINUX_FPSTATE_XMM5_OFF 0x160
+#define LINUX_FPSTATE_XMM6_OFF 0x170
+#define LINUX_FPSTATE_XMM7_OFF 0x180
/* FreeBSD-specific definitions: */
-#define FREEBSD_SC_UCONTEXT_OFF 0x20
-#define FREEBSD_UC_MCONTEXT_OFF 0x10
+#define FREEBSD_SC_UCONTEXT_OFF 0x20
+#define FREEBSD_UC_MCONTEXT_OFF 0x10
-#define FREEBSD_UC_MCONTEXT_GS_OFF 0x14
-#define FREEBSD_UC_MCONTEXT_FS_OFF 0x18
-#define FREEBSD_UC_MCONTEXT_ES_OFF 0x1c
-#define FREEBSD_UC_MCONTEXT_DS_OFF 0x20
-#define FREEBSD_UC_MCONTEXT_EDI_OFF 0x24
-#define FREEBSD_UC_MCONTEXT_ESI_OFF 0x28
-#define FREEBSD_UC_MCONTEXT_EBP_OFF 0x2c
-#define FREEBSD_UC_MCONTEXT_EBX_OFF 0x34
-#define FREEBSD_UC_MCONTEXT_EDX_OFF 0x38
-#define FREEBSD_UC_MCONTEXT_ECX_OFF 0x3c
-#define FREEBSD_UC_MCONTEXT_EAX_OFF 0x40
-#define FREEBSD_UC_MCONTEXT_TRAPNO_OFF 0x44
-#define FREEBSD_UC_MCONTEXT_EIP_OFF 0x4c
-#define FREEBSD_UC_MCONTEXT_ESP_OFF 0x58
-#define FREEBSD_UC_MCONTEXT_CS_OFF 0x50
-#define FREEBSD_UC_MCONTEXT_EFLAGS_OFF 0x54
-#define FREEBSD_UC_MCONTEXT_SS_OFF 0x5c
-#define FREEBSD_UC_MCONTEXT_MC_LEN_OFF 0x60
+#define FREEBSD_UC_MCONTEXT_GS_OFF 0x14
+#define FREEBSD_UC_MCONTEXT_FS_OFF 0x18
+#define FREEBSD_UC_MCONTEXT_ES_OFF 0x1c
+#define FREEBSD_UC_MCONTEXT_DS_OFF 0x20
+#define FREEBSD_UC_MCONTEXT_EDI_OFF 0x24
+#define FREEBSD_UC_MCONTEXT_ESI_OFF 0x28
+#define FREEBSD_UC_MCONTEXT_EBP_OFF 0x2c
+#define FREEBSD_UC_MCONTEXT_EBX_OFF 0x34
+#define FREEBSD_UC_MCONTEXT_EDX_OFF 0x38
+#define FREEBSD_UC_MCONTEXT_ECX_OFF 0x3c
+#define FREEBSD_UC_MCONTEXT_EAX_OFF 0x40
+#define FREEBSD_UC_MCONTEXT_TRAPNO_OFF 0x44
+#define FREEBSD_UC_MCONTEXT_EIP_OFF 0x4c
+#define FREEBSD_UC_MCONTEXT_ESP_OFF 0x58
+#define FREEBSD_UC_MCONTEXT_CS_OFF 0x50
+#define FREEBSD_UC_MCONTEXT_EFLAGS_OFF 0x54
+#define FREEBSD_UC_MCONTEXT_SS_OFF 0x5c
+#define FREEBSD_UC_MCONTEXT_MC_LEN_OFF 0x60
#define FREEBSD_UC_MCONTEXT_FPFORMAT_OFF 0x64
-#define FREEBSD_UC_MCONTEXT_OWNEDFP_OFF 0x68
-#define FREEBSD_UC_MCONTEXT_FPSTATE_OFF 0x70
+#define FREEBSD_UC_MCONTEXT_OWNEDFP_OFF 0x68
+#define FREEBSD_UC_MCONTEXT_FPSTATE_OFF 0x70
-#define FREEBSD_UC_MCONTEXT_CW_OFF 0x70
-#define FREEBSD_UC_MCONTEXT_SW_OFF 0x74
-#define FREEBSD_UC_MCONTEXT_TAG_OFF 0x78
-#define FREEBSD_UC_MCONTEXT_IPOFF_OFF 0x7c
-#define FREEBSD_UC_MCONTEXT_CSSEL_OFF 0x80
-#define FREEBSD_UC_MCONTEXT_DATAOFF_OFF 0x84
-#define FREEBSD_US_MCONTEXT_DATASEL_OFF 0x88
-#define FREEBSD_UC_MCONTEXT_ST0_OFF 0x8c
+#define FREEBSD_UC_MCONTEXT_CW_OFF 0x70
+#define FREEBSD_UC_MCONTEXT_SW_OFF 0x74
+#define FREEBSD_UC_MCONTEXT_TAG_OFF 0x78
+#define FREEBSD_UC_MCONTEXT_IPOFF_OFF 0x7c
+#define FREEBSD_UC_MCONTEXT_CSSEL_OFF 0x80
+#define FREEBSD_UC_MCONTEXT_DATAOFF_OFF 0x84
+#define FREEBSD_US_MCONTEXT_DATASEL_OFF 0x88
+#define FREEBSD_UC_MCONTEXT_ST0_OFF 0x8c
-#define FREEBSD_UC_MCONTEXT_CW_XMM_OFF 0x70
-#define FREEBSD_UC_MCONTEXT_SW_XMM_OFF 0x72
-#define FREEBSD_UC_MCONTEXT_TAG_XMM_OFF 0x74
-#define FREEBSD_UC_MCONTEXT_IPOFF_XMM_OFF 0x78
-#define FREEBSD_UC_MCONTEXT_CSSEL_XMM_OFF 0x7c
-#define FREEBSD_UC_MCONTEXT_DATAOFF_XMM_OFF 0x80
-#define FREEBSD_US_MCONTEXT_DATASEL_XMM_OFF 0x84
-#define FREEBSD_UC_MCONTEXT_MXCSR_XMM_OFF 0x88
-#define FREEBSD_UC_MCONTEXT_ST0_XMM_OFF 0x90
-#define FREEBSD_UC_MCONTEXT_XMM0_OFF 0x110
+#define FREEBSD_UC_MCONTEXT_CW_XMM_OFF 0x70
+#define FREEBSD_UC_MCONTEXT_SW_XMM_OFF 0x72
+#define FREEBSD_UC_MCONTEXT_TAG_XMM_OFF 0x74
+#define FREEBSD_UC_MCONTEXT_IPOFF_XMM_OFF 0x78
+#define FREEBSD_UC_MCONTEXT_CSSEL_XMM_OFF 0x7c
+#define FREEBSD_UC_MCONTEXT_DATAOFF_XMM_OFF 0x80
+#define FREEBSD_US_MCONTEXT_DATASEL_XMM_OFF 0x84
+#define FREEBSD_UC_MCONTEXT_MXCSR_XMM_OFF 0x88
+#define FREEBSD_UC_MCONTEXT_ST0_XMM_OFF 0x90
+#define FREEBSD_UC_MCONTEXT_XMM0_OFF 0x110
-#define FREEBSD_UC_MCONTEXT_MC_LEN_VAL 0x280
-#define FREEBSD_UC_MCONTEXT_FPFMT_NODEV 0x10000
-#define FREEBSD_UC_MCONTEXT_FPFMT_387 0x10001
-#define FREEBSD_UC_MCONTEXT_FPFMT_XMM 0x10002
-#define FREEBSD_UC_MCONTEXT_FPOWNED_NONE 0x20000
-#define FREEBSD_UC_MCONTEXT_FPOWNED_FPU 0x20001
-#define FREEBSD_UC_MCONTEXT_FPOWNED_PCB 0x20002
+#define FREEBSD_UC_MCONTEXT_MC_LEN_VAL 0x280
+#define FREEBSD_UC_MCONTEXT_FPFMT_NODEV 0x10000
+#define FREEBSD_UC_MCONTEXT_FPFMT_387 0x10001
+#define FREEBSD_UC_MCONTEXT_FPFMT_XMM 0x10002
+#define FREEBSD_UC_MCONTEXT_FPOWNED_NONE 0x20000
+#define FREEBSD_UC_MCONTEXT_FPOWNED_FPU 0x20001
+#define FREEBSD_UC_MCONTEXT_FPOWNED_PCB 0x20002
diff --git a/src/x86/unwind_i.h b/src/x86/unwind_i.h
index 1db2e98d..cd528242 100644
--- a/src/x86/unwind_i.h
+++ b/src/x86/unwind_i.h
@@ -1,6 +1,6 @@
/* libunwind - a platform-independent unwind library
Copyright (C) 2002 Hewlett-Packard Co
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind.
@@ -33,29 +33,29 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
#include "libunwind_i.h"
/* DWARF column numbers: */
-#define EAX 0
-#define ECX 1
-#define EDX 2
-#define EBX 3
-#define ESP 4
-#define EBP 5
-#define ESI 6
-#define EDI 7
-#define EIP 8
-#define EFLAGS 9
-#define TRAPNO 10
-#define ST0 11
-
-#define x86_lock UNW_OBJ(lock)
-#define x86_local_resume UNW_OBJ(local_resume)
-#define x86_local_addr_space_init UNW_OBJ(local_addr_space_init)
-#define x86_scratch_loc UNW_OBJ(scratch_loc)
-#define x86_get_scratch_loc UNW_OBJ(get_scratch_loc)
-#define x86_r_uc_addr UNW_OBJ(r_uc_addr)
+#define EAX 0
+#define ECX 1
+#define EDX 2
+#define EBX 3
+#define ESP 4
+#define EBP 5
+#define ESI 6
+#define EDI 7
+#define EIP 8
+#define EFLAGS 9
+#define TRAPNO 10
+#define ST0 11
+
+#define x86_lock UNW_OBJ(lock)
+#define x86_local_resume UNW_OBJ(local_resume)
+#define x86_local_addr_space_init UNW_OBJ(local_addr_space_init)
+#define x86_scratch_loc UNW_OBJ(scratch_loc)
+#define x86_get_scratch_loc UNW_OBJ(get_scratch_loc)
+#define x86_r_uc_addr UNW_OBJ(r_uc_addr)
extern void x86_local_addr_space_init (void);
extern int x86_local_resume (unw_addr_space_t as, unw_cursor_t *cursor,
- void *arg);
+ void *arg);
extern dwarf_loc_t x86_scratch_loc (struct cursor *c, unw_regnum_t reg);
extern dwarf_loc_t x86_get_scratch_loc (struct cursor *c, unw_regnum_t reg);
extern void *x86_r_uc_addr (ucontext_t *uc, int reg);