#include <linux/module.h>
#include <linux/qrtr.h>
#include <linux/workqueue.h>
#include <net/sock.h>
#include "qrtr.h"
#include <trace/events/sock.h>
#define CREATE_TRACE_POINTS
#include <trace/events/qrtr.h>
static DEFINE_XARRAY(nodes);
static struct { … } qrtr_ns;
static const char * const qrtr_ctrl_pkt_strings[] = …;
struct qrtr_server_filter { … };
struct qrtr_lookup { … };
struct qrtr_server { … };
struct qrtr_node { … };
static struct qrtr_node *node_get(unsigned int node_id)
{ … }
static int server_match(const struct qrtr_server *srv,
const struct qrtr_server_filter *f)
{ … }
static int service_announce_new(struct sockaddr_qrtr *dest,
struct qrtr_server *srv)
{ … }
static void service_announce_del(struct sockaddr_qrtr *dest,
struct qrtr_server *srv)
{ … }
static void lookup_notify(struct sockaddr_qrtr *to, struct qrtr_server *srv,
bool new)
{ … }
static int announce_servers(struct sockaddr_qrtr *sq)
{ … }
static struct qrtr_server *server_add(unsigned int service,
unsigned int instance,
unsigned int node_id,
unsigned int port)
{ … }
static int server_del(struct qrtr_node *node, unsigned int port, bool bcast)
{ … }
static int say_hello(struct sockaddr_qrtr *dest)
{ … }
static int ctrl_cmd_hello(struct sockaddr_qrtr *sq)
{ … }
static int ctrl_cmd_bye(struct sockaddr_qrtr *from)
{ … }
static int ctrl_cmd_del_client(struct sockaddr_qrtr *from,
unsigned int node_id, unsigned int port)
{ … }
static int ctrl_cmd_new_server(struct sockaddr_qrtr *from,
unsigned int service, unsigned int instance,
unsigned int node_id, unsigned int port)
{ … }
static int ctrl_cmd_del_server(struct sockaddr_qrtr *from,
unsigned int service, unsigned int instance,
unsigned int node_id, unsigned int port)
{ … }
static int ctrl_cmd_new_lookup(struct sockaddr_qrtr *from,
unsigned int service, unsigned int instance)
{ … }
static void ctrl_cmd_del_lookup(struct sockaddr_qrtr *from,
unsigned int service, unsigned int instance)
{ … }
static void qrtr_ns_worker(struct work_struct *work)
{ … }
static void qrtr_ns_data_ready(struct sock *sk)
{ … }
int qrtr_ns_init(void)
{ … }
EXPORT_SYMBOL_GPL(…);
void qrtr_ns_remove(void)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;