Home | History | Annotate | Download | only in storage_monitor
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "components/storage_monitor/udev_util_linux.h"
      6 
      7 #include "base/files/file_path.h"
      8 #include "device/udev_linux/udev.h"
      9 
     10 namespace storage_monitor {
     11 
     12 std::string GetUdevDevicePropertyValue(struct udev_device* udev_device,
     13                                        const char* key) {
     14   const char* value = udev_device_get_property_value(udev_device, key);
     15   return value ? value : std::string();
     16 }
     17 
     18 bool GetUdevDevicePropertyValueByPath(const base::FilePath& device_path,
     19                                       const char* key,
     20                                       std::string* result) {
     21   device::ScopedUdevPtr udev(udev_new());
     22   if (!udev.get())
     23     return false;
     24   device::ScopedUdevDevicePtr device(udev_device_new_from_syspath(
     25       udev.get(), device_path.value().c_str()));
     26   if (!device.get())
     27     return false;
     28   *result = GetUdevDevicePropertyValue(device.get(), key);
     29   return true;
     30 }
     31 
     32 }  // namespace storage_monitor
     33