BT: Add  hidl interface for dun profile.

Add hidl interface for dun profile.

Change-Id: Ieaeaabcbfead462f99b805f823f93819e0bd112c
diff --git a/Android.bp b/Android.bp
index 265fb83..3769b92 100644
--- a/Android.bp
+++ b/Android.bp
@@ -35,3 +35,7 @@
     path: "vendor/qcom/opensource/interfaces/systemhelper",
 }
 
+hidl_package_root {
+    name: "vendor.qti.hardware.bluetooth_dun",
+    path: "vendor/qcom/opensource/interfaces/bluetooth_dun",
+}
diff --git a/bluetooth_dun/1.0/IBluetoothDunServer.hal b/bluetooth_dun/1.0/IBluetoothDunServer.hal
new file mode 100644
index 0000000..416b679
--- /dev/null
+++ b/bluetooth_dun/1.0/IBluetoothDunServer.hal
@@ -0,0 +1,59 @@
+/* Copyright (c) 2019, 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.bluetooth_dun@1.0;
+
+import IBluetoothDunServerResponse;
+
+interface IBluetoothDunServer {
+    /**
+     * Initialize response callback to the underlying DUN server hidl interface.
+     */
+    initialize(IBluetoothDunServerResponse resCallback) generates (Status status);
+
+   /**
+     * Send control messages to the underlying DUN server hidl interface.
+     */
+    sendCtrlMsg(CtrlMsg msgType) generates (Status status);
+
+   /**
+     * Send uplink Data to the underlying DUN server hidl interface.
+     */
+    sendUplinkData(DunPacket packet) generates (Status status);
+
+   /**
+     * Send modem status to the underlying DUN server hidl interface, if
+     * modem status change is received from remote on rfcomm channel.
+     */
+    sendModemStatus(uint8_t status) generates (Status status);
+
+    /**
+     * Close the DUN server hidl interface.
+     */
+    close_server();
+};
diff --git a/bluetooth_dun/1.0/IBluetoothDunServerResponse.hal b/bluetooth_dun/1.0/IBluetoothDunServerResponse.hal
new file mode 100644
index 0000000..5f9ac37
--- /dev/null
+++ b/bluetooth_dun/1.0/IBluetoothDunServerResponse.hal
@@ -0,0 +1,50 @@
+/* Copyright (c) 2019, 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.bluetooth_dun@1.0;
+
+/** The interface from the DUN HIDL server to the BT DUN service. */
+interface IBluetoothDunServerResponse {
+    /**
+     * This function is invoked from the DUN HIDL daemon,
+     * when control message is received from the portbridge.
+     */
+    ctrlMsgEvent(CtrlMsg msgType, Status status);
+
+    /**
+     * This function is invoked from the DUN HIDL daemon,
+     * when downlink data is received from portbridge.
+     */
+    downlinkDataEvent(DunPacket data);
+
+    /**
+     * This function is invoked from the DUN HIDL daemon,
+     * when modem status change is received from the portbridge.
+     */
+    modemStatusChangeEvent(uint8_t status);
+};
diff --git a/bluetooth_dun/1.0/types.hal b/bluetooth_dun/1.0/types.hal
new file mode 100644
index 0000000..7a9b989
--- /dev/null
+++ b/bluetooth_dun/1.0/types.hal
@@ -0,0 +1,48 @@
+/* Copyright (c) 2019, 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.bluetooth_dun@1.0;
+
+enum CtrlMsg : int32_t {
+    DUN_CONNECT_REQ,
+    DUN_DISCONNECT_REQ,
+    DUN_CONNECT_RESP,
+    DUN_DISCONNECT_RESP,
+};
+
+enum Status : uint8_t {
+    SUCCESS,
+    FAILED,
+    INITIALIZATION_ERROR,
+    UNKNOWN
+};
+
+/**
+ * Dun packets are transmitted as a vector of type uint8_t.
+ */
+typedef vec<uint8_t> DunPacket;
diff --git a/bluetooth_dun/current.txt b/bluetooth_dun/current.txt
new file mode 100644
index 0000000..5b7a951
--- /dev/null
+++ b/bluetooth_dun/current.txt
@@ -0,0 +1,32 @@
+#Copyright (c) 2019, 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.
+
+#HAL released in Android Q
+#Bluetooth DUN
+686cdb8d0c7cb31a4222db61ee7967991b513928b65ddf4b268763afb5dfac71 vendor.qti.hardware.bluetooth_dun@1.0::types
+833436d7e9bc1956e5d92d89b546bfc3e585534aecb91d35c3a453a208ae615f vendor.qti.hardware.bluetooth_dun@1.0::IBluetoothDunServer
+3d5fff5c7e0e5ab89abd3ce2166e4dbf08b13bb94a836c5a25d95674dfd7f066 vendor.qti.hardware.bluetooth_dun@1.0::IBluetoothDunServerResponse
\ No newline at end of file