• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
GetUdevDevicePropertyValue(struct udev_device * udev_device,const char * key)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 
GetUdevDevicePropertyValueByPath(const base::FilePath & device_path,const char * key,std::string * result)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