struct siginfo vs. siginfo_t

gdb/
	* amd64-linux-nat.c (amd64_linux_siginfo_fixup): Use siginfo_t instead
	of struct siginfo.
	* arm-linux-nat.c (arm_linux_stopped_data_address): Likewise.
	* ia64-linux-nat.c (ia64_linux_stopped_data_address): Likewise.
	* linux-nat.c (linux_nat_siginfo_fixup, siginfo_fixup)
	(linux_xfer_siginfo, linux_nat_set_siginfo_fixup)
	(linux_nat_get_siginfo): Likewise.
	* linux-nat.h (struct lwp_info, linux_nat_set_siginfo_fixup)
	(linux_nat_get_siginfo): Likewise.
	* linux-tdep.c (linux_get_siginfo_type): Likewise.
	* ppc-linux-nat.c (ppc_linux_stopped_data_address): Likewise.
	* procfs.c (gdb_siginfo_t): Likewise.

gdbserver/
	* linux-arm-low.c (arm_stopped_by_watchpoint): Use siginfo_t instead of
	struct siginfo.
	* linux-low.c (siginfo_fixup, linux_xfer_siginfo): Likewise.
	* linux-x86-low.c (x86_siginfo_fixup): Likewise.
	* linux-low.h: Include <signal.h>.
	(struct siginfo): Remove forward declaration.
	(struct linux_target_ops) <siginfo_fixup>: Use siginfo_t instead of
	struct siginfo.
This commit is contained in:
Thomas Schwinge 2012-03-21 13:43:55 +00:00
parent 09c7a31ff5
commit a5362b9aa4
13 changed files with 53 additions and 28 deletions

View File

@ -1,3 +1,18 @@
2012-03-21 Thomas Schwinge <thomas@codesourcery.com>
* amd64-linux-nat.c (amd64_linux_siginfo_fixup): Use siginfo_t instead
of struct siginfo.
* arm-linux-nat.c (arm_linux_stopped_data_address): Likewise.
* ia64-linux-nat.c (ia64_linux_stopped_data_address): Likewise.
* linux-nat.c (linux_nat_siginfo_fixup, siginfo_fixup)
(linux_xfer_siginfo, linux_nat_set_siginfo_fixup)
(linux_nat_get_siginfo): Likewise.
* linux-nat.h (struct lwp_info, linux_nat_set_siginfo_fixup)
(linux_nat_get_siginfo): Likewise.
* linux-tdep.c (linux_get_siginfo_type): Likewise.
* ppc-linux-nat.c (ppc_linux_stopped_data_address): Likewise.
* procfs.c (gdb_siginfo_t): Likewise.
2012-03-21 Mike Frysinger <vapier@gentoo.org> 2012-03-21 Mike Frysinger <vapier@gentoo.org>
* .gitignore: Ignore more files. * .gitignore: Ignore more files.

View File

