From 72a114a3e16c3dadfb10792b0b9d61d0fb421038 Mon Sep 17 00:00:00 2001 From: Tom Cherry Date: Wed, 30 Jan 2019 15:59:53 -0800 Subject: Add android::fs_mgr namespace for new Fstab code Also add libfstab dependencies where needed. Previously the `typedef struct FstabEntry Volume;` line served to both define a `struct FstabEntry` as well as alias Volume to it. With the new namespace for android::fs_mgr::FstabEntry, `struct FstabEntry` isn't compatible anymore, so we need to alias Volume to the real android::fs_mgr::FstabEntry. In doing so, we need to include and this requires libfstab as a library, which a few modules did not have before. Test: treehugger Change-Id: I655209a0efb304b3e0568db0748bd5cf7cecbdb7 --- Android.bp | 4 ++++ bootloader_message/bootloader_message.cpp | 3 +++ roots.cpp | 9 +++++---- roots.h | 4 +++- uncrypt/uncrypt.cpp | 3 +++ 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/Android.bp b/Android.bp index 41075d23a..afa033716 100644 --- a/Android.bp +++ b/Android.bp @@ -45,6 +45,7 @@ cc_library { static_libs: [ "libminui", "libotautil", + "libfstab", ], shared_libs: [ @@ -157,6 +158,7 @@ cc_defaults { "libhealthhalutils", "libvintf_recovery", "libvintf", + "libfstab", ], } @@ -260,6 +262,7 @@ cc_binary { static_libs: [ "libotautil", + "libfstab", ], init_rc: [ @@ -287,6 +290,7 @@ cc_binary { static_libs: [ "libotautil", + "libfstab", ], init_rc: [ diff --git a/bootloader_message/bootloader_message.cpp b/bootloader_message/bootloader_message.cpp index b933cbf8e..8c1d63bdd 100644 --- a/bootloader_message/bootloader_message.cpp +++ b/bootloader_message/bootloader_message.cpp @@ -29,6 +29,9 @@ #include #include +using android::fs_mgr::Fstab; +using android::fs_mgr::ReadDefaultFstab; + static std::string get_misc_blk_device(std::string* err) { Fstab fstab; if (!ReadDefaultFstab(&fstab)) { diff --git a/roots.cpp b/roots.cpp index 290be477c..7a922b8ee 100644 --- a/roots.cpp +++ b/roots.cpp @@ -45,6 +45,10 @@ #include "otautil/mounts.h" #include "otautil/sysutil.h" +using android::fs_mgr::Fstab; +using android::fs_mgr::FstabEntry; +using android::fs_mgr::ReadDefaultFstab; + static Fstab fstab; extern struct selabel_handle* sehandle; @@ -69,10 +73,7 @@ void load_volume_table() { } Volume* volume_for_mount_point(const std::string& mount_point) { - auto it = std::find_if(fstab.begin(), fstab.end(), [&mount_point](const auto& entry) { - return entry.mount_point == mount_point; - }); - return it == fstab.end() ? nullptr : &*it; + return android::fs_mgr::GetEntryForMountPoint(&fstab, mount_point); } // Mount the volume specified by path at the given mount_point. diff --git a/roots.h b/roots.h index 341f90529..7b031a188 100644 --- a/roots.h +++ b/roots.h @@ -19,7 +19,9 @@ #include -typedef struct FstabEntry Volume; +#include + +using Volume = android::fs_mgr::FstabEntry; // Load and parse volume data from /etc/recovery.fstab. void load_volume_table(); diff --git a/uncrypt/uncrypt.cpp b/uncrypt/uncrypt.cpp index 75595ac2c..f1f4f69f0 100644 --- a/uncrypt/uncrypt.cpp +++ b/uncrypt/uncrypt.cpp @@ -119,6 +119,9 @@ #include "otautil/error_code.h" +using android::fs_mgr::Fstab; +using android::fs_mgr::ReadDefaultFstab; + static constexpr int WINDOW_SIZE = 5; static constexpr int FIBMAP_RETRY_LIMIT = 3; -- cgit v1.2.3