From 9a319f01f8768a1342c3f1c684f04c112a51f45c Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Thu, 4 Jan 2018 13:19:11 -0800 Subject: Merge libmounts into libotautil. Export its header (mounts.h) from there, and drop the dot dot dependency from libupdater / updater. Test: mmma bootable/recovery Test: recovery_component_test Change-Id: Ic26a6b9b78a34dbe1f178b138f3abaafffbec44c --- mounts.cpp | 82 -------------------------------------------------------------- 1 file changed, 82 deletions(-) delete mode 100644 mounts.cpp (limited to 'mounts.cpp') diff --git a/mounts.cpp b/mounts.cpp deleted file mode 100644 index 76fa65739..000000000 --- a/mounts.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "mounts.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include - -struct MountedVolume { - std::string device; - std::string mount_point; - std::string filesystem; - std::string flags; -}; - -std::vector g_mounts_state; - -bool scan_mounted_volumes() { - for (size_t i = 0; i < g_mounts_state.size(); ++i) { - delete g_mounts_state[i]; - } - g_mounts_state.clear(); - - // Open and read mount table entries. - FILE* fp = setmntent("/proc/mounts", "re"); - if (fp == NULL) { - return false; - } - mntent* e; - while ((e = getmntent(fp)) != NULL) { - MountedVolume* v = new MountedVolume; - v->device = e->mnt_fsname; - v->mount_point = e->mnt_dir; - v->filesystem = e->mnt_type; - v->flags = e->mnt_opts; - g_mounts_state.push_back(v); - } - endmntent(fp); - return true; -} - -MountedVolume* find_mounted_volume_by_mount_point(const char* mount_point) { - for (size_t i = 0; i < g_mounts_state.size(); ++i) { - if (g_mounts_state[i]->mount_point == mount_point) return g_mounts_state[i]; - } - return nullptr; -} - -int unmount_mounted_volume(MountedVolume* volume) { - // Intentionally pass the empty string to umount if the caller tries to unmount a volume they - // already unmounted using this function. - std::string mount_point = volume->mount_point; - volume->mount_point.clear(); - int result = umount(mount_point.c_str()); - if (result == -1) { - PLOG(WARNING) << "Failed to umount " << mount_point; - } - return result; -} -- cgit v1.2.3