@ -731,13 +731,13 @@ siginfo_from_compat_siginfo (siginfo_t *to, compat_siginfo_t *from)
INF. */ INF. */
static int static int
amd64_linux_siginfo_fixup (struct siginfo *native, gdb_byte *inf, int direction) amd64_linux_siginfo_fixup (siginfo_t *native, gdb_byte *inf, int direction)
{ {
/* Is the inferior 32-bit? If so, then do fixup the siginfo /* Is the inferior 32-bit? If so, then do fixup the siginfo
object. */ object. */
if (gdbarch_addr_bit (get_frame_arch (get_current_frame ())) == 32) if (gdbarch_addr_bit (get_frame_arch (get_current_frame ())) == 32)
{ {
gdb_assert (sizeof (struct siginfo) == sizeof (compat_siginfo_t)); gdb_assert (sizeof (siginfo_t) == sizeof (compat_siginfo_t));
if (direction == 0) if (direction == 0)
compat_siginfo_from_siginfo ((struct compat_siginfo *) inf, native); compat_siginfo_from_siginfo ((struct compat_siginfo *) inf, native);

View File

@ -1137,7 +1137,7 @@ arm_linux_remove_watchpoint (CORE_ADDR addr, int len, int rw,
static int static int
arm_linux_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p) arm_linux_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p)
{ {
struct siginfo *siginfo_p = linux_nat_get_siginfo (inferior_ptid); siginfo_t *siginfo_p = linux_nat_get_siginfo (inferior_ptid);
int slot = siginfo_p->si_errno; int slot = siginfo_p->si_errno;
/* This must be a hardware breakpoint. */ /* This must be a hardware breakpoint. */

View File

@ -1,3 +1,14 @@
2012-03-21 Thomas Schwinge <thomas@codesourcery.com>
* linux-arm-low.c (arm_stopped_by_watchpoint): Use siginfo_t instead of
struct siginfo.
* linux-low.c (siginfo_fixup, linux_xfer_siginfo): Likewise.
* linux-x86-low.c (x86_siginfo_fixup): Likewise.
* linux-low.h: Include <signal.h>.
(struct siginfo): Remove forward declaration.
(struct linux_target_ops) <siginfo_fixup>: Use siginfo_t instead of
struct siginfo.
2012-03-21 Mike Frysinger <vapier@gentoo.org> 2012-03-21 Mike Frysinger <vapier@gentoo.org>
* .gitignore: Ignore more files. * .gitignore: Ignore more files.

View File

@ -631,7 +631,7 @@ static int
arm_stopped_by_watchpoint (void) arm_stopped_by_watchpoint (void)
{ {
struct lwp_info *lwp = get_thread_lwp (current_inferior); struct lwp_info *lwp = get_thread_lwp (current_inferior);
struct siginfo siginfo; siginfo_t siginfo;
/* We must be able to set hardware watchpoints. */ /* We must be able to set hardware watchpoints. */
if (arm_linux_get_hw_watchpoint_count () == 0) if (arm_linux_get_hw_watchpoint_count () == 0)

View File

@ -4779,7 +4779,7 @@ linux_qxfer_osdata (const char *annex,
layout of the inferiors' architecture. */ layout of the inferiors' architecture. */
static void static void
siginfo_fixup (struct siginfo *siginfo, void *inf_siginfo, int direction) siginfo_fixup (siginfo_t *siginfo, void *inf_siginfo, int direction)
{ {
int done = 0; int done = 0;
@ -4791,9 +4791,9 @@ siginfo_fixup (struct siginfo *siginfo, void *inf_siginfo, int direction)
if (!done) if (!done)
{ {
if (direction == 1) if (direction == 1)
memcpy (siginfo, inf_siginfo, sizeof (struct siginfo)); memcpy (siginfo, inf_siginfo, sizeof (siginfo_t));
else else
memcpy (inf_siginfo, siginfo, sizeof (struct siginfo)); memcpy (inf_siginfo, siginfo, sizeof (siginfo_t));
} }
} }
@ -4802,8 +4802,8 @@ linux_xfer_siginfo (const char *annex, unsigned char *readbuf,
unsigned const char *writebuf, CORE_ADDR offset, int len) unsigned const char *writebuf, CORE_ADDR offset, int len)
{ {
int pid; int pid;
struct siginfo siginfo; siginfo_t siginfo;
char inf_siginfo[sizeof (struct siginfo)]; char inf_siginfo[sizeof (siginfo_t)];
if (current_inferior == NULL) if (current_inferior == NULL)
return -1; return -1;

View File

@ -20,6 +20,7 @@
#ifdef HAVE_THREAD_DB_H #ifdef HAVE_THREAD_DB_H
#include <thread_db.h> #include <thread_db.h>
#endif #endif
#include <signal.h>
#include "gdb_proc_service.h" #include "gdb_proc_service.h"
@ -46,8 +47,6 @@ struct regset_info
extern struct regset_info target_regsets[]; extern struct regset_info target_regsets[];
#endif #endif
struct siginfo;
struct process_info_private struct process_info_private
{ {
/* Arch-specific additions. */ /* Arch-specific additions. */
@ -109,7 +108,7 @@ struct linux_target_ops
Returns true if any conversion was done; false otherwise. Returns true if any conversion was done; false otherwise.
If DIRECTION is 1, then copy from INF to NATIVE. If DIRECTION is 1, then copy from INF to NATIVE.
If DIRECTION is 0, copy from NATIVE to INF. */ If DIRECTION is 0, copy from NATIVE to INF. */
int (*siginfo_fixup) (struct siginfo *native, void *inf, int direction); int (*siginfo_fixup) (siginfo_t *native, void *inf, int direction);
/* Hook to call when a new process is created or attached to. /* Hook to call when a new process is created or attached to.
If extra per-process architecture-specific data is needed, If extra per-process architecture-specific data is needed,

View File

@ -918,13 +918,13 @@ siginfo_from_compat_siginfo (siginfo_t *to, compat_siginfo_t *from)
INF. */ INF. */
static int static int
x86_siginfo_fixup (struct siginfo *native, void *inf, int direction) x86_siginfo_fixup (siginfo_t *native, void *inf, int direction)
{ {
#ifdef __x86_64__ #ifdef __x86_64__
/* Is the inferior 32-bit? If so, then fixup the siginfo object. */ /* Is the inferior 32-bit? If so, then fixup the siginfo object. */
if (register_size (0) == 4) if (register_size (0) == 4)
{ {
if (sizeof (struct siginfo) != sizeof (compat_siginfo_t)) if (sizeof (siginfo_t) != sizeof (compat_siginfo_t))
fatal ("unexpected difference in siginfo"); fatal ("unexpected difference in siginfo");
if (direction == 0) if (direction == 0)

View File

@ -637,7 +637,7 @@ static int
ia64_linux_stopped_data_address (struct target_ops *ops, CORE_ADDR *addr_p) ia64_linux_stopped_data_address (struct target_ops *ops, CORE_ADDR *addr_p)
{ {
CORE_ADDR psr; CORE_ADDR psr;
struct siginfo *siginfo_p; siginfo_t *siginfo_p;
struct regcache *regcache = get_current_regcache (); struct regcache *regcache = get_current_regcache ();
siginfo_p = linux_nat_get_siginfo (inferior_ptid); siginfo_p = linux_nat_get_siginfo (inferior_ptid);

View File

@ -188,7 +188,7 @@ static void (*linux_nat_prepare_to_resume) (struct lwp_info *);
/* The method to call, if any, when the siginfo object needs to be /* The method to call, if any, when the siginfo object needs to be
converted between the layout returned by ptrace, and the layout in converted between the layout returned by ptrace, and the layout in
the architecture of the inferior. */ the architecture of the inferior. */
static int (*linux_nat_siginfo_fixup) (struct siginfo *, static int (*linux_nat_siginfo_fixup) (siginfo_t *,
gdb_byte *, gdb_byte *,
int); int);
@ -4232,7 +4232,7 @@ linux_nat_mourn_inferior (struct target_ops *ops)
layout of the inferiors' architecture. */ layout of the inferiors' architecture. */
static void static void
siginfo_fixup (struct siginfo *siginfo, gdb_byte *inf_siginfo, int direction) siginfo_fixup (siginfo_t *siginfo, gdb_byte *inf_siginfo, int direction)
{ {
int done = 0; int done = 0;
@ -4244,9 +4244,9 @@ siginfo_fixup (struct siginfo *siginfo, gdb_byte *inf_siginfo, int direction)
if (!done) if (!done)
{ {
if (direction == 1) if (direction == 1)
memcpy (siginfo, inf_siginfo, sizeof (struct siginfo)); memcpy (siginfo, inf_siginfo, sizeof (siginfo_t));
else else
memcpy (inf_siginfo, siginfo, sizeof (struct siginfo)); memcpy (inf_siginfo, siginfo, sizeof (siginfo_t));
} }
} }
@ -4256,8 +4256,8 @@ linux_xfer_siginfo (struct target_ops *ops, enum target_object object,
const gdb_byte *writebuf, ULONGEST offset, LONGEST len) const gdb_byte *writebuf, ULONGEST offset, LONGEST len)
{ {
int pid; int pid;
struct siginfo siginfo; siginfo_t siginfo;
gdb_byte inf_siginfo[sizeof (struct siginfo)]; gdb_byte inf_siginfo[sizeof (siginfo_t)];
gdb_assert (object == TARGET_OBJECT_SIGNAL_INFO); gdb_assert (object == TARGET_OBJECT_SIGNAL_INFO);
gdb_assert (readbuf || writebuf); gdb_assert (readbuf || writebuf);
@ -5266,7 +5266,7 @@ linux_nat_set_new_thread (struct target_ops *t,
inferior. */ inferior. */
void void
linux_nat_set_siginfo_fixup (struct target_ops *t, linux_nat_set_siginfo_fixup (struct target_ops *t,
int (*siginfo_fixup) (struct siginfo *, int (*siginfo_fixup) (siginfo_t *,
gdb_byte *, gdb_byte *,
int)) int))
{ {
@ -5285,7 +5285,7 @@ linux_nat_set_prepare_to_resume (struct target_ops *t,
} }
/* Return the saved siginfo associated with PTID. */ /* Return the saved siginfo associated with PTID. */
struct siginfo * siginfo_t *
linux_nat_get_siginfo (ptid_t ptid) linux_nat_get_siginfo (ptid_t ptid)
{ {
struct lwp_info *lp = find_lwp_pid (ptid); struct lwp_info *lp = find_lwp_pid (ptid);

View File

@ -78,7 +78,7 @@ struct lwp_info
/* Non-zero si_signo if this LWP stopped with a trap. si_addr may /* Non-zero si_signo if this LWP stopped with a trap. si_addr may
be the address of a hardware watchpoint. */ be the address of a hardware watchpoint. */
struct siginfo siginfo; siginfo_t siginfo;
/* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data /* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data
watchpoint trap. */ watchpoint trap. */
@ -184,7 +184,7 @@ void linux_nat_set_new_thread (struct target_ops *, void (*) (struct lwp_info *)
that ptrace returns, and the layout in the architecture of the that ptrace returns, and the layout in the architecture of the
inferior. */ inferior. */
void linux_nat_set_siginfo_fixup (struct target_ops *, void linux_nat_set_siginfo_fixup (struct target_ops *,
int (*) (struct siginfo *, int (*) (siginfo_t *,
gdb_byte *, gdb_byte *,
int)); int));
@ -198,7 +198,7 @@ void linux_nat_set_prepare_to_resume (struct target_ops *,
void linux_nat_switch_fork (ptid_t new_ptid); void linux_nat_switch_fork (ptid_t new_ptid);
/* Return the saved siginfo associated with PTID. */ /* Return the saved siginfo associated with PTID. */
struct siginfo *linux_nat_get_siginfo (ptid_t ptid); siginfo_t *linux_nat_get_siginfo (ptid_t ptid);
/* Set alternative SIGTRAP-like events recognizer. */ /* Set alternative SIGTRAP-like events recognizer. */
void linux_nat_set_status_is_event (struct target_ops *t, void linux_nat_set_status_is_event (struct target_ops *t,

View File

@ -2218,7 +2218,7 @@ ppc_linux_thread_exit (struct thread_info *tp, int silent)
static int static int
ppc_linux_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p) ppc_linux_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p)
{ {
struct siginfo *siginfo_p; siginfo_t *siginfo_p;
siginfo_p = linux_nat_get_siginfo (inferior_ptid); siginfo_p = linux_nat_get_siginfo (inferior_ptid);

View File

@ -266,7 +266,7 @@ typedef struct sigaction gdb_sigaction_t;
#ifdef HAVE_PR_SIGINFO64_T #ifdef HAVE_PR_SIGINFO64_T
typedef pr_siginfo64_t gdb_siginfo_t; typedef pr_siginfo64_t gdb_siginfo_t;
#else #else
typedef struct siginfo gdb_siginfo_t; typedef siginfo_t gdb_siginfo_t;
#endif #endif
/* On mips-irix, praddset and prdelset are defined in such a way that /* On mips-irix, praddset and prdelset are defined in such a way that