From patchwork Wed Mar 10 15:58:13 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Sokolovsky X-Patchwork-Id: 84628 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o2AFwpIh001031 for ; Wed, 10 Mar 2010 15:58:52 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756829Ab0CJP6k (ORCPT ); Wed, 10 Mar 2010 10:58:40 -0500 Received: from mail.mellanox.co.il ([194.90.237.43]:49962 "EHLO mellanox.co.il" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1756828Ab0CJP6i (ORCPT ); Wed, 10 Mar 2010 10:58:38 -0500 Received: from Internal Mail-Server by MTLPINE1 (envelope-from vlad@dev.mellanox.co.il) with SMTP; 10 Mar 2010 17:58:34 +0200 Received: from localhost ([10.4.1.80]) by mtlexch01.mtl.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 10 Mar 2010 17:58:33 +0200 Date: Wed, 10 Mar 2010 17:58:13 +0200 From: Vladimir Sokolovsky To: rdreier@cisco.com Cc: linux-rdma@vger.kernel.org Subject: [PATCH V3 1/2] IB/core: Add support for enhanced atomic operations Message-ID: <20100310155813.GA25993@vlad-laptop> Reply-To: vlad@dev.mellanox.co.il MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.17+20080114 (2008-01-14) X-OriginalArrivalTime: 10 Mar 2010 15:58:33.0766 (UTC) FILETIME=[89653C60:01CAC06A] X-TM-AS-Product-Ver: SMEX-8.0.0.1181-6.000.1038-17242.000 X-TM-AS-Result: No--2.854700-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Wed, 10 Mar 2010 15:58:52 +0000 (UTC) diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index 09509ed..53b16a6 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h @@ -105,6 +105,7 @@ enum ib_device_cap_flags { IB_DEVICE_UD_TSO = (1<<19), IB_DEVICE_MEM_MGT_EXTENSIONS = (1<<21), IB_DEVICE_BLOCK_MULTICAST_LOOPBACK = (1<<22), + IB_DEVICE_MASKED_ATOMIC = (1<<23), }; enum ib_atomic_cap { @@ -467,6 +468,8 @@ enum ib_wc_opcode { IB_WC_LSO, IB_WC_LOCAL_INV, IB_WC_FAST_REG_MR, + IB_WC_MASKED_COMP_SWAP, + IB_WC_MASKED_FETCH_ADD, /* * Set value of IB_WC_RECV so consumers can test if a completion is a * receive by testing (opcode & IB_WC_RECV). @@ -689,6 +692,8 @@ enum ib_wr_opcode { IB_WR_RDMA_READ_WITH_INV, IB_WR_LOCAL_INV, IB_WR_FAST_REG_MR, + IB_WR_MASKED_ATOMIC_CMP_AND_SWP, + IB_WR_MASKED_ATOMIC_FETCH_AND_ADD, }; enum ib_send_flags { @@ -731,6 +736,8 @@ struct ib_send_wr { u64 remote_addr; u64 compare_add; u64 swap; + u64 compare_add_mask; + u64 swap_mask; u32 rkey; } atomic; struct {