* @tplg:      Pointer to IPC-specific topology ops
  * @pm:                Pointer to PM ops
  * @pcm:       Pointer to PCM ops
+ *
+ * @tx_msg:    Function pointer for sending a 'short' IPC message
+ * @set_get_data: Function pointer for set/get data ('large' IPC message). This
+ *             function may split up the 'large' message and use the @tx_msg
+ *             path to transfer individual chunks, or use other means to transfer
+ *             the message.
+ * @get_reply: Function pointer for fetching the reply to
+ *             sdev->ipc->msg.reply_data
+ * @rx_msg:    Function pointer for handling a received message
+ *
+ * Note: both @tx_msg and @set_get_data considered as TX functions and they are
+ * serialized for the duration of the instructed transfer. A large message sent
+ * via @set_get_data is a single transfer even if at the hardware level it is
+ * handled with multiple chunks.
  */
 struct sof_ipc_ops {
        const struct sof_ipc_tplg_ops *tplg;
        const struct sof_ipc_pm_ops *pm;
        const struct sof_ipc_pcm_ops *pcm;
+
+       int (*tx_msg)(struct snd_sof_dev *sdev, void *msg_data, size_t msg_bytes,
+                     void *reply_data, size_t reply_bytes, bool no_pm);
+       int (*set_get_data)(struct snd_sof_dev *sdev, void *data, size_t data_bytes,
+                           bool set);
+       int (*get_reply)(struct snd_sof_dev *sdev);
+       void (*rx_msg)(struct snd_sof_dev *sdev);
 };
 
 /* SOF generic IPC data */