smc_tx.h 920 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * Shared Memory Communications over RDMA (SMC-R) and RoCE
  3. *
  4. * Manage send buffer
  5. *
  6. * Copyright IBM Corp. 2016
  7. *
  8. * Author(s): Ursula Braun <ubraun@linux.vnet.ibm.com>
  9. */
  10. #ifndef SMC_TX_H
  11. #define SMC_TX_H
  12. #include <linux/socket.h>
  13. #include <linux/types.h>
  14. #include "smc.h"
  15. #include "smc_cdc.h"
  16. static inline int smc_tx_prepared_sends(struct smc_connection *conn)
  17. {
  18. union smc_host_cursor sent, prep;
  19. smc_curs_write(&sent, smc_curs_read(&conn->tx_curs_sent, conn), conn);
  20. smc_curs_write(&prep, smc_curs_read(&conn->tx_curs_prep, conn), conn);
  21. return smc_curs_diff(conn->sndbuf_size, &sent, &prep);
  22. }
  23. void smc_tx_init(struct smc_sock *smc);
  24. int smc_tx_sendmsg(struct smc_sock *smc, struct msghdr *msg, size_t len);
  25. int smc_tx_sndbuf_nonempty(struct smc_connection *conn);
  26. void smc_tx_sndbuf_nonfull(struct smc_sock *smc);
  27. void smc_tx_consumer_update(struct smc_connection *conn);
  28. #endif /* SMC_TX_H */