From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by sourceware.org (Postfix) with ESMTPS id 2CA533877039 for ; Tue, 17 Mar 2020 09:41:29 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584438086; bh=QPevG6+UmoNp9/j6F4fk44tiByqzyoe1EU5/3OfNc1o=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=ZwWfqIVEIjfIrRocY6LJI/pqeJruzKZX/FHgkqv4rEN4STyNdcsEu5OYj7CnGnuYD jvIlNT8vlvtXovkvOohemKeMvlruYUiXna1kObxNDUOfgy3HkvMvCiHNYNKiQUSxpP zPOaA96TEdoO9QD3j/qH7BG25bp/hFhmYZ1MK7xc= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.localdomain ([89.79.191.25]) by mail.gmx.com (mrgmx005 [212.227.17.184]) with ESMTPSA (Nemesis) id 1M7b2d-1jDIBX0jID-0081fq; Tue, 17 Mar 2020 10:41:26 +0100 From: Kamil Rytarowski To: gdb-patches@sourceware.org Subject: [PATCH] Add support for NetBSD threads in sparc-nat.c Date: Tue, 17 Mar 2020 10:40:46 +0100 Message-Id: <20200317094046.713-1-n54@gmx.com> X-Mailer: git-send-email 2.25.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:de1lyVBehcFgIPPSzBP5K3SmKOzKgzMi2b4D8jd6lA/sVAFl45L vs3YSA5VHrgusZ4tP2Pw5eoxgik0wkJUJxabHuU9SMiyShXPFJlk0Lu/NHgGl8vtpkyv+MT a9Vf6JQZJ1QUB3KerK5qgHu2jtHuIr97gt/7XngDFu8gZXFRGeKt6dSqrRQO9OVlDyohisA +xsV35wwP251orjTTk3pg== X-UI-Out-Filterresults: notjunk:1;V03:K0:dmc0E3rYWMc=:sNVNJbfbakAEY7qPVYtoXc BOLLTpKJz7gXcCE1JSG6CrJDpJ6Gq6sMfY8QAZx5lQ3Iak/2C/BHsEGyhW4f41KyWkCf9Txgm PtAD+5pVDocBnx7UxcuKd8CzNTY5GmsTJsVPJ8ITT+Vj+BMsxaVBsbin5ZQgANlfSpaxRUsoH 3o19jLrDetFOUt1JypKs1MWtdw2LYGRdK0eSqFtyl0UfLAJpv3WB/C+ofhkKjXviJrMnVWWA3 Z1e+ND94AwQHm5CgnusdQXLRxbKGgUPT3DL1iuOaJa6oQMzA9uLaYQZC9vDB+7H5yy1sLz0XL fRKua9BeFDRywSLvZTXuvTzJlMK/kWsCt10uuPYV0S/74vB0GkR+Jh4rPqEsJlpAjGUpSmU7w vD8jjzfcbut1MAslXNFCvm3BJ6M4lJpwTUAEm/64XaK6OwuqB3iZkXUKNQyPUQydKfxJCteEG lMjaKMr8F+ce/DD1+InDBDFyPlrfiNQ8DslqW3vUFTWgjTDTxknmB1wLT0X9R5aOFPY97sKxu fJQgv/+shiQpnHVyU44GDJ3+gVk4qXF5pmaWJw5ETF3n1lZxvrfa3iuiA4nkxtsL2Oe9qBn8B kOvsqvx1jj6EXE2RTS4xfkmkzf3IdNgKARbt/DcD63RpNjilIf1A4CtasdSzgx8Mfe7m4F3/P B2KSnuBR7/ZlOwQ10VF+dg6oJuahQf1ZPmL4IcR/OJuMZJz05JTR7rpMd+c5ocd6IpJ/qVeqq 7ANHyEAoNwgPeJ/jxlvLlIGkgkGOSIfVFozQlMAZ6yEmFVgSXLa+XWBPC1Zq4u7JgG0v0pJ7W PgOorwl+o/f57+sG4kb4HT1Q7oMO37RT/HvnDZIvcey6mXtd63+uO8CWZfUekcL+HcW6iL4Gx Rwrm16zogY0rSKjsxIJIcfjPPYNqigWBM2V8cHx3k4bha+ZzhujwyKIP9q8ZBIe5fTDk7CN09 g8nsi4nVrxmoHEO9S91vWdeWcsySEvzkiPUcprHn7LIZrXz7lz6rmHwfmUO+bsvHkx8RBZZ/r 3QftFCv9UKkJXAZ4INHeR9IxH/ZTGYQhH5tZUjOBZE8Ofb38JoIvwWm4uAESXfw4HMfx+o7vH 9pXgPSsslh+VTSjRTYm4gCwtTWi0IKzNnbY+W+snxDobYFgGalAeHXSUUaFpcD+TAx4/Tzn1V 1yQ9knTAOhWYTlVrl8wy1MSedk2FPz44RsksJqsFy6qWXrbvDXqqaUyvIC8KGpywQMyjU= X-Spam-Status: No, score=-25.4 required=5.0 tests=DKIM_SIGNED, DKIM_VALID, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2020 09:41:30 -0000 NetBSD ptrace(2) accepts thread id (LWP) as the 4th argument for threads. This file is still shared with other targets that use different 4th argume= nt type, that is always unused. =2D-- gdb/sparc-nat.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/gdb/sparc-nat.c b/gdb/sparc-nat.c index dff0f521565..9743bc3f3a0 100644 =2D-- a/gdb/sparc-nat.c +++ b/gdb/sparc-nat.c @@ -78,6 +78,14 @@ typedef struct fp_status fpregset_t; #define PTRACE_SETFPREGS PT_SETFPREGS #endif +/* Support for NetBSD threads. */ +#ifdef __NetBSD__ +# define gdb_ptrace(request, pid, addr) \ + ptrace (request, pid, addr, regcache->ptid ().lwp ()) +#else +# define gdb_ptrace(request, pid, addr) ptrace (request, pid, addr, 0) +#endif + /* Register set description. */ const struct sparc_gregmap *sparc_gregmap; const struct sparc_fpregmap *sparc_fpregmap; @@ -166,7 +174,7 @@ sparc_fetch_inferior_registers (struct regcache *regca= che, int regnum) { gregset_t regs; - if (ptrace (PTRACE_GETREGS, pid, (PTRACE_TYPE_ARG3) ®s, 0) =3D= =3D -1) + if (gdb_ptrace (PTRACE_GETREGS, pid, (PTRACE_TYPE_ARG3) ®s) =3D= =3D -1) perror_with_name (_("Couldn't get registers")); sparc_supply_gregset (sparc_gregmap, regcache, -1, ®s); @@ -178,7 +186,7 @@ sparc_fetch_inferior_registers (struct regcache *regca= che, int regnum) { fpregset_t fpregs; - if (ptrace (PTRACE_GETFPREGS, pid, (PTRACE_TYPE_ARG3) &fpregs, 0) = =3D=3D -1) + if (gdb_ptrace (PTRACE_GETFPREGS, pid, (PTRACE_TYPE_ARG3) &fpregs) = =3D=3D -1) perror_with_name (_("Couldn't get floating point status")); sparc_supply_fpregset (sparc_fpregmap, regcache, -1, &fpregs); @@ -199,12 +207,12 @@ sparc_store_inferior_registers (struct regcache *reg= cache, int regnum) { gregset_t regs; - if (ptrace (PTRACE_GETREGS, pid, (PTRACE_TYPE_ARG3) ®s, 0) =3D= =3D -1) + if (gdb_ptrace (PTRACE_GETREGS, pid, (PTRACE_TYPE_ARG3) ®s) =3D= =3D -1) perror_with_name (_("Couldn't get registers")); sparc_collect_gregset (sparc_gregmap, regcache, regnum, ®s); - if (ptrace (PTRACE_SETREGS, pid, (PTRACE_TYPE_ARG3) ®s, 0) =3D= =3D -1) + if (gdb_ptrace (PTRACE_SETREGS, pid, (PTRACE_TYPE_ARG3) ®s) =3D= =3D -1) perror_with_name (_("Couldn't write registers")); /* Deal with the stack regs. */ @@ -225,7 +233,7 @@ sparc_store_inferior_registers (struct regcache *regca= che, int regnum) { fpregset_t fpregs, saved_fpregs; - if (ptrace (PTRACE_GETFPREGS, pid, (PTRACE_TYPE_ARG3) &fpregs, 0) = =3D=3D -1) + if (gdb_ptrace (PTRACE_GETFPREGS, pid, (PTRACE_TYPE_ARG3) &fpregs) = =3D=3D -1) perror_with_name (_("Couldn't get floating-point registers")); memcpy (&saved_fpregs, &fpregs, sizeof (fpregs)); @@ -237,8 +245,8 @@ sparc_store_inferior_registers (struct regcache *regca= che, int regnum) to write the registers if nothing changed. */ if (memcmp (&saved_fpregs, &fpregs, sizeof (fpregs)) !=3D 0) { - if (ptrace (PTRACE_SETFPREGS, pid, - (PTRACE_TYPE_ARG3) &fpregs, 0) =3D=3D -1) + if (gdb_ptrace (PTRACE_SETFPREGS, pid, + (PTRACE_TYPE_ARG3) &fpregs) =3D=3D -1) perror_with_name (_("Couldn't write floating-point registers")); } =2D- 2.25.0