init: Wait for /dev/hvc1 during ARCVM first-stage mount
This commit introduces a function to allow ARC-specific logic during
first-stage mount by checking for the existence of an indicator file
at the path "/is_arcvm".
ARC uses the virtio-console device `hvc1` to pass byte data to Android
before second-stage init. Ensure that /dev/hvc1 is initialized before
ARCVM continues booting, but allow other devices to bypass this device
initialization.
Bug: 325538592
Test: boot ARC, ensure /dev/hvc1 can be read during PropertyInit
Change-Id: Ic258b7b004b59da462f4990131a5c11fc94eca62
diff --git a/init/util.h b/init/util.h
index aa24123..0565391 100644
--- a/init/util.h
+++ b/init/util.h
@@ -18,6 +18,7 @@
#include <sys/stat.h>
#include <sys/types.h>
+#include <sys/unistd.h>
#include <chrono>
#include <functional>
@@ -108,6 +109,10 @@
#endif
}
+inline bool IsArcvm() {
+ return !access("/is_arcvm", F_OK);
+}
+
bool Has32BitAbi();
std::string GetApexNameFromFileName(const std::string& path);