From patchwork Tue Mar 5 17:00:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Burgess X-Patchwork-Id: 86823 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 10F05385800C for ; Tue, 5 Mar 2024 17:01:08 +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 352143858D20 for ; Tue, 5 Mar 2024 17:00:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 352143858D20 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 352143858D20 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=1709658036; cv=none; b=SxPApz5BfWmSo0H7KDXiRr+pH8PxWn7LvG5yty/Iye2peU1Jfc56P3qFKGlmlN7AsupD4A1xfHA+w4KC+IcFam2s4bMNlJwgJARc+og3JO/uabU/1SwF2b24yms5OpXLDNA4ShTiF3beBr2IOrOJLJ6XAw6IFu9qpcLQGKIil3A= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709658036; c=relaxed/simple; bh=DPNramscNL1WdEhJAM9Tt/xtG0cGZN4H3qfwzMKH1ns=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=QYpNbokMUwgzpin/qoRFyQFcGh1MVNMFUYN4vrrwz2/FWMIfmD/nhc3M7Vuwi5IuKrGGe2xzsMYAExtyoXKN41yT7RjNh7x6xR5vu9EPjE3NIz5Y9yOij5wO6lRlD20BRYJQKUbt1RnsoJAvE3xL/aUxIpT0uG+D/Mvx9YK5x88= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1709658033; 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=ceYBdM0LCcpy8bDpXJnPJUnU0rGleVF/tiJ5HyPajLU=; b=FQmWnlAFJ9g5fV4NJYSsZElNrkQ28LsRr6RNwbYC+2rybsMx+dc303xGZRjlOfEG12NIdn zelHwrMpLn0QTNHBrkjom9LmdxM1VZe2J5KKyjwUegeK3qjjHdnxzNb1W+CKtpoT8QPb3a ELoFiptYGYfCDQBpJlVQc7wwCIowLd4= Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-240-yL37AWjmNzCcvNjfkRO3bw-1; Tue, 05 Mar 2024 12:00:30 -0500 X-MC-Unique: yL37AWjmNzCcvNjfkRO3bw-1 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-a45b35386bbso9188366b.1 for ; Tue, 05 Mar 2024 09:00:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709658028; x=1710262828; 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=ceYBdM0LCcpy8bDpXJnPJUnU0rGleVF/tiJ5HyPajLU=; b=pbFzZ7+AmqEiOZOVqilmuJ1lHaikRm/Y/ZI1oXOyEFKdhwKLjI/FMyJ463G6o/WPl2 ocs/rSfMmSczkexAdcEwOl4TxLnxDkpz9u5EaNu1C4uz1HA1wdux9Rpby5OHI/90PyBZ 1ulkXaqWjbuOUM/4xrCg3rDTA1kicxG4AkkUUIZl6OuKNZHNoxd8vGSUAfJxuBlX5fSe KquNrFUB2XXkyBdlW4aAafhBHxqCX2FU3tdPRxWGqlfEZKAemZ5/2MXOb65k6oDGsbAp RDgZxmSj6vN9Ah37nSPFQouXSL8/wEm14Ws7g8zytjvdGLW8uTcRiwlYbTFDCf8PQq4H hdwQ== X-Gm-Message-State: AOJu0YwGE84yP9oIZYaXnmmP6P1X94uxcix3rBOREvwiphC3FKS06V3u 6EmYDE88hweMpUPJSJQtUGEB+a7ojdiYvMVfu4i0KvKNXd4W3AGUBcJzDzbrRfP1HH6UeVHbeg/ s9rlNrDy7iD3F5/ZzbKQprPfW+BA/bR//pBrSKQuhxaPTYc0+q4GAFdTkVPbDnkrsql4RqaDiWg IK1eCP/xxyysNe1O2JT7MG7IOHMZwajuu2LnqtQYBNJYs= X-Received: by 2002:a17:906:d156:b0:a41:392d:e11c with SMTP id br22-20020a170906d15600b00a41392de11cmr10736832ejb.26.1709658028617; Tue, 05 Mar 2024 09:00:28 -0800 (PST) X-Google-Smtp-Source: AGHT+IGplxxPeFfM0IoXZ9cXqIYBsKPxd3PWObu8kgYT+7pgQWlXHfGuiIPbpiZvaKPdsQB+5LFVbA== X-Received: by 2002:a17:906:d156:b0:a41:392d:e11c with SMTP id br22-20020a170906d15600b00a41392de11cmr10736821ejb.26.1709658028212; Tue, 05 Mar 2024 09:00:28 -0800 (PST) Received: from localhost (185.223.159.143.dyn.plus.net. [143.159.223.185]) by smtp.gmail.com with ESMTPSA id os26-20020a170906af7a00b00a450b817705sm3340867ejb.154.2024.03.05.09.00.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Mar 2024 09:00:26 -0800 (PST) From: Andrew Burgess To: gdb-patches@sourceware.org Cc: Andrew Burgess Subject: [PATCHv2 1/7] gdbserver: convert have_ptrace_getregset to a tribool Date: Tue, 5 Mar 2024 17:00:16 +0000 Message-Id: <98d3c669f728dd2cfb601d4f09eff13475aac7ca.1709657954.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 X-Spam-Status: No, score=-12.3 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, T_SCC_BODY_TEXT_LINE 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. --- 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 3af0a009052..0a3bd2c8670 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 @@ -951,7 +951,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)