|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | /* | 
|  | * Shared Memory Communications over RDMA (SMC-R) and RoCE | 
|  | * | 
|  | * Manage RMBE | 
|  | * | 
|  | * Copyright IBM Corp. 2016 | 
|  | * | 
|  | * Author(s):  Ursula Braun <[email protected]> | 
|  | */ | 
|  |  | 
|  | #ifndef SMC_RX_H | 
|  | #define SMC_RX_H | 
|  |  | 
|  | #include <linux/socket.h> | 
|  | #include <linux/types.h> | 
|  |  | 
|  | #include "smc.h" | 
|  |  | 
|  | void smc_rx_init(struct smc_sock *smc); | 
|  |  | 
|  | int smc_rx_recvmsg(struct smc_sock *smc, struct msghdr *msg, | 
|  | struct pipe_inode_info *pipe, size_t len, int flags); | 
|  | int smc_rx_wait(struct smc_sock *smc, long *timeo, | 
|  | int (*fcrit)(struct smc_connection *conn)); | 
|  | static inline int smc_rx_data_available(struct smc_connection *conn) | 
|  | { | 
|  | return atomic_read(&conn->bytes_to_rcv); | 
|  | } | 
|  |  | 
|  | #endif /* SMC_RX_H */ |