From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id YBXLLSbCK2Zj5TwAWB0awg (envelope-from ) for ; Fri, 26 Apr 2024 11:03:02 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=ajNRAYiR; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id B76D31E0CE; Fri, 26 Apr 2024 11:03:02 -0400 (EDT) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id A70D11E0C0 for ; Fri, 26 Apr 2024 11:03:00 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 637B6384601F for ; Fri, 26 Apr 2024 15:03:00 +0000 (GMT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 9C0673858C39 for ; Fri, 26 Apr 2024 15:02:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9C0673858C39 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 9C0673858C39 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714143738; cv=none; b=r7aJbpYBodNSgQqw8H0SXPgRtmRRwFIK/xWL9tAYunDAp3NOTVjjqIDNZ9m+m3d1av3fI+5CVdClhiMBxQB5Smwe5AZnTmnEss9NT1TExUmxJCi416loOf+JrXTxELOmQtgh2zryPZzMgE7dq1cNN4CxEaA8EOFs9DedkWUaSWE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714143738; c=relaxed/simple; bh=rk5rCJdkAz0rQ08JkGE8HgSK2gXWMGM7JXSDggVyj3c=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=gPFoYEBrRVSrUt4sEVBDbql7xkYmvfinmSSz9M5MEqo7aj73sTLpMUU2SWsy9SG2Smtf15Q9nQIRqYG0HpfIS7TMHMAkW8b0+RgQxOnztoouO2WciExWDdUTg0ByCkQL0xvOiEGQjW5BITyjttAJk5ScLiXlfUO/R1GO30jo9RA= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714143727; 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=YnLUqrCPFgs37uL+zBn3uKwKkMUwXBX9Z4c8kp9XO8s=; b=ajNRAYiR90PuMWRmN/wtsD1qe7AzVwG45a+8+RidweGEqyn/TX6xFk6KVDT7wZwERp99gZ Un8oRC9wJEUxPWrIvoAdnpWz2eps3WhIijIhym0YiBOg40JgpOES6yAN9W55xWlWMzGamm N5zEhQSQiSXnZLQjEqt00vSHB9HORxk= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-615-FNfzoovkMeix941b4H1Ycw-1; Fri, 26 Apr 2024 11:02:06 -0400 X-MC-Unique: FNfzoovkMeix941b4H1Ycw-1 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-416e58bdc0eso10016955e9.0 for ; Fri, 26 Apr 2024 08:02:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714143724; x=1714748524; 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=YnLUqrCPFgs37uL+zBn3uKwKkMUwXBX9Z4c8kp9XO8s=; b=KbRLxO/vkBbp0u8ncviL/qZ4XhBK2CkoQ7w1HsUSYtQ0ur5YtTqrj96RW0oSnguNLe 40jcvdFmdty1LNxHPstjf3bEjO4/2BHM3+Yfc9105vEezWVUkRhtTZEwQzuVS01lftMR 1cZXegkQsDV7Q6OFiPfwNq+k1kQNVjLYdM5G5VS4VEqc51ekz216ikrclu14KnlIe8Km HJe2ZGFGsXTYS7K1PmscwXzki3EU+NSLU+4nvT9RgHOaJrxuIQH3VOVbGWYZe+Jh133r bx8ThxgFNDdXV+mHgdOuQVcXUJhB03DWcosbbx7g7/IoXhyPIGWACesyadNvpJeUukeP e5KA== X-Gm-Message-State: AOJu0Yz3ik7t7vmAcv29kB1ekk9hNBbgIB/HfkcUdQMCGrve24P5RgeM BtjWQ0wiQl10IVvC3kpxDkEdYEy+il6y3cqN2G7uoZ5pRmnxaZZ2oXdqoHCCIjqNaPi/1XBQAim wXW0TismmcULsoJeYLVjPllpchAQ2H8hR2AZt6RC+G/Xii+f2oTX0t5AJORXz2LOOWF6LpkSej6 0BueOfi7hekCgPl5ihZcxPoVLpAKfgJppVcJWRDUUf/Sc= X-Received: by 2002:a05:600c:1c87:b0:41a:5958:d6ac with SMTP id k7-20020a05600c1c8700b0041a5958d6acmr2450246wms.21.1714143724004; Fri, 26 Apr 2024 08:02:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFKQ8vFx2ERa6zZHGrf4O/qgMt8jrHauGKfYv+xZxzIhk3bzQv1pB7izX24PlTOee6TVyTFqg== X-Received: by 2002:a05:600c:1c87:b0:41a:5958:d6ac with SMTP id k7-20020a05600c1c8700b0041a5958d6acmr2450211wms.21.1714143723517; Fri, 26 Apr 2024 08:02:03 -0700 (PDT) Received: from localhost (185.223.159.143.dyn.plus.net. [143.159.223.185]) by smtp.gmail.com with ESMTPSA id j13-20020a05600c190d00b00418a386c17bsm35031206wmq.12.2024.04.26.08.02.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Apr 2024 08:02:01 -0700 (PDT) From: Andrew Burgess To: gdb-patches@sourceware.org Cc: Andrew Burgess , felix.willgerodt@intel.com, John Baldwin Subject: [PATCHv5 02/11] gdbserver: convert have_ptrace_getregset to a tribool Date: Fri, 26 Apr 2024 16:01:46 +0100 Message-Id: <461c1ea75f7149b8d4ef431085cb7dbc0f9bd6b2.1714143669.git.aburgess@redhat.com> 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 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-Spam-Status: No, score=-12.2 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+public-inbox=simark.ca@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 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 ®s_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) -- 2.25.4