+/**
+ * TODO.
+ *
+ * TODO: Various error checks.
+ *
+ * @param packet TODO.
+ * @return SR_OK upon success, SR_ERR_ARG upon invalid arguments.
+ */
+static int datafeed_dump(struct sr_datafeed_packet *packet)
+{
+ struct sr_datafeed_logic *logic;
+
+ if (!packet) {
+ sr_err("session: %s: packet was NULL", __func__);
+ return SR_ERR_ARG;
+ }
+
+ /* TODO: Validity checks for packet contents. */
+
+ switch (packet->type) {
+ case SR_DF_HEADER:
+ sr_dbg("bus: received SR_DF_HEADER");
+ break;
+ case SR_DF_TRIGGER:
+ sr_dbg("bus: received SR_DF_TRIGGER");
+ break;
+ case SR_DF_LOGIC:
+ logic = packet->payload;
+ /* TODO: Check for logic != NULL. */
+ sr_dbg("bus: received SR_DF_LOGIC %" PRIu64 " bytes", logic->length);
+ break;
+ case SR_DF_END:
+ sr_dbg("bus: received SR_DF_END");
+ break;
+ default:
+ /* TODO: Abort? */
+ sr_err("bus: received unknown packet type %d", packet->type);
+ break;
+ }
+
+ return SR_OK;
+}
+
+/**
+ * TODO.
+ *
+ * @param device TODO.
+ * @param packet TODO.
+ * @return SR_OK upon success, SR_ERR_ARG upon invalid arguments.
+ */
+SR_API int sr_session_bus(struct sr_device *device,
+ struct sr_datafeed_packet *packet)