From patchwork Wed Jul 13 21:00:11 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Sergey Fedorov X-Patchwork-Id: 71974 Delivered-To: patches@linaro.org Received: by 10.140.29.52 with SMTP id a49csp1196313qga; Wed, 13 Jul 2016 14:00:31 -0700 (PDT) X-Received: by 10.46.0.17 with SMTP id 17mr4997240lja.54.1468443631532; Wed, 13 Jul 2016 14:00:31 -0700 (PDT) Return-Path: Received: from mail-lf0-x22f.google.com (mail-lf0-x22f.google.com. [2a00:1450:4010:c07::22f]) by mx.google.com with ESMTPS id r130si818047lfr.14.2016.07.13.14.00.31 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Jul 2016 14:00:31 -0700 (PDT) Received-SPF: pass (google.com: domain of sergey.fedorov@linaro.org designates 2a00:1450:4010:c07::22f as permitted sender) client-ip=2a00:1450:4010:c07::22f; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: domain of sergey.fedorov@linaro.org designates 2a00:1450:4010:c07::22f as permitted sender) smtp.mailfrom=sergey.fedorov@linaro.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: by mail-lf0-x22f.google.com with SMTP id h129so48274385lfh.1 for ; Wed, 13 Jul 2016 14:00:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DgifITxFs7rVZ1UpO+I4mfZPxS02zrAfkcir+qtUtEY=; b=EJVQ5s4hYM9+o5dpkdLQWcEvXPa9olODVZcbAE0/4p0fN0l89O8Nnx0kzSA1J0xsY6 A9dR7Fmyai3ouZgRFa11B41QQZuL3kZ1pjxcJVzFHt7hpNYXOf8iM6lW+OiYXYp7sWcv KVEvOD31iXhP7T5XT5+m6Hdbh231H5J0Hbbgc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DgifITxFs7rVZ1UpO+I4mfZPxS02zrAfkcir+qtUtEY=; b=PqUWoyw64cwibSRQMlKNQYvDCTa6Mcj0L8dvk5lcRr9ksNIIl/vQV5R9kLF71YyGdX VzFtF0QCRWjvTEHr39w5tkew3CLU1XmYvRIYoLN5G7xpvdpfsoI9gy+O2BwDdPA3dBbx EYP1Wc2ewqH5LDYO6KtcJm1cK8lexsAsG3sTnLBwV4dDSup+ggieK6jgUE60ECFv8dbr p/MUt7eUDcCGVhO7yEF00KBZI/jglo00I1cgNgfBsYgl97luKmdrh9qHCFjjzKk964z0 ztUnBceZ8CYhntvPcG/NkEcc9muF04yKXtYDeYJ9a1LyM4dkVS2+Y/Kl+p81BIDn2Hnw /64A== X-Gm-Message-State: ALyK8tK90EwjLtqGbjynX1dVY27AwAcUQEE2RBD3eOj6QxmsmuOfwCS7S9tboFP6aYNBvzhXATY= X-Received: by 10.25.154.10 with SMTP id c10mr4668209lfe.72.1468443631223; Wed, 13 Jul 2016 14:00:31 -0700 (PDT) Return-Path: Received: from sergey-laptop.Dlink (broadband-46-188-120-37.2com.net. [46.188.120.37]) by smtp.gmail.com with ESMTPSA id 16sm152403lja.31.2016.07.13.14.00.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 13 Jul 2016 14:00:29 -0700 (PDT) From: Sergey Fedorov To: qemu-devel@nongnu.org Cc: patches@linaro.org, serge.fdrv@gmail.com, =?UTF-8?q?Alex=20Benn=C3=A9e?= , MTTCG Devel , =?UTF-8?B?S09OUkFEIEZyw6lkw6lyaWM=?= , Alvise Rigo , "Emilio G. Cota" , Paolo Bonzini , Richard Henderson , Peter Maydell , Sergey Fedorov , Eric Blake Subject: [PATCH v3 01/12] atomic: introduce atomic_dec_fetch. Date: Thu, 14 Jul 2016 00:00:11 +0300 Message-Id: <1468443622-17368-2-git-send-email-sergey.fedorov@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1468443622-17368-1-git-send-email-sergey.fedorov@linaro.org> References: <1468443622-17368-1-git-send-email-sergey.fedorov@linaro.org> MIME-Version: 1.0 From: Alex Bennée Useful for counting down. Signed-off-by: Alex Bennée Signed-off-by: Sergey Fedorov --- include/qemu/atomic.h | 4 ++++ 1 file changed, 4 insertions(+) -- 1.9.1 diff --git a/include/qemu/atomic.h b/include/qemu/atomic.h index 7a590969b59f..8ac9ca7f457a 100644 --- a/include/qemu/atomic.h +++ b/include/qemu/atomic.h @@ -162,6 +162,8 @@ #define atomic_fetch_and(ptr, n) __atomic_fetch_and(ptr, n, __ATOMIC_SEQ_CST) #define atomic_fetch_or(ptr, n) __atomic_fetch_or(ptr, n, __ATOMIC_SEQ_CST) +#define atomic_dec_fetch(ptr) __atomic_sub_fetch(ptr, 1, __ATOMIC_SEQ_CST) + /* And even shorter names that return void. */ #define atomic_inc(ptr) ((void) __atomic_fetch_add(ptr, 1, __ATOMIC_SEQ_CST)) #define atomic_dec(ptr) ((void) __atomic_fetch_sub(ptr, 1, __ATOMIC_SEQ_CST)) @@ -357,6 +359,8 @@ #define atomic_fetch_or __sync_fetch_and_or #define atomic_cmpxchg __sync_val_compare_and_swap +#define atomic_dec_fetch(ptr) __sync_sub_and_fetch(ptr, 1) + /* And even shorter names that return void. */ #define atomic_inc(ptr) ((void) __sync_fetch_and_add(ptr, 1)) #define atomic_dec(ptr) ((void) __sync_fetch_and_add(ptr, -1))