From patchwork Sun Feb 14 13:51:28 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Sokolovsky X-Patchwork-Id: 79285 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 o1EDpg90031225 for ; Sun, 14 Feb 2010 13:51:42 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758522Ab0BNNvc (ORCPT ); Sun, 14 Feb 2010 08:51:32 -0500 Received: from mail.mellanox.co.il ([194.90.237.43]:53833 "EHLO mellanox.co.il" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754366Ab0BNNvc (ORCPT ); Sun, 14 Feb 2010 08:51:32 -0500 Received: from Internal Mail-Server by MTLPINE1 (envelope-from vlad@dev.mellanox.co.il) with SMTP; 14 Feb 2010 15:51:27 +0200 Received: from localhost ([10.4.1.80]) by mtlexch01.mtl.com with Microsoft SMTPSVC(6.0.3790.3959); Sun, 14 Feb 2010 15:51:27 +0200 Date: Sun, 14 Feb 2010 15:51:28 +0200 From: Vladimir Sokolovsky To: Roland Dreier Cc: linux-rdma Subject: [PATCH V2 1/2] IB/core: Add support for enhanced atomic operations Message-ID: <20100214135128.GA7607@vlad-laptop> Reply-To: Vladimir Sokolovsky MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.17+20080114 (2008-01-14) X-OriginalArrivalTime: 14 Feb 2010 13:51:27.0339 (UTC) FILETIME=[CDC6D3B0:01CAAD7C] X-TM-AS-Product-Ver: SMEX-8.0.0.1181-6.000.1038-17192.007 X-TM-AS-Result: No--2.446500-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]); Sun, 14 Feb 2010 13:51:42 +0000 (UTC) diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index 09509ed..338cff1 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_ATOMIC_MASKED_CMP_AND_SWP, + IB_WR_ATOMIC_MASKED_FETCH_AND_ADD, }; enum ib_send_flags { @@ -732,6 +737,8 @@ struct ib_send_wr { u64 compare_add; u64 swap; u32 rkey; + u64 compare_add_mask; + u64 swap_mask; } atomic; struct { struct ib_ah *ah;