Merge "wifi: Add "CTRL-EVENT-" like callback to supplicant/hostapd"
diff --git a/wifi/hostapd/1.3/Android.bp b/wifi/hostapd/1.3/Android.bp
new file mode 100644
index 0000000..9f63619
--- /dev/null
+++ b/wifi/hostapd/1.3/Android.bp
@@ -0,0 +1,20 @@
+// This file is autogenerated by hidl-gen -Landroidbp.
+
+hidl_interface {
+    name: "vendor.qti.hardware.wifi.hostapd@1.3",
+    root: "vendor.qti.hardware.wifi",
+    system_ext_specific: true,
+    srcs: [
+        "IHostapdVendor.hal",
+        "IHostapdVendorIfaceCallback.hal",
+    ],
+    interfaces: [
+        "android.hardware.wifi.hostapd@1.0",
+        "android.hardware.wifi.supplicant@1.0",
+        "android.hidl.base@1.0",
+        "vendor.qti.hardware.wifi.hostapd@1.0",
+        "vendor.qti.hardware.wifi.hostapd@1.1",
+        "vendor.qti.hardware.wifi.hostapd@1.2",
+    ],
+    gen_java: true,
+}
diff --git a/wifi/hostapd/1.3/IHostapdVendor.hal b/wifi/hostapd/1.3/IHostapdVendor.hal
new file mode 100644
index 0000000..2dd677f
--- /dev/null
+++ b/wifi/hostapd/1.3/IHostapdVendor.hal
@@ -0,0 +1,63 @@
+/* Copyright (c) 2020, The Linux Foundation. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are
+* met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above
+*       copyright notice, this list of conditions and the following
+*       disclaimer in the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of The Linux Foundation nor the names of its
+*       contributors may be used to endorse or promote products derived
+*       from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+* ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+
+package vendor.qti.hardware.wifi.hostapd@1.3;
+
+import android.hardware.wifi.hostapd@1.0::IHostapd;
+import android.hardware.wifi.hostapd@1.0::types;
+
+import @1.2::IHostapdVendor;
+import @1.3::IHostapdVendorIfaceCallback;
+
+/**
+ * Vendor Interface exposed by the hostapd HIDL service registered
+ * with the hardware service manager.
+ * This is the root level object for any vendor specific hostapd interactions.
+ */
+interface IHostapdVendor extends @1.2::IHostapdVendor {
+    /**
+     * Register for vendorcallback from this interface.
+     *
+     * These callbacks are invoked for events that are specific to this
+     * interface. Registration of multiple vendor callback objects is
+     * supported. These objects must be automatically deleted when the
+     * corresponding client process is dead or if this interface is removed.
+     *
+     * @param ifaceName Name of the interface.
+     * @param callback An instance of the |IHostapdVendorIfaceCallback| HIDL
+     *        interface object.
+     * @return status Status of the operation.
+     *         Possible status codes:
+     *         |HostapdStatusCode.SUCCESS|,
+     *         |HostapdStatusCode.FAILURE_UNKNOWN|,
+     *         |HostapdStatusCode.FAILURE_IFACE_UNKNOWN|
+     */
+    registerVendorCallback_1_3(string ifaceName, IHostapdVendorIfaceCallback callback)
+        generates (HostapdStatus status);
+};
diff --git a/wifi/hostapd/1.3/IHostapdVendorIfaceCallback.hal b/wifi/hostapd/1.3/IHostapdVendorIfaceCallback.hal
new file mode 100644
index 0000000..38be5ed
--- /dev/null
+++ b/wifi/hostapd/1.3/IHostapdVendorIfaceCallback.hal
@@ -0,0 +1,45 @@
+/* Copyright (c) 2020, The Linux Foundation. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are
+* met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above
+*       copyright notice, this list of conditions and the following
+*       disclaimer in the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of The Linux Foundation nor the names of its
+*       contributors may be used to endorse or promote products derived
+*       from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+* ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+
+package vendor.qti.hardware.wifi.hostapd@1.3;
+
+import @1.1::IHostapdVendorIfaceCallback;
+
+/**
+ * Vendor Hostapd  Callback Interface
+ */
+interface IHostapdVendorIfaceCallback extends @1.1::IHostapdVendorIfaceCallback {
+    /**
+     * Invoked when vendor event is triggered, and returned event info.
+     *
+     * @param ifaceName Name of the interface.
+     * @param event_str Event info.
+     */
+    oneway onCtrlEvent(string ifaceName, string event_str);
+};
diff --git a/wifi/supplicant/2.3/Android.bp b/wifi/supplicant/2.3/Android.bp
new file mode 100644
index 0000000..fbf80e5
--- /dev/null
+++ b/wifi/supplicant/2.3/Android.bp
@@ -0,0 +1,21 @@
+// This file is autogenerated by hidl-gen -Landroidbp.
+
+hidl_interface {
+    name: "vendor.qti.hardware.wifi.supplicant@2.3",
+    root: "vendor.qti.hardware.wifi",
+    system_ext_specific: true,
+    srcs: [
+        "ISupplicantVendor.hal",
+        "ISupplicantVendorStaIface.hal",
+        "ISupplicantVendorStaIfaceCallback.hal",
+    ],
+    interfaces: [
+        "android.hardware.wifi.supplicant@1.0",
+        "android.hardware.wifi.supplicant@1.1",
+        "android.hidl.base@1.0",
+        "vendor.qti.hardware.wifi.supplicant@2.0",
+        "vendor.qti.hardware.wifi.supplicant@2.1",
+        "vendor.qti.hardware.wifi.supplicant@2.2",
+    ],
+    gen_java: true,
+}
diff --git a/wifi/supplicant/2.3/ISupplicantVendor.hal b/wifi/supplicant/2.3/ISupplicantVendor.hal
new file mode 100644
index 0000000..63521cc
--- /dev/null
+++ b/wifi/supplicant/2.3/ISupplicantVendor.hal
@@ -0,0 +1,40 @@
+/* Copyright (c) 2020, The Linux Foundation. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are
+* met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above
+*       copyright notice, this list of conditions and the following
+*       disclaimer in the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of The Linux Foundation nor the names of its
+*       contributors may be used to endorse or promote products derived
+*       from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+* ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+
+package vendor.qti.hardware.wifi.supplicant@2.3;
+
+import vendor.qti.hardware.wifi.supplicant@2.2::ISupplicantVendor;
+
+/**
+ * Vendor Interface exposed by the supplicant HIDL service registered
+ * with the hardware service manager.
+ * This is the root level object for any vendor specific supplicant interactions.
+ */
+interface ISupplicantVendor extends @2.2::ISupplicantVendor {
+};
diff --git a/wifi/supplicant/2.3/ISupplicantVendorStaIface.hal b/wifi/supplicant/2.3/ISupplicantVendorStaIface.hal
new file mode 100644
index 0000000..db6c089
--- /dev/null
+++ b/wifi/supplicant/2.3/ISupplicantVendorStaIface.hal
@@ -0,0 +1,58 @@
+/* Copyright (c) 2020, The Linux Foundation. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are
+* met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above
+*       copyright notice, this list of conditions and the following
+*       disclaimer in the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of The Linux Foundation nor the names of its
+*       contributors may be used to endorse or promote products derived
+*       from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+* ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+
+package vendor.qti.hardware.wifi.supplicant@2.3;
+
+import android.hardware.wifi.supplicant@1.0::types;
+import @2.2::ISupplicantVendorStaIface;
+import @2.3::ISupplicantVendorStaIfaceCallback;
+
+/**
+ * Vendor StaIface Interface
+ */
+interface ISupplicantVendorStaIface extends @2.2::ISupplicantVendorStaIface {
+  /**
+   * Register for vendorcallbacks from this interface.
+   *
+   * These callbacks are invoked for events that are specific to this interface.
+   * Registration of multiple vendor callback objects is supported. These objects
+   * must be automatically deleted when the corresponding client process is dead or
+   * if this interface is removed.
+   *
+   * @param callback An instance of the |ISupplicantVendorStaIfaceCallback| HIDL
+   *        interface object.
+   * @return status Status of the operation.
+   *         Possible status codes:
+   *         |SupplicantStatusCode.SUCCESS|,
+   *         |SupplicantStatusCode.FAILURE_UNKNOWN|,
+   *         |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+   */
+  registerVendorCallback_2_3(ISupplicantVendorStaIfaceCallback callback)
+      generates (SupplicantStatus status);
+};
diff --git a/wifi/supplicant/2.3/ISupplicantVendorStaIfaceCallback.hal b/wifi/supplicant/2.3/ISupplicantVendorStaIfaceCallback.hal
new file mode 100644
index 0000000..04a35e7
--- /dev/null
+++ b/wifi/supplicant/2.3/ISupplicantVendorStaIfaceCallback.hal
@@ -0,0 +1,46 @@
+/* Copyright (c) 2020, The Linux Foundation. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are
+* met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above
+*       copyright notice, this list of conditions and the following
+*       disclaimer in the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of The Linux Foundation nor the names of its
+*       contributors may be used to endorse or promote products derived
+*       from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+* ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+
+package vendor.qti.hardware.wifi.supplicant@2.3;
+
+import android.hardware.wifi.supplicant@1.0::types;
+import @2.0::ISupplicantVendorStaIfaceCallback;
+
+/**
+ * Vendor StaIface Callback Interface
+ */
+interface ISupplicantVendorStaIfaceCallback extends @2.0::ISupplicantVendorStaIfaceCallback {
+    /**
+      * Invoked when vendor event is triggered, and returned event info.
+      *
+      * @param ifaceName Name of the interface.
+      * @param event_str Event info.
+      */
+    oneway onCtrlEvent(string ifaceName, string event_str);
+};