/*
 *  IBM eServer eHCA Infiniband device driver for Linux on POWER
 *
 *  pSeries interface definitions
 *
 *  Authors: Waleri Fomin <fomin@de.ibm.com>
 *           Christoph Raisch <raisch@de.ibm.com>
 *
 *  Copyright (c) 2005 IBM Corporation
 *
 *  All rights reserved.
 *
 *  This source code is distributed under a dual license of GPL v2.0 and OpenIB
 *  BSD.
 *
 * OpenIB BSD License
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this
 * list of conditions and the following disclaimer.
 *
 * Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials
 * provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef __EHCA_CLASSES_PSERIES_H__
#define __EHCA_CLASSES_PSERIES_H__

#include "hcp_phyp.h"
#include "ipz_pt_fn.h"


struct ehca_pfqp {
	struct ipz_qpt sqpt;
	struct ipz_qpt rqpt;
};

struct ehca_pfcq {
	struct ipz_qpt qpt;
	u32 cqnr;
};

struct ehca_pfeq {
	struct ipz_qpt qpt;
	struct h_galpa galpa;
	u32 eqnr;
};

struct ipz_adapter_handle {
	u64 handle;
};

struct ipz_cq_handle {
	u64 handle;
};

struct ipz_eq_handle {
	u64 handle;
};

struct ipz_qp_handle {
	u64 handle;
};
struct ipz_mrmw_handle {
	u64 handle;
};

struct ipz_pd {
	u32 value;
};

struct hcp_modify_qp_control_block {
	u32 qkey;                      /* 00 */
	u32 rdd;                       /* reliable datagram domain */
	u32 send_psn;                  /* 02 */
	u32 receive_psn;               /* 03 */
	u32 prim_phys_port;            /* 04 */
	u32 alt_phys_port;             /* 05 */
	u32 prim_p_key_idx;            /* 06 */
	u32 alt_p_key_idx;             /* 07 */
	u32 rdma_atomic_ctrl;          /* 08 */
	u32 qp_state;                  /* 09 */
	u32 reserved_10;               /* 10 */
	u32 rdma_nr_atomic_resp_res;   /* 11 */
	u32 path_migration_state;      /* 12 */
	u32 rdma_atomic_outst_dest_qp; /* 13 */
	u32 dest_qp_nr;                /* 14 */
	u32 min_rnr_nak_timer_field;   /* 15 */
	u32 service_level;             /* 16 */
	u32 send_grh_flag;             /* 17 */
	u32 retry_count;               /* 18 */
	u32 timeout;                   /* 19 */
	u32 path_mtu;                  /* 20 */
	u32 max_static_rate;           /* 21 */
	u32 dlid;                      /* 22 */
	u32 rnr_retry_count;           /* 23 */
	u32 source_path_bits;          /* 24 */
	u32 traffic_class;             /* 25 */
	u32 hop_limit;                 /* 26 */
	u32 source_gid_idx;            /* 27 */
	u32 flow_label;                /* 28 */
	u32 reserved_29;               /* 29 */
	union {                        /* 30 */
		u64 dw[2];
		u8 byte[16];
	} dest_gid;
	u32 service_level_al;          /* 34 */
	u32 send_grh_flag_al;          /* 35 */
	u32 retry_count_al;            /* 36 */
	u32 timeout_al;                /* 37 */
	u32 max_static_rate_al;        /* 38 */
	u32 dlid_al;                   /* 39 */
	u32 rnr_retry_count_al;        /* 40 */
	u32 source_path_bits_al;       /* 41 */
	u32 traffic_class_al;          /* 42 */
	u32 hop_limit_al;              /* 43 */
	u32 source_gid_idx_al;         /* 44 */
	u32 flow_label_al;             /* 45 */
	u32 reserved_46;               /* 46 */
	u32 reserved_47;               /* 47 */
	union {                        /* 48 */
		u64 dw[2];
		u8 byte[16];
	} dest_gid_al;
	u32 max_nr_outst_send_wr;      /* 52 */
	u32 max_nr_outst_recv_wr;      /* 53 */
	u32 disable_ete_credit_check;  /* 54 */
	u32 qp_number;                 /* 55 */
	u64 send_queue_handle;         /* 56 */
	u64 recv_queue_handle;         /* 58 */
	u32 actual_nr_sges_in_sq_wqe;  /* 60 */
	u32 actual_nr_sges_in_rq_wqe;  /* 61 */
	u32 qp_enable;                 /* 62 */
	u32 curr_srq_limit;            /* 63 */
	u64 qp_aff_asyn_ev_log_reg;    /* 64 */
	u64 shared_rq_hndl;            /* 66 */
	u64 trigg_doorbell_qp_hndl;    /* 68 */
	u32 reserved_70_127[58];       /* 70 */
};

