From patchwork Sat Mar 23 16:35:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Burgess X-Patchwork-Id: 87569 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C43E7385828F for ; Sat, 23 Mar 2024 16:36:45 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 904833858D38 for ; Sat, 23 Mar 2024 16:35:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 904833858D38 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 904833858D38 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711211740; cv=none; b=xLBGDOxPfmFdHo8IbT9vQrcdMwERUUpA9KQXLas8tQlq/BGdgHKxElnwuX7OvtiRTthxmyPL1YnSA80oFt/xCSGm3WYFjyE/8mqfxlO4eKVx2blqdOb2CtO0IY49Lz6qkXQBmh0a5hRQbIjaWL3LsG9Shv39nVkIVqTMHRVh+Yk= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711211740; c=relaxed/simple; bh=oB82Vpp3nyBGXoOttoDwl9pTznBZiedWVnuzaFQXAJY=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=UwbAaJkrOUPC0AY0lFJ77PdA507xjZD0kNTuO/24u0AmmWKWP2Fjuqfrss6/hzWaSR1ZcW/Jd23zQG3lWZNPPDVMxjzBnacV10X14TovKnaNaeqOcsIJaUoSwddrNNG265j71N1YVzPcwBmfupCdYxM/h0o67GgzoLj63/efsmY= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1711211738; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iMPU1cT5JxVhOB2Q2fm/P/aatWjIoYW/BIrU7ZhJ69w=; b=g7PXPanZbPdl0Wphd7mjrKxfS457Vw8ziu3nNER/O9KSJQzIXV99BM98yFxaed91ulpKH7 pwPaH64LNqrs1Bc0yXKWJ+HPVKOnYPSEuCt3WZC+OQ4HwSzKeS+WRtbJ4tQbh6s5XDUwYS rb99Y4rQoAj+Yja5WxL0mLTUsJgzmoM= Received: from mail-lf1-f72.google.com (mail-lf1-f72.google.com [209.85.167.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-154-ZmRO_xKINNSkD8SU0jsXvg-1; Sat, 23 Mar 2024 12:35:36 -0400 X-MC-Unique: ZmRO_xKINNSkD8SU0jsXvg-1 Received: by mail-lf1-f72.google.com with SMTP id 2adb3069b0e04-513e7ff16a8so2371625e87.1 for ; Sat, 23 Mar 2024 09:35:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711211734; x=1711816534; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iMPU1cT5JxVhOB2Q2fm/P/aatWjIoYW/BIrU7ZhJ69w=; b=aRxEZkHZmT7JAlnyt+aNU+yN2CTfTxBn0/rhyR+aZNoMJy22Mw84hQ5vE3EeoMvOqH s6sl0DwdWbbWPWMc2rT/HyE6okskFLEv0jCDJxYWqL+5RcagJR9S1YeMypcSWRnvMqqi Nd4dtcrjD60x1OdGnIrsfw8CA/BMIW57G0kO9cT6vIwMYbt2jQcTwD21kFNDdhedO1HK g/gOLLONdf5gHBK/8Kmu3/gwfPTXW5eAydTZoqjB4+KDQK6ff0KslM+KP2sXYg690BqY ix/JIVINgz7vwr4y7at4vw7y1HNJaAyjQHpRxLyK6M5n/otk+qrdjfyz5e9SYxBXNiGL Ljsw== X-Gm-Message-State: AOJu0YxmUAn9hSc39yiPVDp5wza8qrfdQVH9hAi5OYSbrNLfttrU+SbH jFiQJi2G+xbUfBtPfTxJAaum74Tmvi7CU2r3zyIxSSf8JRdgIo4b1CMw8QtjD/0gQOrK6jtwjqL Tw8HejjuG4m8InN69MkFThxHP9aunNNK374ihLLOKporPzJdVbNw8V3k14WeV+XQbMFNFfFsa8I AykpD6YNPcHBa2uR0UTWXQpMRFb16xgJJNQBLQX/EZ+vQ= X-Received: by 2002:ac2:4db5:0:b0:513:c146:fc02 with SMTP id h21-20020ac24db5000000b00513c146fc02mr1608830lfe.6.1711211734446; Sat, 23 Mar 2024 09:35:34 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFJL/p/GQpdfk5wRyXzyxJvayDH8XbjGUNtyXv1pcyxEjlM0deFhd8b8obXO+p54Ed9qnWkzQ== X-Received: by 2002:ac2:4db5:0:b0:513:c146:fc02 with SMTP id h21-20020ac24db5000000b00513c146fc02mr1608802lfe.6.1711211733033; Sat, 23 Mar 2024 09:35:33 -0700 (PDT) Received: from localhost (185.223.159.143.dyn.plus.net. [143.159.223.185]) by smtp.gmail.com with ESMTPSA id jw3-20020a170906e94300b00a474e6a5723sm60329ejb.118.2024.03.23.09.35.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Mar 2024 09:35:31 -0700 (PDT) From: Andrew Burgess To: gdb-patches@sourceware.org Cc: Andrew Burgess , hjl.tools@gmail.com, John Baldwin Subject: [PATCHv3 1/8] gdbserver: convert have_ptrace_getregset to a tribool Date: Sat, 23 Mar 2024 16:35:19 +0000 Message-Id: X-Mailer: git-send-email 2.25.4 In-Reply-To: References: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org 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 --- 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 ®s_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)