diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..bb1d2cf
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,10 @@
+cc_defaults {
+ name: "hexagonrpc_defaults",
+ cflags: [
+ "-Wno-unused-parameter",
+ ],
+ header_libs: [
+ "device_kernel_headers",
+ "hexagonrpc_headers",
+ ],
+}
diff --git a/chrecd/Android.bp b/chrecd/Android.bp
new file mode 100644
index 0000000..94e2780
--- /dev/null
+++ b/chrecd/Android.bp
@@ -0,0 +1,12 @@
+cc_binary {
+ name: "chrecd",
+ defaults: ["hexagonrpc_defaults"],
+ srcs: [
+ "interfaces.c",
+ "main.c",
+ ],
+ shared_libs: [
+ "libhexagonrpc",
+ ],
+ vendor: true,
+}
diff --git a/data/Android.bp b/data/Android.bp
new file mode 100644
index 0000000..a491998
--- /dev/null
+++ b/data/Android.bp
@@ -0,0 +1,20 @@
+prebuilt_etc {
+ name: "hexagonrpcd-adsp-rootpd.rc",
+ src: "hexagonrpcd-adsp-rootpd.rc",
+ sub_dir: "init",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "hexagonrpcd-adsp-sensorspd.rc",
+ src: "hexagonrpcd-adsp-sensorspd.rc",
+ sub_dir: "init",
+ vendor: true,
+}
+
+prebuilt_etc {
+ name: "hexagonrpcd-sdsp.rc",
+ src: "hexagonrpcd-sdsp.rc",
+ sub_dir: "init",
+ vendor: true,
+}
diff --git a/data/hexagonrpcd-adsp-rootpd.rc b/data/hexagonrpcd-adsp-rootpd.rc
new file mode 100644
index 0000000..85e3eb4
--- /dev/null
+++ b/data/hexagonrpcd-adsp-rootpd.rc
@@ -0,0 +1,5 @@
+service vendor.hexagonrpcd-adsp-rootpd /vendor/bin/hexagonrpcd -f /dev/fastrpc-adsp -d adsp -R /vendor/etc/hexagonrpcd-root
+ class core
+ user system
+ group system
+ stdio_to_kmsg
diff --git a/data/hexagonrpcd-adsp-sensorspd.rc b/data/hexagonrpcd-adsp-sensorspd.rc
new file mode 100644
index 0000000..ed27df9
--- /dev/null
+++ b/data/hexagonrpcd-adsp-sensorspd.rc
@@ -0,0 +1,4 @@
+service vendor.hexagonrpcd-adsp-sensorspd /vendor/bin/hexagonrpcd -f /dev/fastrpc-adsp -d adsp -s -R /vendor/etc/hexagonrpcd-root
+ class core
+ user system
+ group system
diff --git a/data/hexagonrpcd-sdsp.rc b/data/hexagonrpcd-sdsp.rc
new file mode 100644
index 0000000..fd90ea5
--- /dev/null
+++ b/data/hexagonrpcd-sdsp.rc
@@ -0,0 +1,4 @@
+service vendor.hexagonrpcd-sdsp /vendor/bin/hexagonrpcd -f /dev/fastrpc-sdsp -d sdsp -s -R /vendor/etc/hexagonrpcd-root
+ class core
+ user system
+ group system
diff --git a/hexagonrpcd/Android.bp b/hexagonrpcd/Android.bp
new file mode 100644
index 0000000..7dc084c
--- /dev/null
+++ b/hexagonrpcd/Android.bp
@@ -0,0 +1,23 @@
+cc_binary {
+ name: "hexagonrpcd",
+ defaults: ["hexagonrpc_defaults"],
+ srcs: [
+ "aee_error.c",
+ "apps_mem.c",
+ "apps_std.c",
+ "hexagonfs.c",
+ "hexagonfs_mapped.c",
+ "hexagonfs_plat_subtype_name.c",
+ "hexagonfs_virt_dir.c",
+ "interfaces.c",
+ "iobuffer.c",
+ "listener.c",
+ "localctl.c",
+ "rpcd.c",
+ "rpcd_builder.c",
+ ],
+ shared_libs: [
+ "libhexagonrpc",
+ ],
+ vendor: true,
+}
diff --git a/hexagonrpcd/iobuffer.c b/hexagonrpcd/iobuffer.c
index 1064378..d80b953 100644
--- a/hexagonrpcd/iobuffer.c
+++ b/hexagonrpcd/iobuffer.c
@@ -19,6 +19,7 @@
* along with this program. If not, see .
*/
+#include
#include
#include
#include
diff --git a/include/Android.bp b/include/Android.bp
new file mode 100644
index 0000000..34d90a7
--- /dev/null
+++ b/include/Android.bp
@@ -0,0 +1,5 @@
+cc_library_headers {
+ name: "hexagonrpc_headers",
+ export_include_dirs: ["."],
+ vendor: true,
+}
diff --git a/libhexagonrpc/Android.bp b/libhexagonrpc/Android.bp
new file mode 100644
index 0000000..f500877
--- /dev/null
+++ b/libhexagonrpc/Android.bp
@@ -0,0 +1,11 @@
+cc_library_shared {
+ name: "libhexagonrpc",
+ defaults: ["hexagonrpc_defaults"],
+ srcs: [
+ "context.c",
+ "fastrpc.c",
+ "interfaces.c",
+ "session.c",
+ ],
+ vendor: true,
+}