public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] gdbserver: convert have_ptrace_getregset to a tribool
@ 2024-03-25 17:18 Andrew Burgess
  0 siblings, 0 replies; 2+ messages in thread
From: Andrew Burgess @ 2024-03-25 17:18 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5920765d7513aaae9241a1850d62d73e0477f81c

commit 5920765d7513aaae9241a1850d62d73e0477f81c
Author: Andrew Burgess <aburgess@redhat.com>
Date:   Thu Jan 25 14:10:42 2024 +0000

    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>

Diff:
---
 gdbserver/linux-arm-low.cc |  6 +++---
 gdbserver/linux-low.cc     |  2 +-
 gdbserver/linux-low.h      |  2 +-
 gdbserver/linux-x86-low.cc | 10 +++++-----
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/gdbserver/linux-arm-low.cc b/gdbserver/linux-arm-low.cc
index 396ec88081b..b4f0e071c92 100644
--- a/gdbserver/linux-arm-low.cc
+++ b/gdbserver/linux-arm-low.cc
@@ -1007,9 +1007,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
@@ -1122,7 +1122,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 9d5a6242803..dfa26d451b0 100644
--- a/gdbserver/linux-low.cc
+++ b/gdbserver/linux-low.cc
@@ -135,7 +135,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 d34d2738238..eaf87527338 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 933d1fb012a..04202e355bb 100644
--- a/gdbserver/linux-x86-low.cc
+++ b/gdbserver/linux-x86-low.cc
@@ -899,7 +899,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
@@ -918,7 +918,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;
@@ -929,10 +929,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
@@ -955,7 +955,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)

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [binutils-gdb] gdbserver: convert have_ptrace_getregset to a tribool
@ 2024-05-07 15:27 Andrew Burgess
  0 siblings, 0 replies; 2+ messages in thread
From: Andrew Burgess @ 2024-05-07 15:27 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0c58b372e07fe81d23e4fcf6d6cfee8394e8bce5

commit 0c58b372e07fe81d23e4fcf6d6cfee8394e8bce5
Author: Andrew Burgess <aburgess@redhat.com>
Date:   Thu Jan 25 14:10:42 2024 +0000

    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>

Diff:
---
 gdbserver/linux-arm-low.cc |  6 +++---
 gdbserver/linux-low.cc     |  2 +-
 gdbserver/linux-low.h      |  2 +-
 gdbserver/linux-x86-low.cc | 10 +++++-----
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/gdbserver/linux-arm-low.cc b/gdbserver/linux-arm-low.cc
index 17b64c09aff..eec4649b235 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 9614cd7150c..ac7f9807ecc 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 d34d2738238..eaf87527338 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 2532603451a..2603fb2ac5d 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)

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-05-07 15:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-25 17:18 [binutils-gdb] gdbserver: convert have_ptrace_getregset to a tribool Andrew Burgess
2024-05-07 15:27 Andrew Burgess

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).