summaryrefslogtreecommitdiff
path: root/include/soc
diff options
context:
space:
mode:
authorPushkar Joshi <pushkarj@codeaurora.org>2015-07-28 13:28:59 -0700
committerJeevan Shriram <jshriram@codeaurora.org>2016-04-19 19:43:57 -0700
commit00e3b9ccb0ed42fbb626fd48abc7c289cc3b8e57 (patch)
tree75217bd6630fc93cf883484670dee579d7a6d62a /include/soc
parent83842ac1d65a3d1a35e91ad891929ac6f831db8f (diff)
soc: qcom: Export Service notifier driver APIs
Export the service notifier APIs so that other kernel clients can use them. CRs-Fixed: 999530 Change-Id: I48fd55ae7991b64f818543dfcc963bc75135f714 Signed-off-by: Pushkar Joshi <pushkarj@codeaurora.org> Signed-off-by: Puja Gupta <pujag@codeaurora.org>
Diffstat (limited to 'include/soc')
-rw-r--r--include/soc/qcom/service-notifier.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/include/soc/qcom/service-notifier.h b/include/soc/qcom/service-notifier.h
new file mode 100644
index 000000000000..be3f134eebe3
--- /dev/null
+++ b/include/soc/qcom/service-notifier.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * Process Domain Service Notifier API header
+ */
+
+#ifndef _SERVICE_NOTIFIER_H
+#define _SERVICE_NOTIFIER_H
+
+enum qmi_servreg_notif_service_state_enum_type_v01 {
+ QMI_SERVREG_NOTIF_SERVICE_STATE_ENUM_TYPE_MIN_VAL_V01 = INT_MIN,
+ QMI_SERVREG_NOTIF_SERVICE_STATE_ENUM_TYPE_MAX_VAL_V01 = INT_MAX,
+ SERVREG_NOTIF_SERVICE_STATE_DOWN_V01 = 0x0FFFFFFF,
+ SERVREG_NOTIF_SERVICE_STATE_UP_V01 = 0x1FFFFFFF,
+ SERVREG_NOTIF_SERVICE_STATE_UNINIT_V01 = 0x7FFFFFFF,
+};
+
+#if defined(CONFIG_MSM_SERVICE_NOTIFIER)
+
+/* service_notif_register_notifier() - Register a notifier for a service
+ * On success, it returns back a handle. It takes the following arguments:
+ * service_path: Individual service identifier path for which a client
+ * registers for notifications.
+ * instance_id: Instance id specific to a subsystem.
+ * current_state: Current state of service returned by the registration
+ * process.
+ * notifier block: notifier callback for service events.
+ */
+void *service_notif_register_notifier(const char *service_path, int instance_id,
+ struct notifier_block *nb, int *curr_state);
+
+/* service_notif_unregister_notifier() - Unregister a notifier for a service.
+ * service_notif_handle - The notifier handler that was provided by the
+ * service_notif_register_notifier function when the
+ * client registered for notifications.
+ * nb - The notifier block that was previously used during the registration.
+ */
+int service_notif_unregister_notifier(void *service_notif_handle,
+ struct notifier_block *nb);
+
+#else
+
+static void *service_notif_register_notifier(const char *service_path,
+ int instance_id, struct notifier_block *nb,
+ int *curr_state)
+{
+ return -ENODEV;
+}
+
+static int service_notif_unregister_notifier(void *service_notif_handle,
+ struct notifier_block *nb)
+{
+ return -ENODEV;
+}
+
+#endif /* CONFIG_MSM_SERVICE_NOTIFIER */
+
+#endif