diff options
Diffstat (limited to 'net/smc/smc_tx.h')
-rw-r--r-- | net/smc/smc_tx.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/net/smc/smc_tx.h b/net/smc/smc_tx.h new file mode 100644 index 000000000..07e6ad762 --- /dev/null +++ b/net/smc/smc_tx.h | |||
@@ -0,0 +1,39 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
2 | /* | ||
3 | * Shared Memory Communications over RDMA (SMC-R) and RoCE | ||
4 | * | ||
5 | * Manage send buffer | ||
6 | * | ||
7 | * Copyright IBM Corp. 2016 | ||
8 | * | ||
9 | * Author(s): Ursula Braun <ubraun@linux.vnet.ibm.com> | ||
10 | */ | ||
11 | |||
12 | #ifndef SMC_TX_H | ||
13 | #define SMC_TX_H | ||
14 | |||
15 | #include <linux/socket.h> | ||
16 | #include <linux/types.h> | ||
17 | |||
18 | #include "smc.h" | ||
19 | #include "smc_cdc.h" | ||
20 | |||
21 | static inline int smc_tx_prepared_sends(struct smc_connection *conn) | ||
22 | { | ||
23 | union smc_host_cursor sent, prep; | ||
24 | |||
25 | smc_curs_copy(&sent, &conn->tx_curs_sent, conn); | ||
26 | smc_curs_copy(&prep, &conn->tx_curs_prep, conn); | ||
27 | return smc_curs_diff(conn->sndbuf_desc->len, &sent, &prep); | ||
28 | } | ||
29 | |||
30 | void smc_tx_work(struct work_struct *work); | ||
31 | void smc_tx_init(struct smc_sock *smc); | ||
32 | int smc_tx_sendmsg(struct smc_sock *smc, struct msghdr *msg, size_t len); | ||
33 | int smc_tx_sndbuf_nonempty(struct smc_connection *conn); | ||
34 | void smc_tx_sndbuf_nonfull(struct smc_sock *smc); | ||
35 | void smc_tx_consumer_update(struct smc_connection *conn, bool force); | ||
36 | int smcd_tx_ism_write(struct smc_connection *conn, void *data, size_t len, | ||
37 | u32 offset, int signal); | ||
38 | |||
39 | #endif /* SMC_TX_H */ | ||