aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@redhat.com>2024-01-25 14:10:42 +0000
committerAndrew Burgess <aburgess@redhat.com>2024-05-07 16:26:43 +0100
commit0c58b372e07fe81d23e4fcf6d6cfee8394e8bce5 (patch)
tree6a7cfe999fd0521aa5c520704e44fa35b5f5c1ec
parent3f1438a5b2ef4a6b2bd3cc0600033362c43de7b3 (diff)
downloadgdb-0c58b372e07fe81d23e4fcf6d6cfee8394e8bce5.zip
gdb-0c58b372e07fe81d23e4fcf6d6cfee8394e8bce5.tar.gz
gdb-0c58b372e07fe81d23e4fcf6d6cfee8394e8bce5.tar.bz2
gdbserver: convert have_ptrace_getregset to a tribool
Convert the have_ptrace_getregset global within gdbserver to a tribool. This brings the flag into alignment with the corresponding flag in GDB. The gdbserver have_ptrace_getregset variable is already used as a tribool, it just doesn't have the tribool type. In a future commit I plan to share more code between GDB and gdbserver, and having this variable be the same type in both code bases will make the sharing much easier. There should be no user visible changes after this commit. Approved-By: John Baldwin <jhb@FreeBSD.org> Reviewed-By: Felix Willgerodt <felix.willgerodt@intel.com>
-rw-r--r--gdbserver/linux-arm-low.cc6
-rw-r--r--gdbserver/linux-low.cc2
-rw-r--r--gdbserver/linux-low.h2
-rw-r--r--gdbserver/linux-x86-low.cc10
4 files changed, 10 insertions, 10 deletions
diff --git a/gdbserver/linux-arm-low.cc b/gdbserver/linux-arm-low.cc
index 17b64c0..eec4649 100644
--- a/gdbserver/linux-arm-low.cc
+++ b/gdbserver/linux-arm-low.cc
@@ -1006,9 +1006,9 @@ arm_target::low_arch_setup ()
/* Check if PTRACE_GETREGSET works. */
if (ptrace (PTRACE_GETREGSET, tid, NT_PRSTATUS, &iov) == 0)
- have_ptrace_getregset = 1;
+ have_ptrace_getregset = TRIBOOL_TRUE;
else
- have_ptrace_getregset = 0;
+ have_ptrace_getregset = TRIBOOL_FALSE;
}
bool
@@ -1121,7 +1121,7 @@ arm_target::get_regs_info ()
{
const struct target_desc *tdesc = current_process ()->tdesc;
- if (have_ptrace_getregset == 1
+ if (have_ptrace_getregset == TRIBOOL_TRUE
&& (is_aarch32_linux_description (tdesc)
|| arm_linux_get_tdesc_fp_type (tdesc) == ARM_FP_TYPE_VFPV3))
return &regs_info_aarch32;
diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
index 9614cd7..ac7f980 100644
--- a/gdbserver/linux-low.cc
+++ b/gdbserver/linux-low.cc
@@ -134,7 +134,7 @@ typedef struct
#endif
/* Does the current host support PTRACE_GETREGSET? */
-int have_ptrace_getregset = -1;
+enum tribool have_ptrace_getregset = TRIBOOL_UNKNOWN;
/* Return TRUE if THREAD is the leader thread of the process. */
diff --git a/gdbserver/linux-low.h b/gdbserver/linux-low.h
index d34d273..eaf8752 100644
--- a/gdbserver/linux-low.h
+++ b/gdbserver/linux-low.h
@@ -951,7 +951,7 @@ void thread_db_notice_clone (struct thread_info *parent_thr, ptid_t child_ptid);
bool thread_db_thread_handle (ptid_t ptid, gdb_byte **handle, int *handle_len);
-extern int have_ptrace_getregset;
+extern enum tribool have_ptrace_getregset;
/* Search for the value with type MATCH in the auxv vector, with entries of
length WORDSIZE bytes, of process with pid PID. If found, store the
diff --git a/gdbserver/linux-x86-low.cc b/gdbserver/linux-x86-low.cc
index 2532603..2603fb2 100644
--- a/gdbserver/linux-x86-low.cc
+++ b/gdbserver/linux-x86-low.cc
@@ -898,7 +898,7 @@ x86_linux_read_description (void)
if (ptrace (PTRACE_GETFPXREGS, tid, 0, (long) &fpxregs) < 0)
{
have_ptrace_getfpxregs = 0;
- have_ptrace_getregset = 0;
+ have_ptrace_getregset = TRIBOOL_FALSE;
return i386_linux_read_description (X86_XSTATE_X87);
}
else
@@ -917,7 +917,7 @@ x86_linux_read_description (void)
return tdesc_i386_linux_no_xml.get ();
}
- if (have_ptrace_getregset == -1)
+ if (have_ptrace_getregset == TRIBOOL_UNKNOWN)
{
uint64_t xstateregs[(X86_XSTATE_SSE_SIZE / sizeof (uint64_t))];
struct iovec iov;
@@ -928,10 +928,10 @@ x86_linux_read_description (void)
/* Check if PTRACE_GETREGSET works. */
if (ptrace (PTRACE_GETREGSET, tid,
(unsigned int) NT_X86_XSTATE, (long) &iov) < 0)
- have_ptrace_getregset = 0;
+ have_ptrace_getregset = TRIBOOL_FALSE;
else
{
- have_ptrace_getregset = 1;
+ have_ptrace_getregset = TRIBOOL_TRUE;
/* Get XCR0 from XSAVE extended state. */
xcr0 = xstateregs[(I386_LINUX_XSAVE_XCR0_OFFSET
@@ -954,7 +954,7 @@ x86_linux_read_description (void)
}
/* Check the native XCR0 only if PTRACE_GETREGSET is available. */
- xcr0_features = (have_ptrace_getregset
+ xcr0_features = (have_ptrace_getregset == TRIBOOL_TRUE
&& (xcr0 & X86_XSTATE_ALL_MASK));
if (xcr0_features)