From 5c4e11360da64228bca6610c946e4e597ccf1b37 Mon Sep 17 00:00:00 2001 From: Yumi Yukimura Date: Sat, 17 May 2025 17:35:22 +0800 Subject: [PATCH 1/3] Add Android.bp build rules Signed-off-by: Yumi Yukimura --- Android.bp | 10 ++++++++++ chrecd/Android.bp | 12 ++++++++++++ hexagonrpcd/Android.bp | 23 +++++++++++++++++++++++ include/Android.bp | 5 +++++ libhexagonrpc/Android.bp | 11 +++++++++++ 5 files changed, 61 insertions(+) create mode 100644 Android.bp create mode 100644 chrecd/Android.bp create mode 100644 hexagonrpcd/Android.bp create mode 100644 include/Android.bp create mode 100644 libhexagonrpc/Android.bp 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/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/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, +} From ffd300c27e807a9de1bde4e9b70511353cf2ef96 Mon Sep 17 00:00:00 2001 From: Yumi Yukimura Date: Thu, 29 Jan 2026 01:54:32 +0800 Subject: [PATCH 2/3] hexagonrpcd: Include `endian.h` where needed hardware/mainline/qcom/hexagonrpc/hexagonrpcd/iobuffer.c:43:15: error: use of undeclared identifier 'le32toh' 43 | ctx->size = le32toh(ctx->size); | ^ hardware/mainline/qcom/hexagonrpc/hexagonrpcd/iobuffer.c:218:23: error: use of undeclared identifier 'htole32' 218 | *(uint32_t *) ptr = htole32(outbufs[i].s); | ^ 2 errors generated. Signed-off-by: Yumi Yukimura --- hexagonrpcd/iobuffer.c | 1 + 1 file changed, 1 insertion(+) 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 From dd9ac70c026e1bad93e8cffa3801255b8ceb551e Mon Sep 17 00:00:00 2001 From: Yumi Yukimura Date: Sat, 14 Mar 2026 13:16:56 +0800 Subject: [PATCH 3/3] data: Add Android service definitions Signed-off-by: Yumi Yukimura --- data/Android.bp | 20 ++++++++++++++++++++ data/hexagonrpcd-adsp-rootpd.rc | 5 +++++ data/hexagonrpcd-adsp-sensorspd.rc | 4 ++++ data/hexagonrpcd-sdsp.rc | 4 ++++ 4 files changed, 33 insertions(+) create mode 100644 data/Android.bp create mode 100644 data/hexagonrpcd-adsp-rootpd.rc create mode 100644 data/hexagonrpcd-adsp-sensorspd.rc create mode 100644 data/hexagonrpcd-sdsp.rc 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