lshal: add "Status" column and "Manifest HALs" section.
- Added "Status" column that has following values:
- alive: running hwbinder service
- registered;dead: registered, but service cannot accept calls
- declared: only in VINTF, not in hwservicemanager
- N/A: passthrough HALs
- Added a "Manifest HALs" section that lists all
HALs (hwbinder or passthrough) in device / framework manifest
Test: lshal_test
Bug: 71555570
Change-Id: I202b562ee73bcd49506bb43cc9af27b86f32651c
diff --git a/cmds/lshal/TableEntry.h b/cmds/lshal/TableEntry.h
index d68417b..7294b0a 100644
--- a/cmds/lshal/TableEntry.h
+++ b/cmds/lshal/TableEntry.h
@@ -48,6 +48,7 @@
RELEASED,
HASH,
VINTF,
+ SERVICE_STATUS,
};
enum : unsigned int {
@@ -64,6 +65,14 @@
NO_PTR = 0
};
+enum class ServiceStatus {
+ UNKNOWN, // For passthrough
+ ALIVE,
+ NON_RESPONSIVE, // registered but not respond to calls
+ DECLARED, // in VINTF manifest
+};
+std::string to_string(ServiceStatus s);
+
struct TableEntry {
std::string interfaceName{};
vintf::Transport transport{vintf::Transport::EMPTY};
@@ -79,6 +88,8 @@
std::string hash{};
Partition partition{Partition::UNKNOWN};
VintfInfo vintfInfo{VINTF_INFO_EMPTY};
+ // true iff hwbinder and service started
+ ServiceStatus serviceStatus{ServiceStatus::UNKNOWN};
static bool sortByInterfaceName(const TableEntry &a, const TableEntry &b) {
return a.interfaceName < b.interfaceName;