IB/core: Add reserved values to enums for low-level driver use
authorJack Morgenstein <jackm@dev.mellanox.co.il>
Sun, 7 Jul 2013 14:25:52 +0000 (17:25 +0300)
committerRoland Dreier <roland@purestorage.com>
Mon, 8 Jul 2013 02:21:21 +0000 (19:21 -0700)
Continue the approach taken by commit d2b57063e4a ("IB/core: Reserve
bits in enum ib_qp_create_flags for low-level driver use") and add
reserved entries to the ib_qp_type and ib_wr_opcode enums.  Low-level
drivers can then define macros to use these reserved values, giving
proper names to the macros for readability.  Also add a range of
reserved flags to enum ib_send_flags.

The mlx5 IB driver uses the new additions.

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <roland@purestorage.com>
include/rdma/ib_verbs.h

index 98cc4b29fc5b530e087d87e9b509a4c934dadec9..645c3cedce9ca7abb69c13769a05aff02d4b5dd4 100644 (file)
@@ -610,7 +610,21 @@ enum ib_qp_type {
        IB_QPT_RAW_PACKET = 8,
        IB_QPT_XRC_INI = 9,
        IB_QPT_XRC_TGT,
-       IB_QPT_MAX
+       IB_QPT_MAX,
+       /* Reserve a range for qp types internal to the low level driver.
+        * These qp types will not be visible at the IB core layer, so the
+        * IB_QPT_MAX usages should not be affected in the core layer
+        */
+       IB_QPT_RESERVED1 = 0x1000,
+       IB_QPT_RESERVED2,
+       IB_QPT_RESERVED3,
+       IB_QPT_RESERVED4,
+       IB_QPT_RESERVED5,
+       IB_QPT_RESERVED6,
+       IB_QPT_RESERVED7,
+       IB_QPT_RESERVED8,
+       IB_QPT_RESERVED9,
+       IB_QPT_RESERVED10,
 };
 
 enum ib_qp_create_flags {
@@ -766,6 +780,19 @@ enum ib_wr_opcode {
        IB_WR_MASKED_ATOMIC_CMP_AND_SWP,
        IB_WR_MASKED_ATOMIC_FETCH_AND_ADD,
        IB_WR_BIND_MW,
+       /* reserve values for low level drivers' internal use.
+        * These values will not be used at all in the ib core layer.
+        */
+       IB_WR_RESERVED1 = 0xf0,
+       IB_WR_RESERVED2,
+       IB_WR_RESERVED3,
+       IB_WR_RESERVED4,
+       IB_WR_RESERVED5,
+       IB_WR_RESERVED6,
+       IB_WR_RESERVED7,
+       IB_WR_RESERVED8,
+       IB_WR_RESERVED9,
+       IB_WR_RESERVED10,
 };
 
 enum ib_send_flags {
@@ -773,7 +800,11 @@ enum ib_send_flags {
        IB_SEND_SIGNALED        = (1<<1),
        IB_SEND_SOLICITED       = (1<<2),
        IB_SEND_INLINE          = (1<<3),
-       IB_SEND_IP_CSUM         = (1<<4)
+       IB_SEND_IP_CSUM         = (1<<4),
+
+       /* reserve bits 26-31 for low level drivers' internal use */
+       IB_SEND_RESERVED_START  = (1 << 26),
+       IB_SEND_RESERVED_END    = (1 << 31),
 };
 
 struct ib_sge {