#define MQPCB_MASK_QKEY                         EHCA_BMASK_IBM(0,0)
#define MQPCB_MASK_SEND_PSN                     EHCA_BMASK_IBM(2,2)
#define MQPCB_MASK_RECEIVE_PSN                  EHCA_BMASK_IBM(3,3)
#define MQPCB_MASK_PRIM_PHYS_PORT               EHCA_BMASK_IBM(4,4)
#define MQPCB_PRIM_PHYS_PORT                    EHCA_BMASK_IBM(24,31)
#define MQPCB_MASK_ALT_PHYS_PORT                EHCA_BMASK_IBM(5,5)
#define MQPCB_MASK_PRIM_P_KEY_IDX               EHCA_BMASK_IBM(6,6)
#define MQPCB_PRIM_P_KEY_IDX                    EHCA_BMASK_IBM(24,31)
#define MQPCB_MASK_ALT_P_KEY_IDX                EHCA_BMASK_IBM(7,7)
#define MQPCB_MASK_RDMA_ATOMIC_CTRL             EHCA_BMASK_IBM(8,8)
#define MQPCB_MASK_QP_STATE                     EHCA_BMASK_IBM(9,9)
#define MQPCB_QP_STATE                          EHCA_BMASK_IBM(24,31)
#define MQPCB_MASK_RDMA_NR_ATOMIC_RESP_RES      EHCA_BMASK_IBM(11,11)
#define MQPCB_MASK_PATH_MIGRATION_STATE         EHCA_BMASK_IBM(12,12)
#define MQPCB_MASK_RDMA_ATOMIC_OUTST_DEST_QP    EHCA_BMASK_IBM(13,13)
#define MQPCB_MASK_DEST_QP_NR                   EHCA_BMASK_IBM(14,14)
#define MQPCB_MASK_MIN_RNR_NAK_TIMER_FIELD      EHCA_BMASK_IBM(15,15)
#define MQPCB_MASK_SERVICE_LEVEL                EHCA_BMASK_IBM(16,16)
#define MQPCB_MASK_SEND_GRH_FLAG                EHCA_BMASK_IBM(17,17)
#define MQPCB_MASK_RETRY_COUNT                  EHCA_BMASK_IBM(18,18)
#define MQPCB_MASK_TIMEOUT                      EHCA_BMASK_IBM(19,19)
#define MQPCB_MASK_PATH_MTU                     EHCA_BMASK_IBM(20,20)
#define MQPCB_PATH_MTU                          EHCA_BMASK_IBM(24,31)
#define MQPCB_MASK_MAX_STATIC_RATE              EHCA_BMASK_IBM(21,21)
#define MQPCB_MAX_STATIC_RATE                   EHCA_BMASK_IBM(24,31)
#define MQPCB_MASK_DLID                         EHCA_BMASK_IBM(22,22)
#define MQPCB_DLID                              EHCA_BMASK_IBM(16,31)
#define MQPCB_MASK_RNR_RETRY_COUNT              EHCA_BMASK_IBM(23,23)
#define MQPCB_RNR_RETRY_COUNT                   EHCA_BMASK_IBM(29,31)
#define MQPCB_MASK_SOURCE_PATH_BITS             EHCA_BMASK_IBM(24,24)
#define MQPCB_SOURCE_PATH_BITS                  EHCA_BMASK_IBM(25,31)
#define MQPCB_MASK_TRAFFIC_CLASS                EHCA_BMASK_IBM(25,25)
#define MQPCB_TRAFFIC_CLASS                     EHCA_BMASK_IBM(24,31)
#define MQPCB_MASK_HOP_LIMIT                    EHCA_BMASK_IBM(26,26)
#define MQPCB_HOP_LIMIT                         EHCA_BMASK_IBM(24,31)
#define MQPCB_MASK_SOURCE_GID_IDX               EHCA_BMASK_IBM(27,27)
#define MQPCB_SOURCE_GID_IDX                    EHCA_BMASK_IBM(24,31)
#define MQPCB_MASK_FLOW_LABEL                   EHCA_BMASK_IBM(28,28)
#define MQPCB_FLOW_LABEL                        EHCA_BMASK_IBM(12,31)
#define MQPCB_MASK_DEST_GID                     EHCA_BMASK_IBM(30,30)
#define MQPCB_MASK_SERVICE_LEVEL_AL             EHCA_BMASK_IBM(31,31)
#define MQPCB_SERVICE_LEVEL_AL                  EHCA_BMASK_IBM(28,31)
#define MQPCB_MASK_SEND_GRH_FLAG_AL             EHCA_BMASK_IBM(32,32)
#define MQPCB_SEND_GRH_FLAG_AL                  EHCA_BMASK_IBM(31,31)
#define MQPCB_MASK_RETRY_COUNT_AL               EHCA_BMASK_IBM(33,33)
#define MQPCB_RETRY_COUNT_AL                    EHCA_BMASK_IBM(29,31)
#define MQPCB_MASK_TIMEOUT_AL                   EHCA_BMASK_IBM(34,34)
#define MQPCB_TIMEOUT_AL                        EHCA_BMASK_IBM(27,31)
#define MQPCB_MASK_MAX_STATIC_RATE_AL           EHCA_BMASK_IBM(35,35)
#define MQPCB_MAX_STATIC_RATE_AL                EHCA_BMASK_IBM(24,31)
#define MQPCB_MASK_DLID_AL                      EHCA_BMASK_IBM(36,36)
#define MQPCB_DLID_AL                           EHCA_BMASK_IBM(16,31)
#define MQPCB_MASK_RNR_RETRY_COUNT_AL           EHCA_BMASK_IBM(37,37)
#define MQPCB_RNR_RETRY_COUNT_AL                EHCA_BMASK_IBM(29,31)
#define MQPCB_MASK_SOURCE_PATH_BITS_AL          EHCA_BMASK_IBM(38,38)
#define MQPCB_SOURCE_PATH_BITS_AL               EHCA_BMASK_IBM(25,31)
#define MQPCB_MASK_TRAFFIC_CLASS_AL             EHCA_BMASK_IBM(39,39)
#define MQPCB_TRAFFIC_CLASS_AL                  EHCA_BMASK_IBM(24,31)
#define MQPCB_MASK_HOP_LIMIT_AL                 EHCA_BMASK_IBM(40,40)
#define MQPCB_HOP_LIMIT_AL                      EHCA_BMASK_IBM(24,31)
#define MQPCB_MASK_SOURCE_GID_IDX_AL            EHCA_BMASK_IBM(41,41)
#define MQPCB_SOURCE_GID_IDX_AL                 EHCA_BMASK_IBM(24,31)
#define MQPCB_MASK_FLOW_LABEL_AL                EHCA_BMASK_IBM(42,42)
#define MQPCB_FLOW_LABEL_AL                     EHCA_BMASK_IBM(12,31)
#define MQPCB_MASK_DEST_GID_AL                  EHCA_BMASK_IBM(44,44)
#define MQPCB_MASK_MAX_NR_OUTST_SEND_WR         EHCA_BMASK_IBM(45,45)
#define MQPCB_MAX_NR_OUTST_SEND_WR              EHCA_BMASK_IBM(16,31)
#define MQPCB_MASK_MAX_NR_OUTST_RECV_WR         EHCA_BMASK_IBM(46,46)
#define MQPCB_MAX_NR_OUTST_RECV_WR              EHCA_BMASK_IBM(16,31)
#define MQPCB_MASK_DISABLE_ETE_CREDIT_CHECK     EHCA_BMASK_IBM(47,47)
#define MQPCB_DISABLE_ETE_CREDIT_CHECK          EHCA_BMASK_IBM(31,31)
#define MQPCB_QP_NUMBER                         EHCA_BMASK_IBM(8,31)
#define MQPCB_MASK_QP_ENABLE                    EHCA_BMASK_IBM(48,48)
#define MQPCB_QP_ENABLE                         EHCA_BMASK_IBM(31,31)
#define MQPCB_MASK_CURR_SQR_LIMIT               EHCA_BMASK_IBM(49,49)
#define MQPCB_CURR_SQR_LIMIT                    EHCA_BMASK_IBM(15,31)
#define MQPCB_MASK_QP_AFF_ASYN_EV_LOG_REG       EHCA_BMASK_IBM(50,50)
#define MQPCB_MASK_SHARED_RQ_HNDL               EHCA_BMASK_IBM(51,51)

#endif /* __EHCA_CLASSES_PSERIES_H__ */
