162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Shared Memory Communications over RDMA (SMC-R) and RoCE 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Manage RMBE 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * Copyright IBM Corp. 2016 862306a36Sopenharmony_ci * 962306a36Sopenharmony_ci * Author(s): Ursula Braun <ubraun@linux.vnet.ibm.com> 1062306a36Sopenharmony_ci */ 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#ifndef SMC_RX_H 1362306a36Sopenharmony_ci#define SMC_RX_H 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#include <linux/socket.h> 1662306a36Sopenharmony_ci#include <linux/types.h> 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#include "smc.h" 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_civoid smc_rx_init(struct smc_sock *smc); 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciint smc_rx_recvmsg(struct smc_sock *smc, struct msghdr *msg, 2362306a36Sopenharmony_ci struct pipe_inode_info *pipe, size_t len, int flags); 2462306a36Sopenharmony_ciint smc_rx_wait(struct smc_sock *smc, long *timeo, 2562306a36Sopenharmony_ci int (*fcrit)(struct smc_connection *conn)); 2662306a36Sopenharmony_cistatic inline int smc_rx_data_available(struct smc_connection *conn) 2762306a36Sopenharmony_ci{ 2862306a36Sopenharmony_ci return atomic_read(&conn->bytes_to_rcv); 2962306a36Sopenharmony_ci} 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci#endif /* SMC_RX_H */ 32