1 /* 2 * Copyright (c) 2005 Voltaire Inc. All rights reserved. 3 * Copyright (c) 2002-2005, Network Appliance, Inc. All rights reserved. 4 * Copyright (c) 1999-2005, Mellanox Technologies, Inc. All rights reserved. 5 * Copyright (c) 2005-2006 Intel Corporation. All rights reserved. 6 * 7 * This software is available to you under a choice of one of two 8 * licenses. You may choose to be licensed under the terms of the GNU 9 * General Public License (GPL) Version 2, available from the file 10 * COPYING in the main directory of this source tree, or the 11 * OpenIB.org BSD license below: 12 * 13 * Redistribution and use in source and binary forms, with or 14 * without modification, are permitted provided that the following 15 * conditions are met: 16 * 17 * - Redistributions of source code must retain the above 18 * copyright notice, this list of conditions and the following 19 * disclaimer. 20 * 21 * - Redistributions in binary form must reproduce the above 22 * copyright notice, this list of conditions and the following 23 * disclaimer in the documentation and/or other materials 24 * provided with the distribution. 25 * 26 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 27 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 28 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 29 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 30 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 31 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 32 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 33 * SOFTWARE. 34 */ 35 36 #ifndef _CMA_PRIV_H 37 #define _CMA_PRIV_H 38 39 struct rdma_id_private { 40 struct rdma_cm_id id; 41 42 struct rdma_bind_list *bind_list; 43 struct hlist_node node; 44 struct list_head list; /* listen_any_list or cma_device.list */ 45 struct list_head listen_list; /* per device listens */ 46 struct cma_device *cma_dev; 47 struct list_head mc_list; 48 49 int internal_id; 50 enum rdma_cm_state state; 51 spinlock_t lock; 52 struct mutex qp_mutex; 53 54 struct completion comp; 55 atomic_t refcount; 56 struct mutex handler_mutex; 57 58 int backlog; 59 int timeout_ms; 60 struct ib_sa_query *query; 61 int query_id; 62 union { 63 struct ib_cm_id *ib; 64 struct iw_cm_id *iw; 65 } cm_id; 66 67 u32 seq_num; 68 u32 qkey; 69 u32 qp_num; 70 pid_t owner; 71 u32 options; 72 u8 srq; 73 u8 tos; 74 bool tos_set; 75 u8 reuseaddr; 76 u8 afonly; 77 enum ib_gid_type gid_type; 78 }; 79 #endif /* _CMA_PRIV_H */ 80