1219820Sjeff/* 2219820Sjeff * Copyright (c) 2005 Network Appliance, Inc. All rights reserved. 3219820Sjeff * Copyright (c) 2005 Open Grid Computing, Inc. All rights reserved. 4219820Sjeff * 5219820Sjeff * This software is available to you under a choice of one of two 6219820Sjeff * licenses. You may choose to be licensed under the terms of the GNU 7219820Sjeff * General Public License (GPL) Version 2, available from the file 8219820Sjeff * COPYING in the main directory of this source tree, or the 9219820Sjeff * OpenIB.org BSD license below: 10219820Sjeff * 11219820Sjeff * Redistribution and use in source and binary forms, with or 12219820Sjeff * without modification, are permitted provided that the following 13219820Sjeff * conditions are met: 14219820Sjeff * 15219820Sjeff * - Redistributions of source code must retain the above 16219820Sjeff * copyright notice, this list of conditions and the following 17219820Sjeff * disclaimer. 18219820Sjeff * 19219820Sjeff * - Redistributions in binary form must reproduce the above 20219820Sjeff * copyright notice, this list of conditions and the following 21219820Sjeff * disclaimer in the documentation and/or other materials 22219820Sjeff * provided with the distribution. 23219820Sjeff * 24219820Sjeff * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 25219820Sjeff * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 26219820Sjeff * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 27219820Sjeff * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 28219820Sjeff * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 29219820Sjeff * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 30219820Sjeff * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31219820Sjeff * SOFTWARE. 32331772Shselasky * 33331772Shselasky * $FreeBSD: stable/11/sys/ofed/drivers/infiniband/core/iwcm.h 331772 2018-03-30 18:17:33Z hselasky $ 34219820Sjeff */ 35331772Shselasky 36219820Sjeff#ifndef IWCM_H 37219820Sjeff#define IWCM_H 38219820Sjeff 39219820Sjeffenum iw_cm_state { 40219820Sjeff IW_CM_STATE_IDLE, /* unbound, inactive */ 41219820Sjeff IW_CM_STATE_LISTEN, /* listen waiting for connect */ 42219820Sjeff IW_CM_STATE_CONN_RECV, /* inbound waiting for user accept */ 43219820Sjeff IW_CM_STATE_CONN_SENT, /* outbound waiting for peer accept */ 44219820Sjeff IW_CM_STATE_ESTABLISHED, /* established */ 45219820Sjeff IW_CM_STATE_CLOSING, /* disconnect */ 46219820Sjeff IW_CM_STATE_DESTROYING /* object being deleted */ 47219820Sjeff}; 48219820Sjeff 49219820Sjeffstruct iwcm_id_private { 50219820Sjeff struct iw_cm_id id; 51219820Sjeff enum iw_cm_state state; 52219820Sjeff unsigned long flags; 53219820Sjeff struct ib_qp *qp; 54219820Sjeff struct completion destroy_comp; 55219820Sjeff wait_queue_head_t connect_wait; 56219820Sjeff struct list_head work_list; 57219820Sjeff spinlock_t lock; 58219820Sjeff atomic_t refcount; 59219820Sjeff struct list_head work_free_list; 60219820Sjeff}; 61219820Sjeff 62331769Shselasky#define IWCM_F_DROP_EVENTS 1 63219820Sjeff#define IWCM_F_CONNECT_WAIT 2 64219820Sjeff 65219820Sjeff#endif /* IWCM_H */ 66