linux/drivers/infiniband/hw/mlx4/user.h
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved.
   3 * Copyright (c) 2007, 2008 Mellanox Technologies. All rights reserved.
   4 *
   5 * This software is available to you under a choice of one of two
   6 * licenses.  You may choose to be licensed under the terms of the GNU
   7 * General Public License (GPL) Version 2, available from the file
   8 * COPYING in the main directory of this source tree, or the
   9 * OpenIB.org BSD license below:
  10 *
  11 *     Redistribution and use in source and binary forms, with or
  12 *     without modification, are permitted provided that the following
  13 *     conditions are met:
  14 *
  15 *      - Redistributions of source code must retain the above
  16 *        copyright notice, this list of conditions and the following
  17 *        disclaimer.
  18 *
  19 *      - Redistributions in binary form must reproduce the above
  20 *        copyright notice, this list of conditions and the following
  21 *        disclaimer in the documentation and/or other materials
  22 *        provided with the distribution.
  23 *
  24 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  25 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  26 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  27 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
  28 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
  29 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  30 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  31 * SOFTWARE.
  32 */
  33
  34#ifndef MLX4_IB_USER_H
  35#define MLX4_IB_USER_H
  36
  37#include <linux/types.h>
  38
  39/*
  40 * Increment this value if any changes that break userspace ABI
  41 * compatibility are made.
  42 */
  43
  44#define MLX4_IB_UVERBS_NO_DEV_CAPS_ABI_VERSION  3
  45#define MLX4_IB_UVERBS_ABI_VERSION              4
  46
  47/*
  48 * Make sure that all structs defined in this file remain laid out so
  49 * that they pack the same way on 32-bit and 64-bit architectures (to
  50 * avoid incompatibility between 32-bit userspace and 64-bit kernels).
  51 * In particular do not use pointer types -- pass pointers in __u64
  52 * instead.
  53 */
  54
  55struct mlx4_ib_alloc_ucontext_resp_v3 {
  56        __u32   qp_tab_size;
  57        __u16   bf_reg_size;
  58        __u16   bf_regs_per_page;
  59};
  60
  61struct mlx4_ib_alloc_ucontext_resp {
  62        __u32   dev_caps;
  63        __u32   qp_tab_size;
  64        __u16   bf_reg_size;
  65        __u16   bf_regs_per_page;
  66        __u32   cqe_size;
  67};
  68
  69struct mlx4_ib_alloc_pd_resp {
  70        __u32   pdn;
  71        __u32   reserved;
  72};
  73
  74struct mlx4_ib_create_cq {
  75        __u64   buf_addr;
  76        __u64   db_addr;
  77};
  78
  79struct mlx4_ib_create_cq_resp {
  80        __u32   cqn;
  81        __u32   reserved;
  82};
  83
  84struct mlx4_ib_resize_cq {
  85        __u64   buf_addr;
  86};
  87
  88struct mlx4_ib_create_srq {
  89        __u64   buf_addr;
  90        __u64   db_addr;
  91};
  92
  93struct mlx4_ib_create_srq_resp {
  94        __u32   srqn;
  95        __u32   reserved;
  96};
  97
  98struct mlx4_ib_create_qp {
  99        __u64   buf_addr;
 100        __u64   db_addr;
 101        __u8    log_sq_bb_count;
 102        __u8    log_sq_stride;
 103        __u8    sq_no_prefetch;
 104        __u8    reserved[5];
 105};
 106
 107#endif /* MLX4_IB_USER_H */
 108