1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2952310ccSUrsula Braun /*
3952310ccSUrsula Braun * Shared Memory Communications over RDMA (SMC-R) and RoCE
4952310ccSUrsula Braun *
5952310ccSUrsula Braun * Manage RMBE
6952310ccSUrsula Braun *
7952310ccSUrsula Braun * Copyright IBM Corp. 2016
8952310ccSUrsula Braun *
9952310ccSUrsula Braun * Author(s): Ursula Braun <ubraun@linux.vnet.ibm.com>
10952310ccSUrsula Braun */
11952310ccSUrsula Braun
12952310ccSUrsula Braun #ifndef SMC_RX_H
13952310ccSUrsula Braun #define SMC_RX_H
14952310ccSUrsula Braun
15952310ccSUrsula Braun #include <linux/socket.h>
16952310ccSUrsula Braun #include <linux/types.h>
17952310ccSUrsula Braun
18952310ccSUrsula Braun #include "smc.h"
19952310ccSUrsula Braun
20952310ccSUrsula Braun void smc_rx_init(struct smc_sock *smc);
219014db20SStefan Raspl
229014db20SStefan Raspl int smc_rx_recvmsg(struct smc_sock *smc, struct msghdr *msg,
239014db20SStefan Raspl struct pipe_inode_info *pipe, size_t len, int flags);
24*d433ccd9SGuangguan Wang int smc_rx_wait(struct smc_sock *smc, long *timeo, size_t peeked,
25*d433ccd9SGuangguan Wang int (*fcrit)(struct smc_connection *conn, size_t baseline));
smc_rx_data_available(struct smc_connection * conn,size_t peeked)26*d433ccd9SGuangguan Wang static inline int smc_rx_data_available(struct smc_connection *conn, size_t peeked)
27b51fa1b1SStefan Raspl {
28*d433ccd9SGuangguan Wang return atomic_read(&conn->bytes_to_rcv) - peeked;
29b51fa1b1SStefan Raspl }
30b51fa1b1SStefan Raspl
31952310ccSUrsula Braun #endif /* SMC_RX_H */
32