#define pr_fmt(fmt) …
#include <linux/module.h>
#include <linux/slab.h>
#include <net/sock.h>
#include <net/af_rxrpc.h>
#define RXRPC_TRACE_ONLY_DEFINE_ENUMS
#include <trace/events/rxrpc.h>
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
#define RXPERF_PORT …
#define RX_PERF_SERVICE …
#define RX_PERF_VERSION …
#define RX_PERF_SEND …
#define RX_PERF_RECV …
#define RX_PERF_RPC …
#define RX_PERF_FILE …
#define RX_PERF_MAGIC_COOKIE …
struct rxperf_proto_params { … } __packed;
static const u8 rxperf_magic_cookie[] = …;
static const u8 secret[8] = …;
enum rxperf_call_state { … };
struct rxperf_call { … };
static struct socket *rxperf_socket;
static struct key *rxperf_sec_keyring;
static struct workqueue_struct *rxperf_workqueue;
static void rxperf_deliver_to_call(struct work_struct *work);
static int rxperf_deliver_param_block(struct rxperf_call *call);
static int rxperf_deliver_request(struct rxperf_call *call);
static int rxperf_process_call(struct rxperf_call *call);
static void rxperf_charge_preallocation(struct work_struct *work);
static DECLARE_WORK(rxperf_charge_preallocation_work,
rxperf_charge_preallocation);
static inline void rxperf_set_call_state(struct rxperf_call *call,
enum rxperf_call_state to)
{ … }
static inline void rxperf_set_call_complete(struct rxperf_call *call,
int error, s32 remote_abort)
{ … }
static void rxperf_rx_discard_new_call(struct rxrpc_call *rxcall,
unsigned long user_call_ID)
{ … }
static void rxperf_rx_new_call(struct sock *sk, struct rxrpc_call *rxcall,
unsigned long user_call_ID)
{ … }
static void rxperf_queue_call_work(struct rxperf_call *call)
{ … }
static void rxperf_notify_rx(struct sock *sk, struct rxrpc_call *rxcall,
unsigned long call_user_ID)
{ … }
static void rxperf_rx_attach(struct rxrpc_call *rxcall, unsigned long user_call_ID)
{ … }
static void rxperf_notify_end_reply_tx(struct sock *sock,
struct rxrpc_call *rxcall,
unsigned long call_user_ID)
{ … }
static void rxperf_charge_preallocation(struct work_struct *work)
{ … }
static int rxperf_open_socket(void)
{ … }
static void rxperf_close_socket(void)
{ … }
static void rxperf_log_error(struct rxperf_call *call, s32 remote_abort)
{ … }
static void rxperf_deliver_to_call(struct work_struct *work)
{ … }
static int rxperf_extract_data(struct rxperf_call *call, bool want_more)
{ … }
static int rxperf_deliver_param_block(struct rxperf_call *call)
{ … }
static int rxperf_deliver_request(struct rxperf_call *call)
{ … }
static int rxperf_process_call(struct rxperf_call *call)
{ … }
static int rxperf_add_key(struct key *keyring)
{ … }
static int __init rxperf_init(void)
{ … }
late_initcall(rxperf_init);
static void __exit rxperf_exit(void)
{ … }
module_exit(rxperf_exit);