diff options
author | Pushkar Joshi <pushkarj@codeaurora.org> | 2015-07-28 13:28:59 -0700 |
---|---|---|
committer | Jeevan Shriram <jshriram@codeaurora.org> | 2016-04-19 19:43:57 -0700 |
commit | 00e3b9ccb0ed42fbb626fd48abc7c289cc3b8e57 (patch) | |
tree | 75217bd6630fc93cf883484670dee579d7a6d62a /include/soc | |
parent | 83842ac1d65a3d1a35e91ad891929ac6f831db8f (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.h | 67 |
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 |