RDMA/uverbs: Simplify UVERBS_ATTR family of macros
Instead of using a complex cascade of macros, just directly provide the initializer list each of the declarations is trying to create. Now that the macros are simplified this also reworks the uverbs_attr_spec to be friendly to older compilers by eliminating any unnamed structures/unions inside, and removing the duplication of some fields. The structure size remains at 16 bytes which was the original motivation for some of this oddness. Signed-off-by: Jason Gunthorpe <jgg@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
This commit is contained in:
@@ -1017,15 +1017,15 @@ static DECLARE_UVERBS_NAMED_METHOD(MLX5_IB_METHOD_DEVX_QUERY_UAR,
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY)));
|
||||
|
||||
static DECLARE_UVERBS_NAMED_METHOD(MLX5_IB_METHOD_DEVX_OTHER,
|
||||
&UVERBS_ATTR_PTR_IN_SZ(MLX5_IB_ATTR_DEVX_OTHER_CMD_IN,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_in_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO |
|
||||
UVERBS_ATTR_SPEC_F_ALLOC_AND_COPY)),
|
||||
&UVERBS_ATTR_PTR_OUT_SZ(MLX5_IB_ATTR_DEVX_OTHER_CMD_OUT,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_out_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO))
|
||||
&UVERBS_ATTR_PTR_IN(MLX5_IB_ATTR_DEVX_OTHER_CMD_IN,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_in_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO |
|
||||
UVERBS_ATTR_SPEC_F_ALLOC_AND_COPY)),
|
||||
&UVERBS_ATTR_PTR_OUT(MLX5_IB_ATTR_DEVX_OTHER_CMD_OUT,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_out_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO))
|
||||
);
|
||||
|
||||
static DECLARE_UVERBS_NAMED_METHOD(MLX5_IB_METHOD_DEVX_OBJ_CREATE,
|
||||
@@ -1033,15 +1033,15 @@ static DECLARE_UVERBS_NAMED_METHOD(MLX5_IB_METHOD_DEVX_OBJ_CREATE,
|
||||
MLX5_IB_OBJECT_DEVX_OBJ,
|
||||
UVERBS_ACCESS_NEW,
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY)),
|
||||
&UVERBS_ATTR_PTR_IN_SZ(MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_IN,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_in_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO |
|
||||
UVERBS_ATTR_SPEC_F_ALLOC_AND_COPY)),
|
||||
&UVERBS_ATTR_PTR_OUT_SZ(MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_out_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO)));
|
||||
&UVERBS_ATTR_PTR_IN(MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_IN,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_in_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO |
|
||||
UVERBS_ATTR_SPEC_F_ALLOC_AND_COPY)),
|
||||
&UVERBS_ATTR_PTR_OUT(MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_out_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO)));
|
||||
|
||||
static DECLARE_UVERBS_NAMED_METHOD(MLX5_IB_METHOD_DEVX_OBJ_DESTROY,
|
||||
&UVERBS_ATTR_IDR(MLX5_IB_ATTR_DEVX_OBJ_DESTROY_HANDLE,
|
||||
@@ -1054,30 +1054,30 @@ static DECLARE_UVERBS_NAMED_METHOD(MLX5_IB_METHOD_DEVX_OBJ_MODIFY,
|
||||
MLX5_IB_OBJECT_DEVX_OBJ,
|
||||
UVERBS_ACCESS_WRITE,
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY)),
|
||||
&UVERBS_ATTR_PTR_IN_SZ(MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_in_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO |
|
||||
UVERBS_ATTR_SPEC_F_ALLOC_AND_COPY)),
|
||||
&UVERBS_ATTR_PTR_OUT_SZ(MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_OUT,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_out_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO)));
|
||||
&UVERBS_ATTR_PTR_IN(MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_in_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO |
|
||||
UVERBS_ATTR_SPEC_F_ALLOC_AND_COPY)),
|
||||
&UVERBS_ATTR_PTR_OUT(MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_OUT,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_out_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO)));
|
||||
|
||||
static DECLARE_UVERBS_NAMED_METHOD(MLX5_IB_METHOD_DEVX_OBJ_QUERY,
|
||||
&UVERBS_ATTR_IDR(MLX5_IB_ATTR_DEVX_OBJ_QUERY_HANDLE,
|
||||
MLX5_IB_OBJECT_DEVX_OBJ,
|
||||
UVERBS_ACCESS_READ,
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY)),
|
||||
&UVERBS_ATTR_PTR_IN_SZ(MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_in_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO |
|
||||
UVERBS_ATTR_SPEC_F_ALLOC_AND_COPY)),
|
||||
&UVERBS_ATTR_PTR_OUT_SZ(MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_out_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO)));
|
||||
&UVERBS_ATTR_PTR_IN(MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_in_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO |
|
||||
UVERBS_ATTR_SPEC_F_ALLOC_AND_COPY)),
|
||||
&UVERBS_ATTR_PTR_OUT(MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT,
|
||||
UVERBS_ATTR_MIN_SIZE(MLX5_ST_SZ_BYTES(general_obj_out_cmd_hdr)),
|
||||
UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY |
|
||||
UVERBS_ATTR_SPEC_F_MIN_SZ_OR_ZERO)));
|
||||
|
||||
static DECLARE_UVERBS_GLOBAL_METHODS(MLX5_IB_OBJECT_DEVX,
|
||||
&UVERBS_METHOD(MLX5_IB_METHOD_DEVX_OTHER),
|
||||
|
Reference in New Issue
Block a user