#include <linux/spinlock.h>
#include "smc.h"
#include "smc_wr.h"
#include "smc_cdc.h"
#include "smc_tx.h"
#include "smc_rx.h"
#include "smc_close.h"
#include "smc_ism.h"
static void smc_cdc_tx_handler(struct smc_wr_tx_pend_priv *pnd_snd,
struct smc_link *link,
enum ib_wc_status wc_status)
{ … }
int smc_cdc_get_free_slot(struct smc_connection *conn,
struct smc_link *link,
struct smc_wr_buf **wr_buf,
struct smc_rdma_wr **wr_rdma_buf,
struct smc_cdc_tx_pend **pend)
{ … }
static inline void smc_cdc_add_pending_send(struct smc_connection *conn,
struct smc_cdc_tx_pend *pend)
{ … }
int smc_cdc_msg_send(struct smc_connection *conn,
struct smc_wr_buf *wr_buf,
struct smc_cdc_tx_pend *pend)
{ … }
int smcr_cdc_msg_send_validation(struct smc_connection *conn,
struct smc_cdc_tx_pend *pend,
struct smc_wr_buf *wr_buf)
{ … }
static int smcr_cdc_get_slot_and_msg_send(struct smc_connection *conn)
{ … }
int smc_cdc_get_slot_and_msg_send(struct smc_connection *conn)
{ … }
void smc_cdc_wait_pend_tx_wr(struct smc_connection *conn)
{ … }
int smcd_cdc_msg_send(struct smc_connection *conn)
{ … }
static inline bool smc_cdc_before(u16 seq1, u16 seq2)
{ … }
static void smc_cdc_handle_urg_data_arrival(struct smc_sock *smc,
int *diff_prod)
{ … }
static void smc_cdc_msg_validate(struct smc_sock *smc, struct smc_cdc_msg *cdc,
struct smc_link *link)
{ … }
static void smc_cdc_msg_recv_action(struct smc_sock *smc,
struct smc_cdc_msg *cdc)
{ … }
static void smc_cdc_msg_recv(struct smc_sock *smc, struct smc_cdc_msg *cdc)
{ … }
static void smcd_cdc_rx_tsklet(struct tasklet_struct *t)
{ … }
void smcd_cdc_rx_init(struct smc_connection *conn)
{ … }
static void smc_cdc_rx_handler(struct ib_wc *wc, void *buf)
{ … }
static struct smc_wr_rx_handler smc_cdc_rx_handlers[] = …;
int __init smc_cdc_init(void)
{ … }