diff options
author | Agata Olender <agata.olender@intel.com> | 2020-01-13 15:31:49 +0300 |
---|---|---|
committer | Olender, Agata <agata.olender@intel.com> | 2020-01-29 13:36:50 +0300 |
commit | 49e6d0678ef91938a8cc4125716b5189ccef6a88 (patch) | |
tree | 4db613980200a4c205fc6f9c99e4900324f8d45a /virtual-media/src/system.hpp | |
parent | 218c41b5f22d68b97d04fec1131208f4af93130e (diff) | |
download | provingground-49e6d0678ef91938a8cc4125716b5189ccef6a88.tar.xz |
Gadget inactivity timeout
MountPoints being inactive for time defined by InactivityTimeout will be unmounted.
Inacitivity is measured based on USB gadget R/W statitics.
InactivityTimeout must be set in json configuration and is common for all MountPoints.
Remaining time to unmount inactive media is exposed per MountPoint on dbus using RemainingInactivityTimeout property.
Change-Id: Ieb80e67dae6c3b4cb0482d801b5b4208884b0809
Signed-off-by: Agata Olender <agata.olender@intel.com>
Diffstat (limited to 'virtual-media/src/system.hpp')
-rw-r--r-- | virtual-media/src/system.hpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/virtual-media/src/system.hpp b/virtual-media/src/system.hpp index ca9d17e..ae8a486 100644 --- a/virtual-media/src/system.hpp +++ b/virtual-media/src/system.hpp @@ -582,4 +582,21 @@ struct UsbGadget } return -1; } + + static std::optional<std::string> getStats(const std::string& name) + { + const fs::path statsPath = + "/sys/kernel/config/usb_gadget/mass-storage-" + name + + "/functions/mass_storage.usb0/lun.0/stats"; + + std::ifstream ifs(statsPath); + if (!ifs.is_open()) + { + LogMsg(Logger::Error, name, "Failed to open ", statsPath); + return {}; + } + + return std::string{std::istreambuf_iterator<char>(ifs), + std::istreambuf_iterator<char>()}; + } }; |