[HCA] Support 32-bit UVP on 64-bit KVP
authorftillier <ftillier@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 14 Feb 2006 21:07:57 +0000 (21:07 +0000)
committerftillier <ftillier@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 14 Feb 2006 21:07:57 +0000 (21:07 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@216 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

hw/mt23108/user/hca_data.h
hw/mt23108/vapi/Hca/hcahal/hh.h
hw/mt23108/vapi/Hca/hcahal/hh_common.h
hw/mt23108/vapi/Hca/hcahal/tavor/thh_common.h
hw/mt23108/vapi/Hca/hcahal/tavor/thh_hob/thh_hob.c
hw/mt23108/vapi/Hca/hcahal/tavor/thh_hob/thh_hob.h

index 9efcea1..8a53c5d 100644 (file)
@@ -35,7 +35,7 @@
 \r
 typedef struct _ib_ca\r
 {\r
-       HH_hca_dev_t            *p_hca_ul_info;\r
+       HH_hca_dev_t            * __ptr64 p_hca_ul_info;\r
        void                            *p_hca_ul_resources;\r
        ib_ca_attr_t            *p_hca_attr;\r
        HHUL_hca_hndl_t         hhul_hca_hndl;\r
index 3f436c1..e4f280a 100644 (file)
@@ -62,27 +62,47 @@ typedef enum
  * Device information (public object/context)\r
  *\r
  */\r
-\r
+#pragma warning( disable : 4201 )\r
 typedef struct HH_hca_dev_st {\r
-  char               *dev_desc;         /* Device description (name, etc.) */\r
-  char               *user_lib;         /* User level library (dyn-link) */\r
+  char               * __ptr64 dev_desc;         /* Device description (name, etc.) */\r
+  char               * __ptr64 user_lib;         /* User level library (dyn-link) */\r
   u_int32_t           vendor_id;        /* IEEE's 24 bit Device Vendor ID */\r
   u_int32_t           dev_id;           /* Device ID */\r
   u_int32_t           hw_ver;           /* Hardware version (step/rev)  */\r
   u_int64_t           fw_ver;\r
-  struct hh_if_ops*   if_ops;           /* Interface operations */\r
+  struct hh_if_ops* __ptr64  if_ops;           /* Interface operations */\r
 \r
                                         /* Size (bytes) of user-level ...  */\r
+  union\r
+  {\r
   MT_size_t       hca_ul_resources_sz;  /* .. resources context for an HCA */\r
+  void* __ptr64                resv0;\r
+  };\r
+  union\r
+  {\r
   MT_size_t       pd_ul_resources_sz;   /* .. resources context for a PD   */\r
+  void* __ptr64                resv1;\r
+  };\r
+  union\r
+  {\r
   MT_size_t       cq_ul_resources_sz;   /* .. resources context for a CQ   */\r
+  void* __ptr64                resv2;\r
+  };\r
+  union\r
+  {\r
   MT_size_t       srq_ul_resources_sz;  /* .. resources context for a SRQ  */\r
+  void* __ptr64                resv3;\r
+  };\r
+  union\r
+  {\r
   MT_size_t       qp_ul_resources_sz;   /* .. resources context for a QP   */\r
+  void* __ptr64                resv4;\r
+  };\r
 \r
-  void*               device;           /* Device private data */\r
+  void* __ptr64              device;           /* Device private data */\r
   HH_hca_status_t     status;           /* Device Status */\r
 } HH_hca_dev_t;\r
-\r
+#pragma warning( default : 4201 )\r
 \r
 typedef enum {\r
     HH_TPT_PAGE,\r
index 886ed6b..6e3eff8 100644 (file)
@@ -44,7 +44,7 @@
  *\r
  */\r
 \r
-typedef struct HH_hca_dev_st*  HH_hca_hndl_t;\r
+typedef struct HH_hca_dev_st* __ptr64 HH_hca_hndl_t;\r
 typedef struct HHUL_sr_wqe_st  HHUL_sr_wqe_t;\r
 typedef struct HHUL_rr_wqe_st  HHUL_rr_wqe_t;\r
 \r
index 6778cd0..2e9943c 100644 (file)
@@ -54,6 +54,8 @@ typedef  u_int32_t            THH_uar_index_t;
 typedef struct THH_uar_st     *THH_uar_t;\r
 \r
 \r
+#pragma warning( disable : 4201 )\r
+\r
 /* VERSION INFORMATION: used in order to retrieve major version numbers \r
    in order to deal with differences in different versions. */\r
 typedef struct THH_ver_info_st {\r
@@ -68,12 +70,16 @@ typedef struct THH_hca_ul_resources_st {
   HH_hca_hndl_t hh_hca_hndl;\r
   THH_ver_info_t version;\r
   THH_uar_index_t uar_index;\r
+  union\r
+  {\r
   MT_virt_addr_t   uar_map;\r
+  void* __ptr64                resv0;\r
+  };\r
   /* HCA capabilities to validate or use in THHUL */\r
   MT_bool         priv_ud_av; /* Privileged UD AV are enforced ? */\r
   u_int32_t       log2_mpt_size;\r
-  char *av_ddr_base;\r
-  char *av_host_base;\r
+  char * __ptr64 av_ddr_base;\r
+  char * __ptr64 av_host_base;\r
 \r
   u_int32_t       max_qp_ous_wr;       /* Maximum Number of oustanding WR on any WQ.         */             \r
   u_int32_t       max_srq_ous_wr;       /* Maximum Number of oustanding WR on any WQ.         */             \r
@@ -90,34 +96,71 @@ typedef struct THH_pd_ul_resources_st {
      * needed.  Therefore, the udavm_buf_size value is the size of the actual udavm\r
      * table, not the size of the malloc'ed buffer.\r
      */\r
+       union\r
+       {\r
     MT_virt_addr_t   udavm_buf;            /* IN */\r
+       void* __ptr64   resv0;\r
+       };\r
+       union\r
+       {\r
     MT_size_t     udavm_buf_sz;         /* IN */\r
+       void* __ptr64   resv1;\r
+       };\r
     HH_pdm_pd_flags_t  pd_flags;      /* IN - if non-zero, is a PD for a special QP*/\r
     VAPI_lkey_t   udavm_buf_memkey;     /* OUT - set by THH_uldm */\r
 } THH_pd_ul_resources_t;\r
 \r
 typedef struct\r
 {\r
+       union\r
+       {\r
   MT_virt_addr_t      cqe_buf;     /* CQE buffer virtual addr. CQE size aligned */\r
+  void* __ptr64        resv0;\r
+       };\r
+       union\r
+       {\r
   MT_size_t        cqe_buf_sz;  /* Buffer size in bytes (mult of CQE size) */\r
+  void* __ptr64 resv1;\r
+       };\r
   THH_uar_index_t  uar_index;   /* Index of UAR used for this CQ. */\r
   u_int32_t        new_producer_index;     /* New producer index after "resize_cq" (OUT)*/\r
 } THH_cq_ul_resources_t;\r
 \r
 typedef struct \r
 {\r
+       union\r
+       {\r
   MT_virt_addr_t      wqes_buf;     /* WQEs buffer virtual address */\r
+  void* __ptr64        resv0;\r
+       };\r
+       union\r
+       {\r
   MT_size_t        wqes_buf_sz;  /* Buffer size in bytes */\r
+  void* __ptr64        resv1;\r
+       };\r
   THH_uar_index_t  uar_index;    /* index of UAR used for this QP */\r
   /*  ER: Not used anywhere: MT_virt_addr_t      uar_map;    */ /* Address in user space of UAR */\r
 } THH_qp_ul_resources_t;\r
 \r
 typedef struct \r
 {\r
+       union\r
+       {\r
   MT_virt_addr_t      wqes_buf;     /* WQEs buffer virtual address */\r
+  void* __ptr64        resv0;\r
+       };\r
+       union\r
+       {\r
   MT_size_t           wqes_buf_sz;  /* Buffer size in bytes */\r
+  void* __ptr64        resv1;\r
+       };\r
+       union\r
+       {\r
   MT_size_t           wqe_sz;       /* WQE (descriptor) size in bytes */\r
+  void* __ptr64        resv2;\r
+       };\r
   THH_uar_index_t     uar_index;    /* index of UAR used for this QP */\r
 } THH_srq_ul_resources_t;\r
 \r
+#pragma warning( default : 4201 )\r
 #endif  /* H_THH_COMMON_H */\r
index 8ffbe7a..e514476 100644 (file)
@@ -5000,7 +5000,7 @@ HH_ret_t THH_hob_free_pd(HH_hca_hndl_t hca_hndl, HH_pd_hndl_t pd_num)
 /******************************************************************************\r
  *  Function:     THH_hob_alloc_rdd <==> THH_eecm_alloc_rdd\r
  *****************************************************************************/\r
-HH_ret_t THH_hob_alloc_rdd(HH_hca_dev_t *hh_dev_p, \r
+HH_ret_t THH_hob_alloc_rdd(HH_hca_hndl_t hh_dev_p, \r
                                  HH_rdd_hndl_t *rdd_p)\r
 {\r
 #if 0\r
@@ -5039,7 +5039,7 @@ HH_ret_t THH_hob_alloc_rdd(HH_hca_dev_t *hh_dev_p,
 /******************************************************************************\r
  *  Function:     THH_hob_free_rdd <==> THH_eecm_free_rdd\r
  *****************************************************************************/\r
-HH_ret_t THH_hob_free_rdd(HH_hca_dev_t *hh_dev_p, HH_rdd_hndl_t rdd)\r
+HH_ret_t THH_hob_free_rdd(HH_hca_hndl_t hh_dev_p, HH_rdd_hndl_t rdd)\r
 {\r
 #if 0\r
   THH_hob_t  thh_hob_p;\r
index d2b5cf0..dc51771 100644 (file)
@@ -336,8 +336,8 @@ DLL_API HH_ret_t THH_hob_alloc_ul_res(HH_hca_hndl_t hca_hndl,MOSAL_protection_ct
 DLL_API HH_ret_t THH_hob_free_ul_res(HH_hca_hndl_t hca_hndl,void *hca_ul_resources_p);\r
 DLL_API HH_ret_t THH_hob_alloc_pd(HH_hca_hndl_t hca_hndl, MOSAL_protection_ctx_t prot_ctx, void * pd_ul_resources_p,HH_pd_hndl_t *pd_num_p);\r
 DLL_API HH_ret_t THH_hob_free_pd(HH_hca_hndl_t hca_hndl, HH_pd_hndl_t pd_num);\r
-DLL_API HH_ret_t THH_hob_alloc_rdd(HH_hca_dev_t *hh_dev_p, HH_rdd_hndl_t *rdd_p);\r
-DLL_API HH_ret_t THH_hob_free_rdd(HH_hca_dev_t *hh_dev_p, HH_rdd_hndl_t rdd);\r
+DLL_API HH_ret_t THH_hob_alloc_rdd(HH_hca_hndl_t hh_dev_p, HH_rdd_hndl_t *rdd_p);\r
+DLL_API HH_ret_t THH_hob_free_rdd(HH_hca_hndl_t hh_dev_p, HH_rdd_hndl_t rdd);\r
 DLL_API HH_ret_t THH_hob_create_ud_av(HH_hca_hndl_t hca_hndl,HH_pd_hndl_t pd,VAPI_ud_av_t *av_p, HH_ud_av_hndl_t *ah_p);\r
 DLL_API HH_ret_t THH_hob_modify_ud_av(HH_hca_hndl_t hca_hndl, HH_ud_av_hndl_t ah,VAPI_ud_av_t *av_p);\r
 DLL_API HH_ret_t THH_hob_query_ud_av(HH_hca_hndl_t hca_hndl, HH_ud_av_hndl_t ah,VAPI_ud_av_t *av_p);\r