#define pr_fmt(fmt) KBUILD_MODNAME ":%s(): " fmt, __func__
#include <linux/module.h>
#include <linux/sched/signal.h>
#include <linux/spinlock.h>
#include <linux/uaccess.h>
#include <linux/debugfs.h>
#include <linux/caif/caif_socket.h>
#include <linux/pkt_sched.h>
#include <net/tcp_states.h>
#include <net/caif/caif_layer.h>
#include <net/caif/caif_dev.h>
#include <net/caif/cfpkt.h>
MODULE_ALIAS_NETPROTO(AF_CAIF);
CAIF_CONNECTED = TCP_ESTABLISHED,
CAIF_CONNECTING = TCP_SYN_SENT,
CAIF_DISCONNECTED = TCP_CLOSE
struct caif_connect_request conn_req;
struct dentry *debugfs_socket_dir;
int headroom, tailroom, maxframe;
static int rx_flow_is_on(struct caifsock *cf_sk)
return test_bit(RX_FLOW_ON_BIT,
(void *) &cf_sk->flow_state);
static int tx_flow_is_on(struct caifsock *cf_sk)
return test_bit(TX_FLOW_ON_BIT,
(void *) &cf_sk->flow_state);
static void set_rx_flow_off(struct caifsock *cf_sk)
clear_bit(RX_FLOW_ON_BIT,
(void *) &cf_sk->flow_state);
static void set_rx_flow_on(struct caifsock *cf_sk)
(void *) &cf_sk->flow_state);
static void set_tx_flow_off(struct caifsock *cf_sk)
clear_bit(TX_FLOW_ON_BIT,
(void *) &cf_sk->flow_state);
static void set_tx_flow_on(struct caifsock *cf_sk)
(void *) &cf_sk->flow_state);
static void caif_read_lock(struct sock *sk)