aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant/binder/binder.h
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2016-02-17 00:39:28 (GMT)
committerJouni Malinen <j@w1.fi>2016-04-02 14:35:26 (GMT)
commit7b4bbb9f946fb6861b2b4ded0f10949277514047 (patch)
treefebb9cec4b7c85f8098d201002c9248c59d0900e /wpa_supplicant/binder/binder.h
parent5914ebf5845b405eb3d6e29572df22daf0d8bb0d (diff)
downloadhostap-7b4bbb9f946fb6861b2b4ded0f10949277514047.zip
hostap-7b4bbb9f946fb6861b2b4ded0f10949277514047.tar.gz
hostap-7b4bbb9f946fb6861b2b4ded0f10949277514047.tar.bz2
binder: Add binder skeletal code for Android
Create the skeletal binder interface for wpa_supplicant. The interface hierarchy is based off the existing dbus interface(https://w1.fi/wpa_supplicant/devel/dbus.html). Since we use libbinder, the binder interface codebase needs to be written in C++ and can only be compiled on Android platform for now. The aidl files define binder RPC interfaces. The Android build system generates the corresponding C++ interface classes which needs to be implemented by the server process. The clients can obtain a reference to the binder service (root object) using: android::String16 service_name("fi.w1.wpa_supplicant"); android::sp<android::IBinder> binder = android::defaultServiceManager()->getService(service_name); Once a reference to the root object is retrieved, the clients can obtain references to other RPC objects using that root object methods. Signed-off-by: Roshan Pius <rpius@google.com>
Diffstat (limited to 'wpa_supplicant/binder/binder.h')
-rw-r--r--wpa_supplicant/binder/binder.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/wpa_supplicant/binder/binder.h b/wpa_supplicant/binder/binder.h
new file mode 100644
index 0000000..6406f09
--- /dev/null
+++ b/wpa_supplicant/binder/binder.h
@@ -0,0 +1,32 @@
+/*
+ * binder interface for wpa_supplicant daemon
+ * Copyright (c) 2004-2016, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2004-2016, Roshan Pius <rpius@google.com>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#ifndef BINDER_H
+#define BINDER_H
+
+#ifdef _cplusplus
+extern "C" {
+#endif /* _cplusplus */
+
+/**
+ * This is the binder RPC interface entry point to the wpa_supplicant core.
+ * This initializes the binder driver & BinderManager instance and then forwards
+ * all the notifcations from the supplicant core to the BinderManager.
+ */
+struct wpas_binder_priv;
+struct wpa_global;
+
+struct wpas_binder_priv * wpas_binder_init(struct wpa_global *global);
+void wpas_binder_deinit(struct wpas_binder_priv *priv);
+
+#ifdef _cplusplus
+}
+#endif /* _cplusplus */
+
+#endif /* BINDER_H */