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 10namespace storage_monitor { 11 12std::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 18bool 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