#include <linux/ceph/ceph_debug.h>
#include <linux/bvec.h>
#include <linux/crc32c.h>
#include <linux/net.h>
#include <linux/socket.h>
#include <net/sock.h>
#include <linux/ceph/ceph_features.h>
#include <linux/ceph/decode.h>
#include <linux/ceph/libceph.h>
#include <linux/ceph/messenger.h>
static char tag_msg = …;
static char tag_ack = …;
static char tag_keepalive = …;
static char tag_keepalive2 = …;
static int ceph_tcp_recvmsg(struct socket *sock, void *buf, size_t len)
{ … }
static int ceph_tcp_recvpage(struct socket *sock, struct page *page,
int page_offset, size_t length)
{ … }
static int ceph_tcp_sendmsg(struct socket *sock, struct kvec *iov,
size_t kvlen, size_t len, bool more)
{ … }
static int ceph_tcp_sendpage(struct socket *sock, struct page *page,
int offset, size_t size, int more)
{ … }
static void con_out_kvec_reset(struct ceph_connection *con)
{ … }
static void con_out_kvec_add(struct ceph_connection *con,
size_t size, void *data)
{ … }
static int con_out_kvec_skip(struct ceph_connection *con)
{ … }
static size_t sizeof_footer(struct ceph_connection *con)
{ … }
static void prepare_message_data(struct ceph_msg *msg, u32 data_len)
{ … }
static void prepare_write_message_footer(struct ceph_connection *con)
{ … }
static void prepare_write_message(struct ceph_connection *con)
{ … }
static void prepare_write_ack(struct ceph_connection *con)
{ … }
static void prepare_write_seq(struct ceph_connection *con)
{ … }
static void prepare_write_keepalive(struct ceph_connection *con)
{ … }
static int get_connect_authorizer(struct ceph_connection *con)
{ … }
static void prepare_write_banner(struct ceph_connection *con)
{ … }
static void __prepare_write_connect(struct ceph_connection *con)
{ … }
static int prepare_write_connect(struct ceph_connection *con)
{ … }
static int write_partial_kvec(struct ceph_connection *con)
{ … }
static int write_partial_message_data(struct ceph_connection *con)
{ … }
static int write_partial_skip(struct ceph_connection *con)
{ … }
static void prepare_read_banner(struct ceph_connection *con)
{ … }
static void prepare_read_connect(struct ceph_connection *con)
{ … }
static void prepare_read_ack(struct ceph_connection *con)
{ … }
static void prepare_read_seq(struct ceph_connection *con)
{ … }
static void prepare_read_tag(struct ceph_connection *con)
{ … }
static void prepare_read_keepalive_ack(struct ceph_connection *con)
{ … }
static int prepare_read_message(struct ceph_connection *con)
{ … }
static int read_partial(struct ceph_connection *con,
int end, int size, void *object)
{ … }
static int read_partial_banner(struct ceph_connection *con)
{ … }
static int read_partial_connect(struct ceph_connection *con)
{ … }
static int verify_hello(struct ceph_connection *con)
{ … }
static int process_banner(struct ceph_connection *con)
{ … }
static int process_connect(struct ceph_connection *con)
{ … }
static int read_partial_ack(struct ceph_connection *con)
{ … }
static void process_ack(struct ceph_connection *con)
{ … }
static int read_partial_message_chunk(struct ceph_connection *con,
struct kvec *section,
unsigned int sec_len, u32 *crc)
{ … }
static inline int read_partial_message_section(struct ceph_connection *con,
struct kvec *section,
unsigned int sec_len, u32 *crc)
{ … }
static int read_partial_sparse_msg_extent(struct ceph_connection *con, u32 *crc)
{ … }
static int read_partial_sparse_msg_data(struct ceph_connection *con)
{ … }
static int read_partial_msg_data(struct ceph_connection *con)
{ … }
static int read_partial_msg_data_bounce(struct ceph_connection *con)
{ … }
static int read_partial_message(struct ceph_connection *con)
{ … }
static int read_keepalive_ack(struct ceph_connection *con)
{ … }
int ceph_con_v1_try_read(struct ceph_connection *con)
{ … }
int ceph_con_v1_try_write(struct ceph_connection *con)
{ … }
void ceph_con_v1_revoke(struct ceph_connection *con)
{ … }
void ceph_con_v1_revoke_incoming(struct ceph_connection *con)
{ … }
bool ceph_con_v1_opened(struct ceph_connection *con)
{ … }
void ceph_con_v1_reset_session(struct ceph_connection *con)
{ … }
void ceph_con_v1_reset_protocol(struct ceph_connection *con)
{ … }