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