#include <linux/cleanup.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/workqueue.h>
#include "pdr_internal.h"
struct pdr_service { … };
struct pdr_handle { … };
struct pdr_list_node { … };
static int pdr_locator_new_server(struct qmi_handle *qmi,
struct qmi_service *svc)
{ … }
static void pdr_locator_del_server(struct qmi_handle *qmi,
struct qmi_service *svc)
{ … }
static const struct qmi_ops pdr_locator_ops = …;
static int pdr_register_listener(struct pdr_handle *pdr,
struct pdr_service *pds,
bool enable)
{ … }
static void pdr_notifier_work(struct work_struct *work)
{ … }
static int pdr_notifier_new_server(struct qmi_handle *qmi,
struct qmi_service *svc)
{ … }
static void pdr_notifier_del_server(struct qmi_handle *qmi,
struct qmi_service *svc)
{ … }
static const struct qmi_ops pdr_notifier_ops = …;
static int pdr_send_indack_msg(struct pdr_handle *pdr, struct pdr_service *pds,
u16 tid)
{ … }
static void pdr_indack_work(struct work_struct *work)
{ … }
static void pdr_indication_cb(struct qmi_handle *qmi,
struct sockaddr_qrtr *sq,
struct qmi_txn *txn, const void *data)
{ … }
static const struct qmi_msg_handler qmi_indication_handler[] = …;
static int pdr_get_domain_list(struct servreg_get_domain_list_req *req,
struct servreg_get_domain_list_resp *resp,
struct pdr_handle *pdr)
{ … }
static int pdr_locate_service(struct pdr_handle *pdr, struct pdr_service *pds)
{ … }
static void pdr_notify_lookup_failure(struct pdr_handle *pdr,
struct pdr_service *pds,
int err)
{ … }
static void pdr_locator_work(struct work_struct *work)
{ … }
struct pdr_service *pdr_add_lookup(struct pdr_handle *pdr,
const char *service_name,
const char *service_path)
{ … }
EXPORT_SYMBOL_GPL(…);
int pdr_restart_pd(struct pdr_handle *pdr, struct pdr_service *pds)
{ … }
EXPORT_SYMBOL_GPL(…);
struct pdr_handle *pdr_handle_alloc(void (*status)(int state,
char *service_path,
void *priv), void *priv)
{ … }
EXPORT_SYMBOL_GPL(…);
void pdr_handle_release(struct pdr_handle *pdr)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;