+void DeviceManager::use_device(shared_ptr<device::DevInst> dev_inst,
+ SigSession *owner)
+{
+ assert(dev_inst);
+ assert(owner);
+
+ _used_devices[dev_inst] = owner;
+
+ sr_dev_open(dev_inst->dev_inst());
+}
+
+void DeviceManager::release_device(shared_ptr<device::DevInst> dev_inst)
+{
+ assert(dev_inst);
+
+ // Notify the owner, and remove the device from the used device list
+ map< shared_ptr<device::DevInst>, pv::SigSession*>::const_iterator
+ iter = _used_devices.find(dev_inst);
+ assert(iter != _used_devices.end());
+
+ (*iter).second->release_device(dev_inst);
+ _used_devices.erase(dev_inst);
+}
+
+list< shared_ptr<device::DevInst> > DeviceManager::driver_scan(