18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Shared Memory Communications over RDMA (SMC-R) and RoCE
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Socket Closing
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * Copyright IBM Corp. 2016
88c2ecf20Sopenharmony_ci *
98c2ecf20Sopenharmony_ci * Author(s):  Ursula Braun <ubraun@linux.vnet.ibm.com>
108c2ecf20Sopenharmony_ci */
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci#ifndef SMC_CLOSE_H
138c2ecf20Sopenharmony_ci#define SMC_CLOSE_H
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci#include <linux/workqueue.h>
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci#include "smc.h"
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci#define SMC_MAX_STREAM_WAIT_TIMEOUT		(2 * HZ)
208c2ecf20Sopenharmony_ci#define SMC_CLOSE_SOCK_PUT_DELAY		HZ
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_civoid smc_close_wake_tx_prepared(struct smc_sock *smc);
238c2ecf20Sopenharmony_ciint smc_close_active(struct smc_sock *smc);
248c2ecf20Sopenharmony_ciint smc_close_shutdown_write(struct smc_sock *smc);
258c2ecf20Sopenharmony_civoid smc_close_init(struct smc_sock *smc);
268c2ecf20Sopenharmony_civoid smc_clcsock_release(struct smc_sock *smc);
278c2ecf20Sopenharmony_ciint smc_close_abort(struct smc_connection *conn);
288c2ecf20Sopenharmony_civoid smc_close_active_abort(struct smc_sock *smc);
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci#endif /* SMC_CLOSE_H */
31