- GString *(*recv) (struct sr_output *o, const struct sr_dev_inst *sdi,
- const struct sr_datafeed_packet *packet);
+ /**
+ * This function is passed a copy of every packed in the data feed.
+ * Any output generated by the output module in response to the
+ * packet should be returned in a newly allocated GString
+ * <code>out</code>, which will be freed by the caller.
+ *
+ * Packets not of interest to the output module can just be ignored,
+ * and the <code>out</code> parameter set to NULL.
+ *
+ * @param o Pointer to the respective 'struct sr_output'.
+ * @param sdi The device instance that generated the packet.
+ * @param packet The complete packet.
+ * @param out A pointer where a GString * should be stored if
+ * the module generates output, or NULL if not.
+ *
+ * @return SR_OK upon success, a negative error code otherwise.
+ */
+ int (*receive) (struct sr_output *o, const struct sr_dev_inst *sdi,
+ const struct sr_datafeed_packet *packet, GString **out);