+ if (session->running) {
+ /* Adding a device to a running session. Start acquisition
+ * on that device now. */
+ if ((ret = sdi->driver->dev_acquisition_start(sdi,
+ (void *)sdi)) != SR_OK)
+ sr_err("Failed to start acquisition of device in "
+ "running session: %d", ret);
+ }
+
+ return SR_OK;
+}
+
+/**
+ * List all device instances attached to the current session.
+ *
+ * @param devlist A pointer where the device instance list will be
+ * stored on return. If no devices are in the session,
+ * this will be NULL. Each element in the list points
+ * to a struct sr_dev_inst *.
+ * The list must be freed by the caller, but not the
+ * elements pointed to.
+ *
+ * @return SR_OK upon success, SR_ERR upon invalid arguments.
+ */
+SR_API int sr_session_dev_list(GSList **devlist)
+{
+
+ *devlist = NULL;
+
+ if (!session)
+ return SR_ERR;
+
+ *devlist = g_slist_copy(session->devs);
+