2012-03-21 02:39:06 +04:00
/*******************************************************************
* This file is part of the Emulex RoCE Device Driver for *
* RoCE ( RDMA over Converged Ethernet ) adapters . *
* Copyright ( C ) 2008 - 2012 Emulex . All rights reserved . *
* EMULEX and SLI are trademarks of Emulex . *
* www . emulex . com *
* *
* This program is free software ; you can redistribute it and / or *
* modify it under the terms of version 2 of the GNU General *
* Public License as published by the Free Software Foundation . *
* This program is distributed in the hope that it will be useful . *
* ALL EXPRESS OR IMPLIED CONDITIONS , REPRESENTATIONS AND *
* WARRANTIES , INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY , *
* FITNESS FOR A PARTICULAR PURPOSE , OR NON - INFRINGEMENT , ARE *
* DISCLAIMED , EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD *
* TO BE LEGALLY INVALID . See the GNU General Public License for *
* more details , a copy of which can be found in the file COPYING *
* included with this package . *
*
* Contact Information :
* linux - drivers @ emulex . com
*
* Emulex
* 3333 Susan Street
* Costa Mesa , CA 92626
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# ifndef __OCRDMA_ABI_H__
# define __OCRDMA_ABI_H__
struct ocrdma_alloc_ucontext_resp {
u32 dev_id ;
u32 wqe_size ;
u32 max_inline_data ;
u32 dpp_wqe_size ;
u64 ah_tbl_page ;
u32 ah_tbl_len ;
u32 rsvd ;
u8 fw_ver [ 32 ] ;
u32 rqe_size ;
u64 rsvd1 ;
} __packed ;
/* user kernel communication data structures. */
struct ocrdma_alloc_pd_ureq {
u64 rsvd1 ;
} __packed ;
struct ocrdma_alloc_pd_uresp {
u32 id ;
u32 dpp_enabled ;
u32 dpp_page_addr_hi ;
u32 dpp_page_addr_lo ;
u64 rsvd1 ;
} __packed ;
struct ocrdma_create_cq_ureq {
u32 dpp_cq ;
u32 rsvd ;
} __packed ;
# define MAX_CQ_PAGES 8
struct ocrdma_create_cq_uresp {
u32 cq_id ;
u32 page_size ;
u32 num_pages ;
u32 max_hw_cqe ;
u64 page_addr [ MAX_CQ_PAGES ] ;
u64 db_page_addr ;
u32 db_page_size ;
u32 phase_change ;
u64 rsvd1 ;
u64 rsvd2 ;
} __packed ;
# define MAX_QP_PAGES 8
# define MAX_UD_AV_PAGES 8
struct ocrdma_create_qp_ureq {
u8 enable_dpp_cq ;
u8 rsvd ;
u16 dpp_cq_id ;
u32 rsvd1 ;
} ;
struct ocrdma_create_qp_uresp {
u16 qp_id ;
u16 sq_dbid ;
u16 rq_dbid ;
u16 resv0 ;
u32 sq_page_size ;
u32 rq_page_size ;
u32 num_sq_pages ;
u32 num_rq_pages ;
u64 sq_page_addr [ MAX_QP_PAGES ] ;
u64 rq_page_addr [ MAX_QP_PAGES ] ;
u64 db_page_addr ;
u32 db_page_size ;
u32 dpp_credit ;
u32 dpp_offset ;
u32 rsvd1 ;
u32 num_wqe_allocated ;
u32 num_rqe_allocated ;
u32 db_sq_offset ;
u32 db_rq_offset ;
u32 db_shift ;
u64 rsvd2 ;
u64 rsvd3 ;
} __packed ;
struct ocrdma_create_srq_uresp {
u16 rq_dbid ;
u16 resv0 ;
u32 resv1 ;
u32 rq_page_size ;
u32 num_rq_pages ;
u64 rq_page_addr [ MAX_QP_PAGES ] ;
u64 db_page_addr ;
u32 db_page_size ;
u32 num_rqe_allocated ;
u32 db_rq_offset ;
u32 db_shift ;
2012-05-23 19:32:07 +04:00
u64 rsvd2 ;
2012-03-21 02:39:06 +04:00
u64 rsvd3 ;
} __packed ;
# endif /* __OCRDMA_ABI_H__ */