From nobody Mon Feb 9 11:51:16 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 14948612470978.160276844140185; Mon, 15 May 2017 08:14:07 -0700 (PDT) Received: from localhost ([::1]:37335 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dAHhC-0001zl-Lz for importer@patchew.org; Mon, 15 May 2017 11:14:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38441) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dAHZj-0003sX-S6 for qemu-devel@nongnu.org; Mon, 15 May 2017 11:06:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dAHZf-0006e0-Tg for qemu-devel@nongnu.org; Mon, 15 May 2017 11:06:19 -0400 Received: from mx2.rt-rk.com ([89.216.37.149]:47055 helo=mail.rt-rk.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dAHZf-0006dS-N1 for qemu-devel@nongnu.org; Mon, 15 May 2017 11:06:15 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.rt-rk.com (Postfix) with ESMTP id 3877D1A459D; Mon, 15 May 2017 17:06:14 +0200 (CEST) Received: from rtrkw488-lin.domain.local (unknown [10.10.14.90]) by mail.rt-rk.com (Postfix) with ESMTPSA id 1FA631A4562; Mon, 15 May 2017 17:06:14 +0200 (CEST) X-Virus-Scanned: amavisd-new at rt-rk.com From: =?UTF-8?q?Milo=C5=A1=20Stojanovi=C4=87?= To: qemu-devel@nongnu.org, riku.voipio@iki.fi Date: Mon, 15 May 2017 16:59:51 +0200 Message-Id: <1494860396-24930-12-git-send-email-Milos.Stojanovic@rt-rk.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1494860396-24930-1-git-send-email-Milos.Stojanovic@rt-rk.com> References: <1494860396-24930-1-git-send-email-Milos.Stojanovic@rt-rk.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 89.216.37.149 Subject: [Qemu-devel] [PATCH v2 11/16] [RFC] linux-user: add target_sigdelset() and target_sigorset() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Miodrag.Dinic@rt-rk.com, laurent@vivier.eu, Petar.Jovanovic@rt-rk.com, Aleksandar.Markovic@rt-rk.com, yongbok.kim@imgtec.com, Milos.Stojanovic@rt-rk.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Add two inline functions that work with the signal set of the target. target_sigdelset() removes a signal from target_sigset_t. target_sigorset() creates a union of two target_sigset_t. These functions will be used for introducing support for tracking the target signal set. Functions for emptying and adding into a target signal set already exist so this commit will serve as a supplement. Signed-off-by: Milo=C5=A1 Stojanovi=C4=87 --- linux-user/signal.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/linux-user/signal.c b/linux-user/signal.c index 54c3be7..ae4da79 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -120,6 +120,12 @@ static inline void target_sigaddset(target_sigset_t *s= et, int signum) set->sig[signum / TARGET_NSIG_BPW] |=3D mask; } =20 +static inline void target_sigdelset(target_sigset_t *set, int signum) +{ + abi_ulong mask =3D (abi_ulong)1 << (--signum % TARGET_NSIG_BPW); + set->sig[signum / TARGET_NSIG_BPW] &=3D ~mask; +} + static inline int target_sigismember(const target_sigset_t *set, int signu= m) { signum--; @@ -127,6 +133,16 @@ static inline int target_sigismember(const target_sigs= et_t *set, int signum) return ((set->sig[signum / TARGET_NSIG_BPW] & mask) !=3D 0); } =20 +static inline void target_sigorset(target_sigset_t *set, + const target_sigset_t *left, + const target_sigset_t *right) +{ + int i; + for (i =3D 0; i < TARGET_NSIG_WORDS; i++) { + set->sig[i] =3D left->sig[i] | right->sig[i]; + } +} + static void host_to_target_sigset_internal(target_sigset_t *d, const sigset_t *s) { --=20 1.9.1